2016-11-20 119 views
0

我是编码新手,正在尝试开发一个允许我填充数据库的用户表单。VBA中的修复类型不匹配错误13

我想为可以通过用户窗体输入到数据库的数据设置一些验证。

我正在使用的代码如下所示,其中Reg是我的用户窗体上控件的名称。

当我运行这部分代码时,它停在第一行并显示类型不匹配错误13消息框。

任何帮助你可以给予非常感谢。

Sub ValidCombo1() 

    If Reg18.Value = "" And ((Reg17.Value <> "1" Or (Reg15.Value <> "0" Or "") Or Reg16.Value <> "A" Or Reg19.Value <> "") Or (Reg17.Value <> "" And Reg15.Value <> "" And Reg16.Value <> "" And Reg19.Value <> "")) Then 

     MsgBox "Invalid Foundations combination" 

     Reg13.Value = "" 

    ElseIf Reg25.Value = "" And ((Reg24.Value <> "1" Or (Reg22.Value <> "0" Or "") Or Reg23.Value <> "A" Or Reg26.Value <> "") Or (Reg24.Value <> "" And Reg22.Value <> "" And Reg23.Value <> "" And Reg26.Value <> "")) Then 

     MsgBox "Invalid Inverts and Aprons combination" 

     Reg13.Value = "" 
+0

你可以把if语句放入代码块吗? – user1

回答

2

您的代码可能有其他的问题,但这样的表达式

Reg15.Value <> "0" Or "" 

是一个类型不匹配。 ""是一个字符串,不是布尔值。

通过

Reg15.Value <> "0" And Reg15.Value <> "" 

(我认为这是你的意图)更换Reg15.Value <> "0" Or ""将消除这些类型不匹配。

+0

谢谢约翰,这似乎已经清除了它。 – Wizard0800