2012-07-27 70 views
0

我有兩個組合框,Combo_A在Combo_B中設置查詢字符串。從combo_B中選擇一個選項並按下go按鈕後,根據Combo_A中的選擇執行兩個查詢之一。如果在Combo_A中選擇了選項1,那麼執行按鈕將執行查詢A,如果在Combo_A中選擇了選項2,那麼執行按鈕將執行查詢B.這一切都很好,它通過將查詢名稱分配給變量並隨後執行一個DoCmd.OpenQuery_Click。使用vba在Access中組合兩個查詢

我的問題是,我想進一步採取這一步。我希望在選中複選框時將上面的結果與另一個查詢交叉引用,如果未選中它,它需要與我目前設計的完全相同。我知道我可以創建查詢,但不太適應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

我已經讀了幾次,但仍然不確定你想要做什麼。從我收集的內容看來,您希望運行第三個查詢,但我不明白爲什麼您不應該像之前的查詢那樣運行它。 – Fionnuala 2012-07-27 19:03:51

+0

「交叉引用」是什麼意思? – Smandoli 2012-07-27 19:04:58

+0

Remou你是對的。我想使用'qryInsuranceCarrierAgentPremiumBreakout_Agency'或'qryInsuranceCarrierAgentPremiumBreakout_Carrier'作爲聯合查詢之一運行第三個查詢。這將檢索的是列出所有具有所選保險公司/代理並且沒有自動噴灑器(來自qryAutoSprinkler)的所有特性。我目前在想,我將創建兩個新的查詢並使用嵌套的if語句來解決問題。 Smandoli我相信這也回答你的問題。感謝您的輸入 – BilliD 2012-07-27 19:20:15

回答

0

所以你基本上會使用相同的查詢(A或B),但檢查框將限制由一個額外的標準的結果。挑戰是標準要求另一個表加入。

最簡單的是做C和D查詢匹配A和B,但有額外的表;然後將if...then更改爲所需的查詢,就像您已經在做的那樣。

或者您可以使A和B查詢包含連接表,以便額外的標準可用,並使用parameter query來指定是否使用該標準。這似乎很複雜。