2016-03-14 110 views
0

我想将字符串传递给具有参数“companyType”的Access查询。 sql是“[forms]![formname]。[fieldname])”传递分隔字符串以访问查询作为参数

这适用于一个值,但对于字符串例如“CompanyType1”,“CompanyType2”不起作用。

我知道如果该字段的数据类型是短文本或长文本类型,那么in运算符中的每个元素都需要引号。我试图用单引号包装它们也无济于事。

当我硬编码在查询中的值,例如“in('CompanyType1','CompanyType2')”查询返回行,所以我认为这是与引用转义但不完全确定。

+0

如果表单选择是两家公司我建立在VBA代码字符串:companyList =“‘公司1’,‘Company2的’”我已经尝试了单,双引号,但相同的结果。 – user1180741

+0

发布查询以及如何传递值。 – Sorceri

+0

这是查询的结尾:我在Vba中设置了一个隐藏值,该值包含“Company1”或“'Company1','Company2'”第二个选项将不起作用,尝试使用单个qoutes包装 WHERE(( AND((DatePart(“yyyy”,[reservationDate]))= [forms]![frmRevenueByMonth]![cmbYear]在[[forms]![frmRevenueByMonth]![txtHiddenCompanyType]。[Value])) )); – user1180741

回答

0

您将无法将其作为访问查询作为参数;然而,你可以建立在VBA查询:

dim qry as new QueryDef 
qry.SQL = _ 
    "SELECT some_column, ... " & _ 
    "FROM some_table [INNER JOIN ...] " & _ 
    "WHERE CompanyType IN (" & [list] & ")" 
qry.Execute 
相关问题