我有这个功能,我得到3075运行时错误 . 在这行代码中,我将在之后发布休息 . 我有一个子表单,有3个框可以选择任一选项来获取表单上的数据(品牌,通用,制造商) . 我认为使用我的IF语句将数据恢复到形式有问题,但不确定如何重新编写它 .
错误行是在调试模式下 - Me.tbl_Drug_Master_Date_subform.Form.RecordSource = task
错误消息状态:查询表达式中的语法错误(缺少运算符) '[Brand]=Idaloprine'And[Generic] like '*'And[Manufacturer] like '*'
完整代码:
Function SearchCriteria()
Dim Brandtype, strGeneric, strManufacturer
Dim task, strCriteria As String
If IsNull(Me.cboBrand) Then
Brandtype = "[BRAND] like '*'"
Else
Brandtype = "[BRAND] = " & Me.cboBrand & "'"
End If
If IsNull(Me.cboGeneric) Then
strGeneric = "[Generic] like '*'"
Else
strGeneric = "[Generic] = " & Me.cboGeneric & "'"
End If
If IsNull(Me.cboManufacturer) Then
strManufacturer = "[MANUFACTURER] like '*'"
Else
strManufacturer = "[MANUFACTURER] = " & Me.cboManufacturer & "'"
End If
strCriteria = Brandtype & "And" & strGeneric & "And" & strManufacturer
task = "Select GENERIC, BRAND, MASTER_ID, PRODUCT_CATEGORY, MANUFACTURER, HTP_MODEL_QTR, HTP_SELECTION_REASON1, LU.ID, LU.Date_YYYYQX from [tbl_Drug_Master] DM left outer join tbl_YYYYQX_LU LU on LU.ID = DM.HTP_MODEL_QTR Where " & strCriteria
Me.tbl_Drug_Master_Date_subform.Form.RecordSource = task
Me.tbl_Drug_Master_Date_subform.Form.Requery
End Function
2 回答
如消息所示,您的查询表达式已损坏 . 单引号
'
用于包含字符串文字 . 因此,'[Brand] = Idaloprine'
是字符串文字,而不是比较 . 你可能想写的是[Brand] = 'Idaloprine'
. 这是字段([Brand]
)和字符串文字('Idaloprine'
)之间的比较(=
) .因此,您的目标是修改代码,使查询表达式读取
修改代码以实现这一目的留下来作为练习 .
两个问题 . 首先,您的报价不匹配:
您在cboBrand的开头缺少单引号 . 所以,如果cboBrand =“可乐”,你会得到什么:
注意缺少开头的单引号?用这样的东西替换它们:
第二个问题;间距 . 这是你的代码:
你需要空格,否则它将被解释为一个长字 . 试试这个: