设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2892|回复: 5
打印 上一主题 下一主题

关于数据库2007的前后台制作的问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-10-18 07:36:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前段时间一直在研究ACCESS前后台,学习了“咱家是猫”版主的前后台拆分实例,一直在前后台分享这里卡住,存在大概这样的问题。
1.一开始我以为分发数据库就是把前台复制一下就可以了,结果我发现当被复制的前台希望引用我网络映射的后台时会出现前台无权进入后台的网络映射盘,现在我认为可能原因就是前台没有分.发的原因。
2.我现在正在学习打包、签名和分发,大致是明白了打包和签名,但对于分发过程中,签名包的使用的作用和最后“将数据库提取到”是什么意思。
3.对于“咱家是猫”示例中最后一句前台分发,我现在理解就是前台的打包、签名和分发,另外“将数据库提取”是不是就是引用后台呢?
4.另外是不是前台一个前台使用者就要创建一个前台的签名的证书及相应的签名包,也就是ACCEC文档,我还要给前台使用者一个ACCEB和一个ACCEC呢?
5.此外我后面还要做什么吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-10-18 08:10:17 | 只看该作者
我用的是红尘版主的前后台模式,也遇到了把前台复制到局域网中的另一台电脑就连接不到后台数据库的问题,倒腾了几次一直没有成功。希望有经验的朋友点拨一下。多谢!
3#
 楼主| 发表于 2011-10-18 10:47:00 | 只看该作者
本帖最后由 williamwangc 于 2011-10-18 10:48 编辑

我又好好想了想,觉得第三条中分发过程中“将数据库提取”估计应该就是通过证书(即ACCDC)对复制的前台ACCESS.ACCDB进行前台的添加信任处理。我不知道这样的理解对不对?我想这样理解整个签名、打包和分发的逻辑就通顺了。
签名:只是一个事先的授权证明签名而已。
打包:可能就是一个经过签名的前台,进行布置和合并,好比就是一个完整的合同文本和签名。
分发:其实就是对授权的前台和合同进行信任认证的一个过程。
最后受信任的前台就可以对后台进行操作。当然是对前台已指定的路径的后台进行操作,而“咱家是猫”版主前后台拆分的那个教程做的其实就是一个拆分和指定路径的过程。
简而言之:“咱家是猫”拆分前后台的目的是明确前后台路径,而分发其实的目的是签署可信任的前台,是指可以操作而非直接复制的前台的非法独占操作错误(即自己拆分的前后台只能在自己的机器上进行前后台操作,但别人即使从你机器上复制了前台也不允许在别人的机器上操作的安全设置)。
不知道我这样的理解对不对?

点击这里给我发消息

4#
发表于 2011-10-18 10:59:13 | 只看该作者
链接表实际上很类似视图(查询),本身没有数据,而是把目标数据库中的数据表映射到当前数据库中,因此,链接表是否能正常使用最关键的就是链接表的配制信息。

一般链接表的属性包括:
1、数据库类型,如:ODBC、ACCESS...
2、数据库,如:...
3、用户名和密码

其中,2 中数据库是很灵活的。像你说的分拆出来的后台数据库,那么,数据库类型,就是ACCESS,而数据库则是后台数据库文件的存储路径,如:本地 c:\Data\backend.mdb,远程\\DataSvr\Data\backend.mdb。也就远程是共享文件夹,那么在使用以前,你必须要能正常访问这个文件夹,并具有对这个文件中的文件有读写的操作权限,而这个东西的设置不属于Access的东西,因此,在你使用前必须达到上述条件才能使用。

重新设置链接表的属性,你需要用到 DAO 中的 TableDef.RefreshLink 方法。
示例:
  1. Sub RefreshLinkX()

  2.    Dim dbsCurrent As Database
  3.    Dim tdfLinked As TableDef

  4.    ' Open a database to which a linked table can be
  5.    ' appended.
  6.    Set dbsCurrent = OpenDatabase("DB1.mdb")

  7.    ' Create a linked table that points to a Microsoft
  8.    ' SQL Server database.
  9.    Set tdfLinked = _
  10.       dbsCurrent.CreateTableDef("AuthorsTable")
  11.       
  12.    ' Note: The DSN referenced below must be configured to
  13.    '       use Microsoft Windows NT Authentication Mode to
  14.    '       authorize user access to the Microsoft SQL Server.
  15.    tdfLinked.Connect = _
  16.       "ODBC;DATABASE=pubs;DSN=Publishers"
  17.    tdfLinked.SourceTableName = "authors"
  18.    dbsCurrent.TableDefs.Append tdfLinked

  19.    ' Display contents of linked table.
  20.    Debug.Print _
  21.       "Data from linked table connected to first source:"
  22.    RefreshLinkOutput dbsCurrent

  23.    ' Change connection information for linked table and
  24.    ' refresh the connection in order to make the new data
  25.    ' available.
  26.    
  27.    ' Note: The DSN referenced below must be configured to
  28.    '       use Microsoft Windows NT Authentication Mode to
  29.    '       authorize user access to the Microsoft SQL Server.
  30.    tdfLinked.Connect = _
  31.       "ODBC;DATABASE=pubs;DSN=NewPublishers"
  32.    tdfLinked.RefreshLink

  33.    ' Display contents of linked table.
  34.    Debug.Print _
  35.       "Data from linked table connected to second source:"
  36.    RefreshLinkOutput dbsCurrent

  37.    ' Delete linked table because this is a demonstration.
  38.    dbsCurrent.TableDefs.Delete tdfLinked.Name

  39.    dbsCurrent.Close

  40. End Sub

  41. Sub RefreshLinkOutput(dbsTemp As Database)

  42.    Dim rstRemote As Recordset
  43.    Dim intCount As Integer

  44.    ' Open linked table.
  45.    Set rstRemote = _
  46.       dbsTemp.OpenRecordset("AuthorsTable")

  47.    intCount = 0

  48.    ' Enumerate Recordset object, but stop at 50 records.
  49.    With rstRemote
  50.       Do While Not .EOF And intCount < 50
  51.          Debug.Print , .Fields(0), .Fields(1)
  52.          intCount = intCount + 1
  53.          .MoveNext
  54.       Loop
  55.       If Not .EOF Then Debug.Print , "[more records]"
  56.       .Close
  57.    End With

  58. End Sub
复制代码
上述是帮助中链接到SQL Server数据库的例子

你可以在本论坛上搜索一下“链接表”,可以找到很多这个方面的例程。

如:zhengjialon做的自动链接表,我等菜鸟的必备利器!
5#
 楼主| 发表于 2011-10-19 09:13:12 | 只看该作者
我用ACCESS2007建立了一个测试的2003版本的前后台的数据库,经过测试已成功。(用的是“咱家是猫版”主的方法)。估计原因正是你说的权限的问题。
6#
 楼主| 发表于 2011-10-19 21:49:40 | 只看该作者
现在前后台成功,我又有了新的疑问,想问一下。
1.前台输入,会不会产生N人基本同时输入,结果其中某人认为自己已输入,但实际未输入的情况发生?如果会发生是否有什么方法可以避免,抑或系统会自动排序和避免此种情况的发生?
2.如果拆分的数据库,那原来编写的代码,尤其是和现在的后台相关的数据处理的代码(如SQL,DAO,ADO代码)是否会失效?
3.如果失效我应如何对原有代码进行修正呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-10 06:22 , Processed in 0.093171 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表