访问 - 使用 where 子句打开表单
Posted
技术标签:
【中文标题】访问 - 使用 where 子句打开表单【英文标题】:Access- Open form with where clause 【发布时间】:2017-08-09 11:04:47 【问题描述】:我需要通过单击子表单记录名称来打开特定表单。子表单中的名称显示为一个组合框,其中 ID 和名称为列。
我是这样做的:
Private Sub ID_Prodotto_DblClick(Cancel As Integer)
Dim Id As Integer
Id = Me.ID_Prodotto.Column.Value
DoCmd.OpenForm "Prodotto", , , "ID_Prodotto = " & Id
End Sub
但 Access 要求我在单击记录时手动插入 ID 字段值。我哪里错了?
【问题讨论】:
无法使用此信息复制您的错误。表单是否基于需要 ID 作为参数的查询?试着提出你的问题mcve 简单地尝试 Me.ID_Prodotto 。添加一个 debug.print ID 以查看它被设置为什么值。您打开的表单上有 ID_Prodotto 吗? 我要打开的表单是由访问向导生成的,它是一个引用表格并逐条恢复数据的表单。表格中当然有 ID_Prodotto 参数,也有表格。事实上,如果我在访问要求我这样做时手动写入一个值,那么一切正常。 【参考方案1】:应该是:
Id = Me!ID_Prodotto.Value
或者,如果您希望使用第 n 列中的值(0 是第一个):
Id = Me!ID_Prodotto.Column(n)
【讨论】:
那么您可能没有 ID_Prodotto 控件或字段。以上是关于访问 - 使用 where 子句打开表单的主要内容,如果未能解决你的问题,请参考以下文章
MS Access 2007 OpenForm 方法,无法获取 where 子句以产生正确的结果
从搜索表单动态构建 WHERE 子句时如何防止 SQL 注入?