2015-08-14 4 views
0

У меня есть несколько комбинированных ящиков (CB), заполняющихся из моей базы данных доступа. Все они вытаскивают из одной таблицы и используют один и тот же скрытый первичный ключ из таблицы. Когда я выбираю значение из одного из CB, я бы хотел, чтобы остальные обновлялись со связанным значением на основе соответствующего первичного ключа.Обновление combobox на основе другого combobox через запрос

Возможно ли это?

Я пытался использовать вариации следующих на некоторое время теперь без успеха:

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, вариант, но не имел никакого успеха. – 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