我正在尝试在Access VBA中创建一个记录集,它将向我显示与表单当前记录相关的表中的所有记录。我目前的代码如下:
Private Sub Form_Load()
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("Select [ID], [Ln] From [Order Detail] Where ((([Order Detail].[ID]) = [Forms]![Order Data Entry Header]![ID]))")
rst.MoveLast
Forms![Order Data Entry Header].LineNum = rst![Ln]
End Sub
我这样做是为了在添加新记录时,可以在最高编号后按顺序编号。当我运行表单时,它会得到“运行时错误:'3061'参数太少。预计1.”在第一行。
任何帮助都将不胜感激。
答案 0 :(得分:9)
问题在于,您在那里看到的字符串正是传递给驱动程序的字符串。
你需要“建立”字符串,如下所示:
Set rst = CurrentDb.OpenRecordset("Select [ID], [Ln] From [Order Detail] Where ((([Order Detail].[ID]) = " & [Forms]![Order Data Entry Header]![ID] & "))")
注意确保[Forms]![Order Data Entry Header]![ID]是安全的内容,因为您正在构建SQL语句。