我认为我接近这个,但无法完成过滤过程。使用表单组合框将查询过滤器应用于
tblIndex(PrimaryCat,SubCat,UserID,Year)
tblResults(SubCat,UserID)
我的表单有两个组合框和一个按钮。 ComboBox1具有tblIndex.PrimaryCat值,ComboBox2具有tblIndexYear值。
我想要的是当窗体中的命令按钮被按下时,当组合框值被用作tblIndex上的过滤器时,tblResults打开显示SubCat和UserID值的列表。
这是否有意义?
我将表单的记录源设置为tblResults。我用这个,只需要在过滤加莫名其妙:
Private Sub cmdGo_Click()
Dim strSQL As String
strSQL = "SELECT SubCat, UserID " & _
"FROM tblIndex " & _
"WHERE PrimaryCat = [strCat] AND Year = [strYear] " & _
"GROUP BY SubCat, UserID"
DoCmd.OpenQuery "strSQL"
End Sub
编辑:
我不知道,如果允许我回答我自己的问题,但我研究出了解决办法。 I>使用INTO把结果到一个临时表,我可以使用进一步操纵:
私人小组cmdGo_Click()
昏暗STRSQL作为字符串
STRSQL = “SELECT SUBCAT,用户ID INTO tblTemp” & _ “FROM tblIndex” & _ “WHERE PrimaryCat = '” & cboPrimaryCat.Value & “ 'AND年='” &> cboYear.Value & _ “' GROUP BY SUBCAT,用户名”
DoCmd.RunSQL STRSQL
末次
我想,当初是你提到的同样的原因,但得到运行时错误7874:Microsoft Access不能找到对象STRSQL“ – vbevan
取出“从DoCmd.OpenQuery” STRSQL “通过了,但是我得到了相同的运行时错误,但是这意味着它有SQL语句”SELECT Subcat ......“而不是”strSQL“作为它找不到的对象 – vbevan
那是因为strSQL是一个变量,你必须编写DoCmd.OpenQuery strSQL,如果你写了DoCmd.OpenQuery“strSQL”,Access会试着找到一个名字为strSQL的查询 – mnieto