2015-08-14 128 views
0

我有幾個組合框(CB)從我的訪問數據庫填充。它們都從同一張桌子上拉出來,並使用表格中相同的隱藏主鍵。當我從其中一個CB中選擇一個值時,我希望其他人根據匹配的主鍵更新相關值。通過查詢更新基於另一個組合框的組合框

這可能嗎?

我一直在努力,現在使用下面的變化了一段時間,但沒有成功:

Dim strSQL As String 
strSQL = "SELECT gsr_id FROM task WHERE task_wid = " & Me.cboTask.Column(0) 
Me.cboGSRTask.Section = CurrentDb.OpenRecordset(strSQL) 

Debug.Print "SELECT gsr_id FROM task WHERE task_wid = " & Me.cboTask.Column(0) 

謝謝。

+0

是的,對不起。我得到以下錯誤:類型不匹配 我試圖用str,int,variant轉換數據類型,但沒有任何成功。 – user3661576

+0

是的,它是一個組合框。我想更新所有組合框,只要其中一個更改。它們更新的值應該來自數據庫上的相同記錄(使用主鍵)。我可能會錯誤地解決這個問題,但這正是我希望能夠完成的。 – user3661576

+0

這只是我試過的最後一個。在此之前,我看了其他幾個人,但沒有得到正確的工作。 – user3661576

回答

1

如果您打開一個記錄集,則需要從中讀取一個值,但不能將該記錄集用作值。 我猜你正在尋找的是:

Dim strSQL As String 
Dim RS As Recordset 

strSQL = "SELECT gsr_id FROM task WHERE task_wid = " & Me.cboTask.Column(0) 
Set RS = CurrentDb.OpenRecordset(strSQL) 

' This assumes that gsr_id is the bound column of cboGSRTask 
Me.cboGSRTask = RS!gsr_id 
RS.Close 

或替代上述所有的,使用使用DLookup():

Me.cboGSRTask = DLookup("gsr_id", "task", "task_wid = " & Me.cboTask.Column(0)) 

或添加gsr_id到的行來源可能是更容易cboTask(作爲寬度= 0的列)並使用該列分配給cboGSRTask。

+0

我玩過一些你提供的解決方案,並且覺得DLookup對我的需求最有用。真的很感謝你的回答,謝謝! – user3661576

相關問題