【发布时间】:2020-01-01 23:04:02
【问题描述】:
我碰壁了,完全不知所措。
所以我在 MS Access 中有一个表单。其中我有一个文本框和一个按钮。当我在文本框中输入一个数字然后单击按钮时,它会打开一个公共子程序,然后运行一些查询,更新数据库,显示一个文本框,然后清除文本框。这一切都很完美。
我的问题是尝试在文本框中按 Enter 来做完全相同的事情。最奇怪的是,代码在我打开表单后就可以正常工作,但是所有后续尝试都会出现以下错误,直到我关闭表单并重新打开它:
Data type mismatch in criteria expression.
对于我的生活,我无法弄清楚为什么它第一次做我想要的,然后在我身上分崩离析。
这是完整的 VBA 代码供参考:
Option Compare Database
Public Sub Cut_Update()
On Error GoTo Cut_Update_Err
DoCmd.OpenQuery "UPDATE_WIP_Cut", acViewNormal, acEdit
DoCmd.OpenQuery "UPDATE_LastRun", acViewNormal, acEdit
MsgBox "Database Updated"
[Forms]![Portal_02_Cut]![WO_Num].Value = ""
Cut_Update_Exit:
Exit Sub
Cut_Update_Err:
MsgBox Error$
Resume Cut_Update_Exit
End Sub
'------------------------------------------------------------
' Return in Textbox
'
'------------------------------------------------------------
Private Sub WO_Num_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Call Cut_Update
Me.Refresh
End If
End Sub
'------------------------------------------------------------
' Command2_Click
'
'------------------------------------------------------------
Private Sub Command2_Click()
Call Cut_Update
End Sub
【问题讨论】:
-
你是不是用断点调试,一步步运行每条语句?这会将问题缩小到特定的代码行。
-
你试过没有
Me.Refresh吗? -
这是最简单优雅的解决方案,@Rene
-
Rene,这正是我一直在寻找的东西,而我这辈子都想不通。非常感谢。