【发布时间】:2014-12-25 19:19:56
【问题描述】:
我有两种形式,一种是数据输入表,另一种是汇总表,其中列出了数据库中的所有记录。在汇总表上有一个列出所有记录的列表框。我希望用户能够从列表框中选择一条记录并使用命令按钮打开第二个表单到特定记录。我已经通过使用特定字段(在一种情况下为“名称”)使用以下代码完成了这项工作:
DoCmd.OpenForm "frmEditAddPerson", acNormal, ,"[PersonName]='" & Me.listPeople.Value & "'"
但是当我意识到两个人可以有相同的名字时,我认为使用作为主键的 PersonID 并且它的数据类型是“AutoNumber”是有意义的。我似乎无法让它工作:
DoCmd.OpenForm "frmEditAddPerson", acNormal, "[PersonName] = " & SelectPersonID
注意,我通过从隐藏列中的 ListBox 中拉取 SelectedPersonID 来获取它。我确认我在尝试调试时通过在 MessageBox 中显示它来获得正确的 AutoNumber 字段的数值。
对于此方法/命令的 WHERE 参数,我知道您应该在引号中包含字符串值,不包含整数,以及带有“#”的日期,就像在 SQL 语句中一样。我已经尝试将 SelectedPersonID 作为字符串和整数进行 delcaring,但我仍然无法使上述内容正常工作。为了确定,我什至尝试了以下方法:
DoCmd.OpenForm "frmEditAddPerson", acNormal, "[PersonName] = " & CInt(SelectPersonID)
每次我得到“类型不匹配”。 AutoNumber 字段在某种意义上是特殊的,它不能用于这样的事情,还是需要以特殊方式处理?
【问题讨论】:
标签: ms-access vba ms-access-2007