我遇到了将数据从一个表单的文本框传递到另一个表单的自动编号的问题。我也是Access DBs的新手,我正在努力学习它们,现在我很难过。
我的意思是当我双击第一个表单(Form1
)上的列表时,我将数据从Form1传递给Form2,其余的变量将被更新,变量{ {1}},因为这是一个自动编号。它也是TI_ID
,数据来自与3个表一起使用的查询。
这是我为双击所做的VB事件。
primary key
它会抱怨并给我一个运行时错误
Private Sub TI_List_DblClick(Cancel As Integer)
DoCmd.OpenForm "ImportData"
Forms!ImportData.TI_ID = Me.TI_ID
Forms!ImportData.Know_ID = Me.Know_ID
Forms!ImportData.TI_Title = Me.TI_Title
在表单2上,我有3个文本框和一个ListBox,当你在列表框中选择s行时,它会自动更新上面的文本框。问题是,其他2个文本框('438' Object doesn't support this property or method.
)将再次更新,但如果我们更改标题,Know_ID and TI_Title
将不会更新,它将始终将数据保存到第一个TI_ID
和然后转到下一个。
TI_ID
正如您所看到的,List_Box的Private Sub SearchResults_Click()
TI_Title = SearchResults.Column(0)
'TI_ID = SearchResults.Column(1)
Know_ID = SearchResults.Column(2)
End Sub
部分无法正常工作并导致问题。
我注意到在Form2上的表单页脚上,我可以向前和向后移动记录,甚至可以使用搜索找到我想要的数字。这也将更新其他字段。当我单击更新记录的框时,它会更新正确的记录。
有没有办法我可以欺骗双击而不是试图设置值,而是搜索数据,它应该与第一个没有弹出窗口的相同字段具有相同的数字?另外,如果我能做到这一点,我可以使用Form2的文本框来做同样的事情吗?我错过了一种更简单的方法吗?
答案 0 :(得分:0)
您无法将值传递给自动编号字段(TB2.PK)。这是一个身份领域。您可以添加包含要保留的ID的新记录。
Table 1
MyKey1 (autonumber)
Table 2
MyKey2 (autonumber)
MyKey1 (value from Table 1)