Ms access ACCESS2013-运行时错误“3061”。参数太少。预期1
在access中打开表单时出错。 此代码应与该表单的OnOpen事件一起执行。 但是我的脚本中有一个错误Ms access ACCESS2013-运行时错误“3061”。参数太少。预期1,ms-access,vba,Ms Access,Vba,在access中打开表单时出错。 此代码应与该表单的OnOpen事件一起执行。 但是我的脚本中有一个错误 Dim ThisDB As DAO.Database Set ThisDB = CurrentDb Dim d As DAO.Recordset Dim q As String q = "SELECT [tbl-apartner].[EMail] FROM [tbl-apartner] WHERE [tbl-apartner].[SID] = " &
Dim ThisDB As DAO.Database
Set ThisDB = CurrentDb
Dim d As DAO.Recordset
Dim q As String
q = "SELECT [tbl-apartner].[EMail] FROM [tbl-apartner] WHERE [tbl-apartner].[SID] = " & sid2 'sql query
Set d = ThisDB.OpenRecordset(q, dbOpenDynaset)
Dim Result As String
Result = ""
If d.EOF = False Or d.BOF = False Then 'if-else clause
d.MoveFirst
Do While Not d.EOF
If Result <> "" Then Result = Result & "; "
Result = Result & d!EMail
d.MoveNext
Loop
End If
d.Close
我解决了这个问题
线路
q=从[tbl apartner]中选择[tbl apartner].[EMail],其中[tbl apartner].[SID]=&sid2
这是不对的
q = "SELECT [tbl-apartner].[EMail] FROM [tbl-apartner] WHERE [tbl-apartner].[SID] = " & "'" & sid2 & "'"
区别在于:=&'&sid2&'在openrecordset之前执行debug.print q。我猜你的sid2是空的,我做了MsgBox QandSID2不是空的。MsgBox QI的输出从[tbl apartner]中选择[tbl apartner].[EMail],其中[tbl apartner].[SID]=AKP
q = "SELECT [tbl-apartner].[EMail] FROM [tbl-apartner] WHERE [tbl-apartner].[SID] = " & "'" & sid2 & "'"