【发布时间】:2017-06-29 21:17:56
【问题描述】:
我正在使用链接的 ODBC 表在 MS Access 中构建一个表单,这将成为我们一些团队的大型输入基础。我已经解决了大部分问题,但是我正在尝试为主表自动生成主 ID 并填充文本框,这样代理就不必这样做了。在 SQL 中有效地构建自动编号。
我在 ODBC 表中进行了生成和滚动编辑,我只是坚持将生成的代码放入相关字段。我在按钮单击时使用宏并具有以下代码:
Private Sub cmdSubmitDetails_Click()
Dim strSQL As String
Dim rst As Recordset
Dim db As Database
Dim para As String
para = InputBox("Please Enter Your User ID:")
strSQL = "SELECT Min([P_ID]) AS ID FROM QA_IDS WHERE EV_ID = " & para & ";"
Set db = CurrentDb
Set rst = db.OpenRecordset(strSQL)
Me.ID.Text = rst!ID
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
Me.ID 是我要填充的字段。它在行中出错了
Set rst = db.OpenRecordset(strSQL)
出现错误 Run-time error '3464' Data type mismatch in criteria expression。
这是我第一次真正涉足 MS Access,我已经在网上搜索了解决方案。任何帮助将不胜感激。
【问题讨论】:
-
您的条件表达式
WHERE EV_ID = " & para & ";"的数据类型是否可能不匹配?也许它不期待一个字符串?无论如何,您最好通过 Access 设计 gui 设置默认值。 -
谢谢。为了测试它,我将查询更改为硬值并且它有效。虽然输入是一个数字,即 55231,但 ODBC 表中的数据类型是 VarChar,所以我希望字符串可以工作。是否有更可能匹配的不同数据类型?
-
我还尝试使用 Access 中的参数构建查询,然后使用“SELECT * FROM qrySELECT_MINIMUM_ID”,但它出错,预期 1 参数为 0,有没有办法使用输入框设置参数或否则呢?