问题描述
我正在编写一个 VBA,如果 Parcel# 与 Me.Parcel 匹配,则使按钮上的字体变为粗体。 # 是字段名称的一部分。 MS Access 认为这是一个约会。这是我的代码。它不断收到“查询表达式中日期的语法错误”。我知道它一定是我遗漏的一些简单的东西。
Private Sub Form_Current()
If DCount("*","County Address Table","Parcel#'='" & Me.Parcel) Then
Me.[COUNTY ADDRESS HISTORY].FontBold = True
Else
Me.[COUNTY ADDRESS HISTORY].FontBold = False
End If
解决方法
表名和列名可以有特殊字符,但是它们需要在查询中被引用,以免事情往南——就像一个 #
字符被解释为一个 {{1} } 文字定界符 =)
事实上,出于各种原因,引用字段名称应该是默认的操作方式。
使用 Date
方括号 [
来引用标识符,as already suggested:
]
考虑在新表和新列名中避免使用空格和特殊字符:If DCount("*","[County Address Table]","[Parcel#]'='" & Me.Parcel) Then
、CountryAddressTable
等更易于使用。
“字符串的第一部分” & Chr(35) & “字符串的第二部分”
,您可以将其简化为:
Private Sub Form_Current()
Me.[COUNTY ADDRESS HISTORY].FontBold = _
Not IsNull(DLookup("[Parcel#]","[Parcel#] = '" & Me.Parcel & "'"))
End Sub
如果 Parcel# 是一个数字,删除单引号。