2016-06-26 3 views
2

Я хочу создать два CombiFields в форме доступа:доступа: SQL SELECT, столбцы из таблицы

  • первый должен показать все имена таблиц из БД в раскрывающемся списке (*)
  • и второй нужно показать все имена столбцов из таблицы, выбранной в первом Combifield.

Любые идеи?

(*) У меня уже есть первый код:

SELECT MSysObjects.Name 
FROM MSysObjects 
WHERE (((MSysObjects.Flags)=0) AND ((MSysObjects.Type)=1)); 

ответ

0

попробовать сильфона код AfterUpdate первого комбо

Private Sub Combo0_AfterUpdate() 
Dim TableName As String 
TableName = Me.Combo0.Value 
Dim rs As New ADODB.Recordset 
Set rs = CurrentProject.Connection.OpenSchema(adSchemaColumns, Array(Empty, Empty, TableName)) 
Dim fldname As String 
rs.MoveFirst 
Do Until rs.EOF 
fldname = fldname & rs!Column_Name & ";" 
rs.MoveNext 
Loop 
Me.Combo2.RowSource = fldname 
Me.Combo2.RowSourceType = "Value List" 
Me.Combo2.Requery 
End Sub 
+0

К сожалению, я все еще не могу запустить его ... Подводя итог: первый Combobox (Combo1) показывает имена таблиц. Я добавляю код AfterUpdate от nazark к этому. И я добавляю код AfterUpdate от Gustav ко второму Combobox (Combo2). Теперь я получаю ошибку компиляции для кода «Dim rs As New ADODB.Recordset» Спасибо заранее! :) – Flow74

+0

Вы не можете смешать и бросить все так просто. Вам нужно только и не более, чем моя единственная строка кода (выше). Второе поле со списком нуждается в нулевом коде. – Gustav

+0

вам нужно добавить ссылку на microsoft activex Data Object library 2.6 из меню инструментов окон кода – nazark

3

Установите RowSource свойство выпадающий список с именем таблицы (= ComboBoxTable).

Затем установите RowSourceType свойство: Список Field

Private Sub ComboBoxTable_AfterUpdate() 

    Me!ComboBoxFields.RowSource = Me!ComboBoxTable.Value 

End Sub 
+0

Спасибо, но на самом деле я действительно не понимаю. Должен ли я писать «= ComboBoxTable» в RowSource? Или есть также SQL-код, который работает? – Flow74

+0

Нет, используйте событие _AfterUpdate_ для таблицы combobox. См. Править. – Gustav

Смежные вопросы