You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复MS Access VBA中"Type mismatch"运行时错误13

错误产生原因
  • 核心问题是IsNull()函数的参数写法错误:你将逻辑运算符Or写在了IsNull的括号内部,VBA执行代码时会优先计算括号内的Me.txtUserId Or Me.txtPassword表达式,尝试对两个控件的值做布尔或运算。
  • 当文本框为空时,控件值为Null,而Null无法参与布尔逻辑运算,会直接触发Run-Time error '13' Type mismatch类型不匹配错误,代码根本不会执行到IsNull的判断逻辑。
  • 额外逻辑问题:就算该写法不报错,也无法实现“两个文本框都为空时触发提示”的需求,IsNull仅能判断单个输入值是否为空,无法直接对带逻辑运算符的多控件组合表达式生效。
修复方法
  • 分别对两个文本框控件单独做IsNull空值判断,再根据实际校验需求用逻辑运算符连接判断条件:
    • 若要匹配你最初的需求「两个文本框都为空时弹出提示」,使用And连接两个空值判断
    • 登录场景更通用的校验逻辑是「任意一个文本框为空就弹出提示」,此时用Or连接即可
  • 修复后的可运行代码如下(以两个都为空触发提示为例):
If IsNull(Me.txtUserId) And IsNull(Me.txtPassword) Then
    MsgBox "insert User ID and your Password", vbInformation, "Caution"
    Me.txtUserId.SetFocus
    Exit Sub
End If

注:由于你已经将两个文本框设置为数字格式,空状态下控件值为Null,直接使用IsNull判断空值是正确写法,不需要额外用空字符串""做匹配判断。

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:51:23