2017-02-23 52 views
0

组合框值如何与查询中的列值相匹配。 提供组合框记录源是表与查询记录值匹配的组合框值

我想这个代码,但它似乎没有任何工作的帮助表示赞赏

Private Sub open_button() 
    If Me.CboName.Value = "Query!Query_test!Column(0)" then 

    Docmd.OpenForm FormName:="Customer" 
    End if 
End Sub 
+0

是否要搜索此查询中的所有记录? – gizlmo

+0

@gizimo只是在查询的第一列的记录 –

回答

1

你会通过查询需要循环,检查每个记录对组合框值:

Dim rs As DAO.Recordset 

Set rs = CurrentDb.OpenRecordset("Query_test", dbOpenSnapshot) 'Open Query as Snapshot 

rs.MoveFirst 

Do Until rs.EOF 'loop through the query 

    If rs.Fields(0).Value = Me.CboName.Value Then 'if column 0 matches Combobox 

     'do something and exit loop 
     DoCmd.OpenForm FormName:="Customer" 
     Exit Do 
    End If 

    rs.MoveNext 'next record 
Loop 

'cleanup 
rs.Close 
Set rs = Nothing 
+0

@gizimo谢谢你的答复,但我不知道如果Access将采取rs.MoveFirst,我没有尝试你的方法,并得到了一个编译错误:方法或数据成员不是找到rs.MoveFirst。 –

+0

@AdityaIyer这很奇怪,对我来说它编译得很好。也许检查是否已经在引用错误消失后设置了“Microsoft Office XX.X Access数据库引擎对象库” – gizlmo

+0

@gizmo的引用,现在我的运行时错误为“3601”:太少的参数期望值为2. –

相关问题