首先,讓我通過說我幾乎完全不瞭解Access,VBA或SQL知道序言。但是,當老闆要求你做某件事時,你就這樣做了。對於格式不佳,數據庫管理不當,以及我普遍缺乏知識,我事先表示歉意。級聯組合框
不管怎麼說,我有一個查詢,我需要使用組合框來組織一個大表。查詢的名稱是FinalTable,我希望組合框命名的字段是ID Maker.Billet Material,ID Maker.Billet Number,ID Maker.Test Type和ID Maker.Axis。一旦每個框被更新,我想顯示該行的其餘字段。
下面是我在窗體的代碼爲止。這是從我在Google上搜索時發現的教程中撕下來的,但我現在已經絕望地迷失和困惑,無法弄清下一步該怎麼做。
Private Sub TestType_AfterUpdate()
On Error Resume Next
Dim query As String
Dim Fields(3)
Fields(0) = "[ID Maker.Billet Material]"
Fields(1) = "[ID Maker.Billet Number]"
Fields(2) = "[ID Maker.Test Type]"
Fields(3) = "[ID Maker.Axis]"
query = "Select DISTINCT {replace} " & _
"FROM FinalTable " & _
"WHERE [ID Maker.Test Type] = '" & TestType.Value & "' " & _
"WHERE [ID Maker.Billet Number] = " & BilletNumber.Value & " " & _
"WHERE [ID Maker.Billet Material] = '" & BilletMaterial.Value & "' " & _
"ORDER BY {replace};"
'Assign Queries
'=========================
Me.BilletMaterial.RowSource = Replace(query, "{replace}", Fields(0)) 'Billet Material Query
Me.BilletNumber.RowSource = Replace(query, "{replace}", Fields(1)) 'Billet Number Query
Me.TestType.RowSource = Replace(query, "{replace}", Fields(2)) 'Test Type Query
Me.Axis.RowSource = Replace(query, "{replace}", Fields(3)) 'Axis Query
'requery combobox's
Me.BilletMaterial.Requery
Me.BilletNumber.Requery
Me.TestType.Requery
Me.Axis.Requery
End Sub
Private Sub Axis_AfterUpdate()
On Error Resume Next
Dim query As String
Dim Fields(3)
Fields(0) = "[ID Maker.Billet Material]"
Fields(1) = "[ID Maker.Billet Number]"
Fields(2) = "[ID Maker.Test Type]"
Fields(3) = "[ID Maker.Axis]"
query = "Select DISTINCT {replace} " & _
"FROM FinalTable " & _
"WHERE [ID Maker.Axis] = '" & Axis.Value & "' " & _
"WHERE [ID Maker.Test Type] = '" & TestType.Value & "' " & _
"WHERE [ID Maker.Billet Number] = " & BilletNumber.Value & " " & _
"WHERE [ID Maker.Billet Material] = '" & BilletMaterial.Value & "' " & _
"ORDER BY {replace};"
'Assign Queries
'=========================
Me.BilletMaterial.RowSource = Replace(query, "{replace}", Fields(0)) 'Billet Material Query
Me.BilletNumber.RowSource = Replace(query, "{replace}", Fields(1)) 'Billet Number Query
Me.TestType.RowSource = Replace(query, "{replace}", Fields(2)) 'Test Type Query
Me.Axis.RowSource = Replace(query, "{replace}", Fields(3)) 'Axis Query
'requery combobox's
Me.BilletMaterial.Requery
Me.BilletNumber.Requery
Me.TestType.Requery
Me.Axis.Requery
query = ...
聲明我現在在那裏現在導致錯誤。在我嘗試這之前,只有第一個WHERE語句。
那麼沒有錯誤出現,所以這是進步。但是,第二個組合框未被填充。此外,有沒有辦法刪除組合框中的重複? – user3241316
我喜歡這個問題/回答。我特別喜歡拍拍那些在名字中放置空格的人。 – Smandoli
@ user3241316您可以使用'DISTINCT'命令修復重複問題。我不知道組合框的其他名稱,但您只需創建一個新字符串,複製並粘貼查詢,然後更改要返回的獨特值,將其分配給組合框和查詢,然後將其分配給您完成。請查看上面的代碼更新。 – Rich