【问题标题】:Write one record to multiple Access databases将一条记录写入多个 Access 数据库
【发布时间】:2013-01-28 21:41:46
【问题描述】:

我在 Access 中创建了一个模板表单,供多个用户记录数据。他们输入的数据将写入他们自己的个人数据库,但我还需要将数据写入一个编译所有用户记录的主数据库。所有数据库(用户个人数据库和主数据库)都具有相同的字段(并且每个个人数据库和主数据库具有用主键标识的相同字段)。起初,我认为链接数据库可能会起作用,但最终我会在主数据库中得到 100 多个链接表,但仍然无法将所有记录编译到一个主表中。我是不是把这一切都搞错了?

【问题讨论】:

  • ms-access 在多用户体验方面确实受到限制。你正在反对这个。希望有人对如何继续有一个好主意。
  • 如何防止每个用户的数据库复制主键,当它过去到主数据库?您是否需要在主数据库表中创建密钥,然后将该值用于用户的数据库?
  • 用户的PK字段为“RecordID”。在主 tbl 中,我创建了一个名为“MstrRecordID”的新字段(这是主 tbl PK),并将“RecordID”定义为文本字段(如果/当我可以获取用户的记录附加时,它将允许重复) .

标签: ms-access


【解决方案1】:

在用户访问数据库中的表单上必须有一个控件才能输入新数据。在此控件中,将 INSERT INTO 语句添加到 master 数据库中的表中。例如:

'进入用户表
strSQL = "INSERT INTO userTable (field1, field2) VALUES (data1, data2)"
dbUser.Execute strSQL
'
'在这里您将打开与主数据库的连接
'
strSQL = "INSERT INTO userTable (field1, field2) VALUES (data1, data2)"
dbMaster.Execute strSQL

【讨论】:

  • 谢谢 - 我会试试这个!
  • 您不必将每个用户表链接到主数据库,而是将主表链接到每个用户数据库。那么你可以简单地插入到表中,而不是每次都打开一个数据库连接。
  • 输入新数据的控件是我在名为“SaveRecord”的表单上创建的一个按钮...当用户点击该按钮时,记录会添加到他们的本地数据库表中,然后自动关闭他们的申请。所以,这是我输入的代码,昨天给出了你的建议(谢谢,顺便说一句!!)。我没有收到错误,但是记录仍然没有附加主数据库表......也许我的语法顺序错误?
  • Sub SaveRecord_Click() On Error GoTo SaveRecord_Click_Err On Error Resume Next '当用户点击“提交并关闭”按钮时,记录附加到本地数据库表 DoCmd.RunCommand acCmdDataEntry '在记录附加到本地数据库表后, 相同的记录追加到主数据库表 strSQL = "INSERT INTO MasterTbl () VALUES ()" [D:\MasterDatabase].Execute strSQL '记录追加到主数据库表后,应用程序关闭 DoCmd.Quit acSave If (MacroError 0) Then Beep MsgBox MacroError.Description, vbOKOnly, "" End If SaveRecord_Click_Exit:
  • 如果您不关心用户访问主表,那么我建议您链接到主数据库表。为此,您转到“外部数据”选项卡并在“导入”下选择访问权限。导航到主数据库和主表。在插入 mastertbl 代码的地方,确保 mastertbl 是用户数据库中主表的名称,而不是主数据库中主表的名称。 ****只是让您知道,为了让用户将数据附加到主表(无论您的附加方法如何),用户表将需要对主数据库的网络访问。****
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 2011-11-06
  • 1970-01-01
相关资源
最近更新 更多