Access 2010 vba - 从 excel 数字、字母或空格导入

Access 2010 vba - import from excel numbers, letters or blank spaces

我对 vba 还是个新手。我有一个数据库,在其他人的帮助下,我终于能够在导入时进行验证检查。但是,我可以用数字作为文本来完成检查,但是如果我需要字母字符或者单元格是空白的,我就会被卡住。这就是我将数字作为文本所拥有的。我需要两项检查:1) 接受字母数字或空白(空)和 2)数字或空白(空)。

   Function chk2(A As String) As Boolean
   Dim i As Integer, l As Integer, c As String
   l = Len(A)
     If l = 4 Then
      chk2 = True
         For i = 1 To l
         c = Mid(A, i, 1)
         If Not (c >= "0" And c <= "9") Then
            chk2 = False
            Exit Function
        End If
    Next i
    End If
   End Function

只要每个 row/cell 都有字符要填写,这个就可以正常工作。 预先感谢您的帮助。

如果您要 return 一个布尔值,如果一切都正确执行,您应该只 return 一个真值,这样如果某些事情失败了,您就不会得到误报。 您可以检查单元格的空白单元格长度是否为 0,即如果 Len = 0 您在 If Not 语句中所做的是检查 c 的 ascii 值是否在 0 和 9 的 ascii 值之间,因此您可以使用 or 语句来检查它是否在 a 和 z 或 A 和 Z 之间,或者是否存在space 这是字符 32 - Chr(32) :

Function chk2(A As String) As Boolean
    Dim i As Integer, l As Integer, c As String

    chk2 = false

    l = Len(A)
    If l = 0 then
        'do something if the cell is blank
        chk2 = true
    ElseIf l = 4 Then
        For i = 1 To l
            c = Mid(A, i, 1)

            If Not ((c >= "0" And c <= "9") Or (c >= "a" And c <= "z") Or (c >= "A" And C <= "Z") Or c = Chr(32)) Then
                Exit Function
            End If
        Next i

        chk2=true
    End If
End Function