提示用户输入而不是使用变量

时间:2017-07-17 18:51:09

标签: vba ms-access

很抱歉提前访问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中的新记录插入。

这有意义吗?

2 个答案:

答案 0 :(得分:0)

你应该在插入之前做一个延迟。

延迟有两种选择

选项1:

Sytem.Threading.Thread.Sleep(1000)

将暂停1秒(1000毫秒)

选项2:

My.Application.Doevents

Doevents将处理Windows消息队列中的所有请求。

doevents独立于运行它的计算机。

答案 1 :(得分:0)

将其更改为:

& "(Now(),1," & TCID & ");"