在MS Access中将combobox值传递到SQL查询
我在表单中有一个组合框,我希望将组合框的文本传递到查询中 我的问题是:在MS Access中将combobox值传递到SQL查询,sql,vba,ms-access,Sql,Vba,Ms Access,我在表单中有一个组合框,我希望将组合框的文本传递到查询中 我的问题是: select..from..where something=[Forms]![Enter Data]![comboCup] 表单名为Enter Data,组合框名为comboCup。我应该这样做: [Forms]![Enter Data]![comboCup]![text] 还是这个 [Forms]![Enter Data]![comboCup]![value] 如果要在表单模块中使用它,可以执行如下操作(仅限伪代码)
select..from..where something=[Forms]![Enter Data]![comboCup]
表单名为Enter Data
,组合框名为comboCup
。我应该这样做:
[Forms]![Enter Data]![comboCup]![text]
还是这个
[Forms]![Enter Data]![comboCup]![value]
如果要在表单模块中使用它,可以执行如下操作(仅限伪代码):
如果在不同的模块中,则仍使用如上所示的变量;但是,在这种情况下,标识表单中字段的语法需要大量工作。如果到目前为止这一切都有意义的话,我可以告诉你更多 都不是。文本仅在控件具有焦点时可用。comboCup的值是绑定列。确保您的查询正在查找该值,否则您需要引用组合的column属性。您应该使用[Forms]![输入数据]![组合杯] 正如@Remou所说,访问控件的.Text属性只有在该控件具有焦点时才可用 .Value属性是冗余的,因为它是所有访问控制的默认属性,所以这两个属性是等效的:
[Forms]![Enter Data]![comboCup]
[Forms]![Enter Data]![comboCup].Value
(还请注意,.Text和.Value等属性由点运算符分隔,而不是由描述集合的bang分隔)
一个值得关注的问题是,是否要在APPEND查询的SELECT语句中使用组合框的值。在这种情况下,建议您在保存的查询中将组合框声明为参数。如果不这样做,则会导致不插入行,而如果声明参数,则会解析为空值,即引用的组合框中的值
Dim comboBoxText As String
comboBoxText = Me.YourComboboxName.Column(1)
注意:组合框列是基于1的数组strSQL接下来会发生什么?这个答案与“将组合框的文本传递到查询”有什么关系?请详细说明组合框的源。是1列还是更多?对不起,您能解释一下追加查询是什么意思吗?插入MyTable(MyField)值([Forms]![Enter Data]![comboCup])。如果您将表单控件定义为一个参数,那么效果会更好。在不知道您要查找的内容的情况下,仅通过Google查找此答案并不容易,搜索当前Access帮助文件是一场噩梦。这个答案现在出现在谷歌搜索的第一页,这证明了它是多么有用。
Dim comboBoxText As String
comboBoxText = Me.YourComboboxName.Column(1)