我有两个组合框,Combo_A在Combo_B中设置查询字符串。从combo_B中选择一个选项并按下go按钮后,将根据Combo_A中的选择执行两个查询之一。如果在Combo_A中选择了选项1,则go按钮执行查询A,如果在Combo_A中选择了选项2,则go按钮执行查询B.这一切都运行良好,它通过将查询名称分配给变量然后执行来运行一个DoCmd.OpenQuery_Click。
我的问题是我想更进一步。当选中一个复选框时,我想用另一个查询交叉引用上面的结果,当没有选中时,它需要表现得与我目前设计的完全相同。我知道我可以创建查询,但不太习惯使用vba。我可以使用代表查询的变量名来加入另一个查询吗?到目前为止,这是我的vba代码。
Option Compare Database
Private Sub AgencyorCarrierSelection_AfterUpdate()
If AgencyorCarrierSelection = "By Insurance Carrier" Then
Combo7.Visible = True
Text13.Value = "Select of of the following Carriers:"
Text13.Visible = True
Combo7.RowSource = "SELECT [tblRefInsuranceCarriers].[InsuranceCarrierID], [tblRefInsuranceCarriers].[CarrierName] FROM [tblRefInsuranceCarriers] ORDER BY [CarrierName];"
Else
Combo7.Visible = True
Text13.Value = "Select of of the following Agencies:"
Text13.Visible = True
Combo7.RowSource = "SELECT [tblRefInsuranceAgencies].[InsuranceAgencyID], [tblRefInsuranceAgencies].[AgencyName] FROM [tblRefInsuranceAgencies] ORDER BY [AgencyName]"
End If
End Sub
Private Sub lblSwitchboard_Click()
DoCmd.OpenForm "switchboard", acNormal
DoCmd.Close acForm, "frmInsuranceInformationConnect"
End Sub
Private Sub RunAgencyorCarrierQuery_Click()
On Error GoTo Err_RunAgencyorCarrierQuery_Click
Dim stDocName As String
If AgencyorCarrierSelection = "By Insurance Carrier" Then
stDocName = "qryInsuranceCarrierAgentPremiumBreakout_Carrier"
Else
stDocName = "qryInsuranceCarrierAgentPremiumBreakout_Agency"
End If
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_RunAgencyorCarrierQuery_Click:
Exit Sub
Err_RunAgencyorCarrierQuery_Click:
MsgBox Err.Description
Resume Exit_RunAgencyorCarrierQuery_Click
End Sub
答案 0 :(得分:0)
因此,您将使用基本相同的查询(A或B),但选中此框将限制结果一个额外的标准。挑战是标准要求加入另一个表。
最简单的做法是使C和D查询与A和B匹配,但是有额外的表;然后if...then
到所需的查询,就像你已经在做的那样。
或者您可以使A和B查询包含已连接的表,以便提供额外的标准,并使用parameter query指定是否使用该标准。这似乎很复杂。