ms-access - 避免字段为空时 Invalid use of Null 错误

标签 ms-access vba

我在 Access 2010 中创建了一个表单,并根据文本框(B 和 C)和选择表单组合框 (A) 填写了该表单。问题是,如果任何文本框留空,我会收到“无效使用 Null”错误。我注意到如果我将文本框调暗为变体而不是整数,则可以避免此错误。我不确定这是否是正确的解决方案。我可以更改以下脚本来避免此错误吗?

Private Sub ABCBoxEnter_Click()
Dim A As String
Dim B As Integer
Dim C As Integer
If Not IsNull(Me!ComboBox.Value) Then
    A = Me!ComboBox.Value
    B = Afield
    C = Bfield
    values = "VALUES ("
    values = values & "'" & ID & "','" & A & "','" & B & "','" & C & "')"
    SQL = "INSERT  INTO ContactTable (ID, A, B, C)"
    SQL = SQL & values
    DoCmd.RunSQL SQL
    Me.B.Value = ""
    Me.C.Value = ""
End If
End Sub

最佳答案

您可以使用Nz:

values = values & "'" & Nz(ID) & "','" & Nz(A) & "','" & Nz(B) & "','" & Nz(C) & "')"

或者,更好的是,实现我的函数 CSql

关于ms-access - 避免字段为空时 Invalid use of Null 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45691067/

相关文章:

sql-server - 升迁拆分 Access 数据库

ms-access - 可以在子表单数据加载之前从父表单对子表单设置过滤器

excel - 评估 Office 应用程序状态栏中的进度条

vba - 如何在 VBA 宏中应用 Excel 公式来查找倒数第二个单词

java - 在 Java 中支持 Oracle 和 Access 数据层

使用另一个表中的相同 ID 对列中的 SUM 值进行 SQL 查询

excel - 为什么我的宏无法与solidworks 连接?

ms-access - 如何创建表单类的新实例,然后将其作为acDialog框打开(暂停其他代码)?

sql - 在 Access vba 中执行参数化的 T-SQL 存储过程

vba - 让 Excel 从 VBA 中刷新工作表上的数据