我有一个带有按钮的表单,该表单调用和过滤两个联合查询,它们之间总共有大约40个SELECT查询。然后,它将数据显示在报告中。 Union查询中的每个SELECT查询都从数据库中的多个唯一表中收集记录。最近,我不得不在联合查询中添加更多的SELECT查询,以从新表中获取记录,这是我遇到运行时错误的时候。在添加这些SELECT查询之前,它很好地打开了报表,因此在假设UNION查询中有太多SELECT查询的情况下,即时消息是正确的。要解决此问题,我是否只是不使用UNION查询并找到替代合并记录的替代方法?还是VBA代码中需要调整的内容?这是我的代码
Private Sub Command189_Click()
DoCmd.SetWarnings False
DoCmd.Close acReport, "Operator Daily Review"
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim varItem As Variant
Dim strCriteria As String
Dim strSQL As String
Set db = CurrentDb()
Set qdf = db.QueryDefs("Productivity_WeeklyFinal")
Set qdf2 = db.QueryDefs("qFiller_Names")
strSQL = "SELECT Info_ME_Employees.ID, gs_1_week_finalUnion.SampleID,
gs_1_week_finalUnion.Operator, Format$([TestDate],'m/dd/yyyy') AS Test_Date,
gs_1_week_finalUnion.Test FROM Info_ME_Employees INNER JOIN gs_1_week_finalUnion ON
Info_ME_Employees.Full_Name = gs_1_week_finalUnion.Operator" & _
" WHERE Info_ME_Employees.ID IN (4,5,6,7)AND gs_1_week_finalUnion.TestDate Between (Date()-7-
Weekday(Date(),2)) And (Date()-Weekday(Date(),2)-1) " & _
" ORDER BY gs_1_week_finalUnion.Operator"
strSQL2 = "SELECT Info_ME_Employees.ID, Info_ME_Employees.Full_Name FROM Info_ME_Employees" & _
" WHERE Info_ME_Employees.ID IN (4,5,6,7)"
qdf.SQL = strSQL
qdf2.SQL = strSQL2
DoCmd.OpenReport "Operator Daily Review", acViewReport
Set db = Nothing
Set qdf = Nothing
End Sub
我认为UNION查询中可以包含的表数量有限-可能为32。因此,您的选择是:
另外,也许可以通过某种方式重新设计数据库,因为很少需要很多联合。
问候,