在MS Access中,分配字符串文字有时会导致空字符串
以下代码
Public Sub test()
Dim myString As String
myString = "UPDATE "
Debug.Print "'" & myString & "'"
End Sub
结果
''
这吓坏了我。它有时只会发生。其他时候“UPDATE”会起作用,但myString =“tblCategorie”不会。它需要完全是String。如果“更新”失败,那么“更新”仍然可以。
我正在使用MS Access 2003 11.8204.8221 SP3有没有人遇到同样的问题?
(在您说之前:转储访问权限!我们已经这样做了,但仍处于过渡阶段。我并不是真的希望任何人都能得到一个体面的答案,但是一个人可以希望)
[更新]:感谢所有评论!让我说得非常清楚
答案 0 :(得分:1)
您使用的是On Error Resume Next
,即分配失败了吗?也就是说,我不明白为什么String
字面值String
字符的赋值会失败,这就引出了一个问题:mySting真的输入为String
吗?
更新:我从你的UPDATE(双关语意图?)看到我的猜测已经消失。我根本无法看到你的代码如何无法打印“UPDATE”以外的任何内容。也许您现在应该将此视为放弃动态SQL以支持预准备语句的机会,或者最好是PROCEDURES
(当然,在ACE / Jet的存储过程中仅限于单个SQL语句,但至少它们保留SQL代码在正确的位置,即db)。
答案 1 :(得分:0)
您发布的代码是否是失败的代码副本或合理的传真?我想知道在释义中是否丢失了某些内容,因为我发现你发布的代码没有任何错误。
答案 2 :(得分:0)
只是一个盲目猜测......你确定你正确地输入了第二个“myString”吗?
因为你不这样做(例如
Debug.print "'" & mySting & "'"
)访问不会抱怨,但会创建一个空变量......
答案 3 :(得分:0)
转储访问! : - )
有些东西是FUBAR。你在数据库上尝试过压缩和修复吗?
我要尝试的另一件事是在VBA代码上运行一个copile(Debug-> Compile Access [X])。