从 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 Access So, if new value is entered it would take the Id 3, I require the Id 3 to store in Table2 所有新值都将存储到table2INSERT 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 中的表中获取自动编号字段值的主要内容,如果未能解决你的问题,请参考以下文章

ACCESS数据库中如何自动计算某一个字段的值?

如何处理 Access 表中的数组

如何检查我的表中列的任何值是不是包含 MS ACCESS 2003 中的尾随空格?

重置数据库中的自动编号(身份字段)

如何重置 Access 表的自动编号字段? (它不是从 1 开始的)[重复]

在 MS Access 组合框中,如何将表单值用作 where 类