大家早上好!
我正在试验一个Access 2007表单,其中包含一个将值插入查询的文本框。我希望能够在文本框中输入多个值。值以逗号分隔,但也用引号括起来。文本框中的值将插入HAVING子句中。
代码如下所示:
示例:
HAVING Max([COLOR].[COLOR_CODE] In ("11111","22222"))
现在我想在表单上使用文本框来插入值,但我需要处理引号。所以我在SELECT语句和HAVING子句中将值转换为Numbers。
示例:
HAVING Max(CLng([COLOR].[COLOR_CODE] In ([Forms].[MyForm]![txtColorCode])))
问题是当我在查询工作的表单上的文本框中输入11111但是当我输入11111,22222时查询不起作用。
所以我有这个想法;如果我可以输入,例如:11111,22222,33333,44444
并使用代码将值格式化为"11111","22222","33333","44444"
这样我可以放弃Conversion / CLng,只需使用带有字符串的IN运算符。
如何格式化或转换以便将其插入查询中。也许在提交?
我真的很感激和投入或想法。
谢谢大家。
盖
答案 0 :(得分:0)
这些价值来自哪里?列表框是不可能的?不要忘记,如果可以引用表格,则可以轻松地在列表框中添加和删除值,甚至更容易。选择值后,可以迭代它们以创建所需的子句。
您将始终必须在VBA中构建查询,您将无法在查询设计窗口中引用这样的文本框。