访问VBA - 保存联接表记录问题

时间:2016-03-31 05:57:41

标签: vba access-vba ms-access-2010

我在连接表中遇到编辑和保存记录的问题。这是我的表格:

Table1:
ID_Table1 (PK)
Name
Surname

Table2:
ID_Table2 (PK)
Street
Address

JoinTable:
ID_Table1 (FK)
ID_Table2 (FK)

现在,让我解释一下,我希望你能理解......

我有一个表格,包含Table1记录的记录。当我右键单击当前记录时,我使用以下代码打开带有JoinTable记录源的表单:

DoCmd.OpenForm "JoinForm", , ,"ID_Table1=" & Forms![Table1Form].Form![ID_Table1]

此代码应在Table1Form中选择的确切记录上打开JoinForm,如果JoinTable中已经存在任何相关记录。但它无法正常工作。

我的JoinForm构造:

我已用Combobox替换了ID_Table2字段,其中列出了Table2记录并将其选中的值存储在ID_Table2字段(FK - JoinTable)中。

对于ID_Table1(FK) - 我删除了它,而不是我添加了使用DLookup函数的Textbox,以显示正在编辑的Table1中的记录(用户需求)。

因此,第一个问题是当您尝试保存记录时存储ID_Table1(FK)。我通过在User选择Combobox值时保存It值来解决这个问题 - 在Before_Update事件中:

Me.ID_Table1= Forms![Table1Form].Form!

这成功更新了JoinTable(ID_Table1和ID_Table2)中的两个字段,但是当我关闭JoinForm并从Table1Form右键单击重复打开JoinForm时,虽然它们存在于JoinTable中,但是没有显示任何记录,但是这个ID_Table1记录。这是第二个问题。

任何人都可以指出我正确构建这个JoInForm,或任何其他关于如何解决这个问题的想法,这是令人沮丧的!

1 个答案:

答案 0 :(得分:0)

我不知道出了什么问题,但我重新创建了Joinform,现在一切都和以前一样。我猜有某种形式或数据库损坏或Access错误,我没有线索。问题解决了。