2013-05-17 64 views
0

我对MS Access和VBA比较陌生。我试图为这个数据库做一些代码,并得到错误消息'运行时错误3061.太少的参数。预期1“,当它到达OpenRecordSet子句运行时错误3061 - ms访问

我一直在研究,看着这几天,但无法找出错误的原因我知道错误是在SELECT特别是在WHERE子句时形式被关闭。

奇怪的是,当我改变条件Record_Num = 2或似乎工作的任何具体的数字,但我需要使用Record_Match_Temp变量。

任何帮助将不胜感激。在此先感谢。这里是代码

Option Compare Database 
    Dim Record_Match_Temp As Integer 
    Dim Logged_Now As String 


Private Sub Form_Close() 
    Dim db2 As Database 
    Dim rs2 As Recordset2 
    Dim SelStr As String 

    Set db2 = CurrentDb() 
    SelStr = "SELECT Record_Num FROM User_Log WHERE Record_Num = Record_Match_Temp" 

    Set rs2 = db2.OpenRecordset(SelStr) 

End Sub 

Private Sub Form_Load() 
    Form_User_Name = Environ("UserName") 
    Logged_Now = Now() 

    Dim db As Database 
    Dim rs As Recordset 
    Set db = CurrentDb() 

    Set rs = db.OpenRecordset("Select * from [User_Log]") 

    rs.AddNew 
    rs![Log_User_Name] = Environ("UserName") 
    rs![Logged_Computer] = Environ("ComputerName") 
    rs![Logged_In] = Logged_Now 
    rs![Record_Match] = rs![Record_Num] 
    Record_Match_Temp = rs![Record_Num] 
    ' rs![Logged_Out] = Now() 
    rs.Update 

End Sub 



Private Sub Form_Timer() 
    Date_Time.Requery 

End Sub 

回答

1
SelStr = "SELECT Record_Num FROM User_Log WHERE Record_Num = " & _ 
                Record_Match_Temp 

如果该字段不是数字,则在Record_Match_Temp附近添加单引号。

+0

太好了。非常感谢。我现在没有收到错误消息。 Altought是诚实的,我不明白,因为我读的所有文献都没有指出任何关于&的内容。对此,我真的非常感激。再次感谢 –