很抱歉提前访问vba / sql。我使用的是Access 2016,并且在表单中有一个文本框。单击命令按钮时,文本框中的数字会提供一个选择查询,并且应该为我提供查询中另一个字段的值。
以下是代码:
Private Sub Punch_Click()
Dim TCID As Integer
TCID = DLookup("TimeCardID", "qryPunch", PIN)
MsgBox TCID
DoCmd.RunSQL "INSERT INTO [tblTransactions] " _
& "(TransDateTime,TransSource,TimeCardID) VALUES " _
& "(Now(),1,TCID);"
End Sub
当我运行代码时,MsgBox会准确显示该值,但是当我点击“确定”时在MsgBox上,它会提示用户输入TCID的值,而不是简单地将该TCID作为tblTransactions中的新记录插入。
这有意义吗?
答案 0 :(得分:0)
你应该在插入之前做一个延迟。
延迟有两种选择
选项1:
Sytem.Threading.Thread.Sleep(1000)
将暂停1秒(1000毫秒)
选项2:
My.Application.Doevents
Doevents将处理Windows消息队列中的所有请求。
doevents独立于运行它的计算机。
答案 1 :(得分:0)
将其更改为:
& "(Now(),1," & TCID & ");"