我是MS Access的新手,並且一直在開發基本的CRM系統。到目前爲止,所有方法都進行得很順利,但是我對我的想法是一個非常簡單的問題,我可以理解它......我可以理解VBS並在一般情況下解決Access問題,但絕不是任何領域的專家。難以填充未綁定的組合框
如何使未綁定的組合框自動根據表中的其他值自行設置爲某個值?
我有一個表格供用戶編輯員工信息,其中包括用於輸入員工分部和分部的組合框。大約有10個師,每個師有5個分支。
分支組合框將BranchID保存到tblEmployee表中,並將其作爲tblBranch表的鍵。 tblBranch表還具有BranchName和DivisionID,DivisionID作爲tblDivision表的關鍵字,基本上只有分區ID和分區名稱。
現在分區組合框未被綁定,因爲這僅僅是允許用戶縮小分支組合框的範圍。如果單擊分區組合框,級聯菜單就會正常工作,但是當我打開表單時,分組組合框顯示空白(因此分支組合框也顯示空白,因爲它具有對分組組合框的標準引用)。
我該如何讓分部組合框查看特定員工的BranchID,然後向相關分部預先設置?
我試圖通過設置一個綁定和一個事件來做到這一點,但我無法讓任何一種方式正常工作...(可能只是我的新手)。
謝謝!
謝謝!很高興看到我一直在正確的道路上。然而,它仍然不起作用,我認爲這是因爲我不瞭解YourEmployeeIDField。
我的代碼如下:
Private Sub cboDivision_Enter()
Dim sql_ As String
sql_ = "SELECT d.Division " & _
"FROM tblDivision d INNER JOIN (tblBranch b INNER JOIN tblEmployee e ON b.BranchID = e.BranchID) ON d.DivisionID = b.DivisionID " & _
"WHERE e.EmployeeID=" & Me.txtEmployeeID
Me.cboDivision.RowSource = sql_
End Sub
我刪除的組合框的選擇標準,以確保事情並沒有獲得濾出意外。
我嘗試使用EmployeeID,e.EmployeeID,txtEmployeeID(表單上的字段)和Me.txtEmployeeID,沒有太多的運氣。
在調查了RowSource方法之後,我想知道我是否可能沒有解釋我究竟想要什麼? (或者我只是誤解)組合框cboDivision填充了tblDivision.Division,這是我想要的。但是,因爲它是未綁定的,所以當記錄加載到我的表單中時,cboDivision是空白的。我希望它顯示與綁定的cboBranch組合框關聯的分區(但是當您點擊cboDivision時,它仍然有可用於選擇的完整分區列表)。
,我正在使用的按鈕代碼如下所示(它簡化SQL,但是同樣的結果發生與您的代碼):
Private Sub Command240_Click()
'Me.cboDivision.Value = 8
Dim sqlStr As String
sqlStr = "SELECT d.DivisionID" & _
"FROM tblDivision d INNER JOIN tblBranch b ON b.DivisionID = d.DivisionID)" & _
"WHERE b.BranchID=" & BranchID
Me.cboDivision.Value = sqlStr
MsgBox ("You clicked me.")
End Sub
註釋掉「Me.cboDivision。值= 8「使cboDivision組合框顯示與DivisionID 8相關的分區,這是我想要的;但是,如果我用當前代碼單擊按鈕,組合框將更新爲:」SELECT d.DivisionIDFROM tblDivision d INNER JOIN tblBranch b關於b.DivisionID = d.DivisionID)WHERE b.BranchID = 45"
(45在端部是該記錄的正確BranchID,使得一部分至少是工作)。
您可能必須使用VBA來設置從屬組合框RowSource屬性。發佈您的嘗試代碼。 – June7
您需要爲SQL提供某種類型的ID,以便將篩選結果轉換爲該特定ID。如果表單已綁定,請嘗試'Me!EmployeeID',其中'EmployeeID'是持有該ID的字段的名稱。 –
我現在已經有了這方面的工作。我想我應該做的是設置cboDivision的價值。我正在使用按鈕對其進行測試,只是爲了排查故障。 我通過使用Me.cboDivision.Value = 18來成功地工作,然後顯示與DivisionID number 18相關聯的Division;但是,當我嘗試在按鈕事件中使用任何SQL代碼時,它顯示的值是SQL代碼...而不是對SQL查詢的響應。 –