将组合框值传递给sql查询MS ACCESS

时间:2010-05-16 19:09:03

标签: sql vba ms-access

我在表格上有一个组合框

我希望将组合框的文本传递给查询。

我的查询是:

select..from..where something=[Forms]![Enter Data]![comboCup]

表单名称是输入数据,组合框名称是combocup。我应该这样做:

[Forms]![Enter Data]![comboCup]![text]

[Forms]![Enter Data]![comboCup]![value]

...

4 个答案:

答案 0 :(得分:6)

你应该使用[Forms]![输入数据]![comboCup]。

正如@Remou所说,只有当控件具有焦点时,Access控件的.Text属性才可用。

.Value属性是多余的,因为它是所有Access控件的默认属性,因此这两个是等效的:

  [Forms]![Enter Data]![comboCup]
  [Forms]![Enter Data]![comboCup].Value

(另请注意,.Text和.Value等属性由点运算符分隔,而不是用于描述集合的bang)

一个值得关注的问题是,如果要在APPEND查询的SELECT语句中使用组合框的值。在这种情况下,建议您将组合框声明为已保存查询中的参数。如果不这样做,可能导致不插入行,而如果声明参数,它将解析为Null,即引用的组合框中的值。

答案 1 :(得分:2)

都不是。仅当控件具有焦点时,文本才可用。 comboCup的值是绑定列。确保您的查询正在查找该值,否则您将需要引用组合的列属性。

答案 2 :(得分:1)

Dim comboBoxText As String 

comboBoxText = Me.YourComboboxName.Column(1)

注意:Combobox列是基于1的数组

答案 3 :(得分:0)

如果您将在Form模块中使用它,您可以执行以下操作(仅限伪代码):

Event comboCup_afterUpdate()
    strCup = Me!comboCup
    strSQL = "SELECT ... etc ... ='" & strCup & "'"
End Sub

如果在不同的模块中,那么仍然使用如上所示的变量;但是,在这种情况下,您在表单中标识字段的语法需要大量工作。如果到目前为止这一切都有意义,我可以告诉你更多。