Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Where语句不起作用_Sql_Ms Access_Vba - Fatal编程技术网

Sql Where语句不起作用

Sql Where语句不起作用,sql,ms-access,vba,Sql,Ms Access,Vba,我已经读了很多帖子,这些帖子似乎回答了我的确切问题,但我尝试的都不管用。我显然错过了一些简单的东西。我有一份员工加班的报告。我希望用户能够单击加班条目的超链接或按钮,并打开表单编辑条目 下面的代码为加班ID打开一个参数输入框。手动输入加班ID也将打开正确的表单,但它似乎默认为基础表中的第一条记录 Private Sub Overtime_ID_Click() Dim recordID As Integer recordID = Me.Overtime_ID DoCmd.OpenForm "fr

我已经读了很多帖子,这些帖子似乎回答了我的确切问题,但我尝试的都不管用。我显然错过了一些简单的东西。我有一份员工加班的报告。我希望用户能够单击加班条目的超链接或按钮,并打开表单编辑条目

下面的代码为加班ID打开一个参数输入框。手动输入加班ID也将打开正确的表单,但它似乎默认为基础表中的第一条记录

Private Sub Overtime_ID_Click()

Dim recordID As Integer
recordID = Me.Overtime_ID
DoCmd.OpenForm "frmEditOvertime",,, "Overtime_ID = " & recordID, acFormEdit

End Sub

frmEnterOvertime的记录源是一个表-加班奖励。 该表中的列为: 加班ID(自动编号和主键) 参赛日期 加班日期 小队名单(短文本) 加班时间(个) 主管(人数) 评论(短文) 强制性(是/否) 更正(是/否) 警官ID(编号)

因为加班ID的名称中有空格,所以只需将
[]
括起来,或者在
OpenForm
调用中使用反勾号即可。不能简单地使用下划线作为替换,因为这会更改列标识符

DoCmd.OpenForm "frmEditOvertime",,, "[Overtime ID] = " & recordID, acFormEdit

DoCmd.OpenForm "frmEditOvertime",,, "`Overtime ID` = " & recordID, acFormEdit

请注意where参数可以使用任何兼容的SQL
where
条件。

我通过将recordID分配给MsgBox来测试它,它返回适当的数值。请发布表单绑定的表(cols)或查询(SQL)。弹出的参数框表示在表单的记录源中找不到加班ID。frmEnterOvertime的记录源是加班奖励表。该表中的列为:加班ID(自动编号和PK)、入职日期、加班日期、班名单(短文本)、加班时间(编号)、主管(编号)、评论(短文本)、强制性(是/否)、更正(是/否)、警官ID(编号),如前所述,请发布列和数据类型。您应该使用这些信息编辑帖子,而不是在评论中。请参阅标签下面的链接。加班ID中真的有空格吗?如果是这样,那就是你的问题。不能简单地将空格替换为下划线。