从 MS Access 中的表中获取自动编号字段值
Posted
技术标签:
【中文标题】从 MS Access 中的表中获取自动编号字段值【英文标题】:To get Auto Number field value from table in MS Access 【发布时间】:2020-07-23 17:47:47 【问题描述】:如何从 MS Access 中的表中获取自动编号列值。我需要将其存储在另一个表中的值。 例如,
Table1: Table2:
Id value CId City
1 aaa 1 abc
2 bbb
Table1 中的 Id 是自动编号的,而 Table2 中的 CId 不是,请注意 not table1 中的所有值都存在于 table2 中。我正在创建一个表格来在各个表格中存储价值,城市。如何获取自动编号值,以便可以将其作为 CId 存储在 table2 中。 因此,如果输入新值,它将采用 Id 3,我需要 Id 3 存储在 Table2 中
另外,我不能使用表单向导选项,因为我不希望表中的所有记录都可见。我只需要一个空白表格来保存新数据。 请帮我解决这个问题。谢谢
【问题讨论】:
最简单的方法是表单/子表单排列。否则,有几种方法可以在表单和公共主题之间传递数据。做研究,当你有特定的代码有问题时,发布问题。探索 OpenArgs、TempVars,并在另一个窗体上直接设置控件的值。我从不使用表单设计向导,它的用途是无关紧要的。创建表单后,您始终可以更改表单属性。如果您只希望表单用于输入新记录,请将其 DataEntry 属性设置为 Yes。 这能回答你的问题吗? Passing parameters between forms in MS AccessSo, if new value is entered it would take the Id 3, I require the Id 3 to store in Table2
所有新值都将存储到table2
? INSERT INTO....
用于table1
然后DMAX()
从自动 id 字段中获取最后一个值,然后为 table2 获取另一个 INSERT INTO...
。
【参考方案1】:
我已使用未绑定文本框Text1
运行以下代码。
Private Sub cmdSQLRun_Click()
Dim MyAutoNumber As Long
CurrentDb.Execute "INSERT INTO Table1(MyValue) VALUES('" & Me.Text1 & "')"
'MyValue is value field of your example.
MyAutoNumber = DMax("ID", "Table1")
CurrentDb.Execute "INSERT INTO Table2(CID) VALUES(" & MyAutoNumber & ")"
'CID is table2 field name.
End Sub
【讨论】:
感谢您的建议,成功了!我还有一个问题,希望你能帮我解决。从表单中,我将输入“字符串”参数值传递给查询。它没有产生任何记录。在我使用的列标准中 - 像 "& [Forms]![Form1]![txtinput]" 。看起来文本框正在传递一些空值,所以您能否建议我如何更正以获取所需的结果。 只要使用Like ([Forms]![Form1]![txtinput])
很高兴知道它对您有所帮助!
抱歉发布更多问题,第一次工作正常。后来当我关闭并再次尝试时,文本框没有传递任何值。它只是空的。所以没有记录被获取。你能告诉我我哪里出错了吗?
请检查您的数据是否有多余的空格或其他内容。以上是关于从 MS Access 中的表中获取自动编号字段值的主要内容,如果未能解决你的问题,请参考以下文章
如何检查我的表中列的任何值是不是包含 MS ACCESS 2003 中的尾随空格?