所以我认为我对VBA编程有一个体面的(让我们说中级)了解,但这让我感到难过......
上下文:我继承的MS-Access应用程序的一些VBA编程。此应用程序是FE / BE分隔的,BE是存储在网络服务器上的数据库文件。
我最初的问题与未能打开记录集时的丑陋异常有关,在谷歌先生的帮助下觅食后,我选择使用GetAttr()方法来测试对BE目录的访问。 / p>
On Error goto ErrConnect
a = GetAttr("\\server-name\directory\")
If (a <> Null) Then
MsgBox "is connected"
ElseIf (a = Null) Then
MsgBox "not connected"
Else
MsgBox "this is interesting..."
End If
ErrConnect:
MsgBox "Failed to open remote database at \\server-name\directory\"
Resume Next
当然“Resume Next”并没有任何意义,但我很好奇我的变量“a”如何既可以是Null也可以是非Null ...(我总是得到“有趣的“消息当然”。
这不是很奇怪吗?
修改(有关信息,在“a”上设置观看表示它为空)
答案 0 :(得分:0)
Null不是可以对其执行算术运算的值。
? Null = Null
Null
? Null <> Null
Null
因为你可以看到你不能使用Null作为If。它不会是真或假,所以你的理由总是被执行。如果你这样做了。
If a <> 0 Then
MsgBox "Connected"
Else
MsgBox "Not Connected"
End If
那会有用。
答案 1 :(得分:0)
不在c#中。似乎真正存储值为null和非null将需要计算机存储基于电子状态的数据。然后,在您评估它之前,它可以为null并且不为null。一旦观察到数据,就会被迫崩溃到一个或另一个州。