Вы до сих пор не сказали, где строка соединения приходит и почему. Большим преимуществом Access является то, что он быстрый и простой, по большей части вам не нужны строки подключения.
Сначала выберите таблицу, затем выберите форму для создания. Это создаст форму , привязанную к таблице. Вы могли бы сначала создать запрос и выбрать его.
Все. У вас есть форма, отображающая ваши данные. Ключом к этому является лист свойств для формы, который вы можете найти, переключившись на проектный вид и дважды щелкнув маленький квадрат в левом верхнем углу формы под именем формы. В листе свойств будет отображаться имя таблицы или запроса на вкладке «Данные» в разделе «Источник записи». Вы можете, конечно, установить это свойство вручную.
Теперь вы можете добавить выпадающий выбрать записи, но вы не должны есть навигационные кнопки в нижней части формы.
Чтобы добавить выпадающий список, который выбирает записи в вашей форме, вы должны сначала связать набор записей с формой, используя приведенные выше шаги. Затем убедитесь, что мастер выбран для панели инструментов. Если вы не отменили его, он будет выбран. Теперь выберите combobox из панели инструментов, он откроет мастер.
Выберите найти запись на моей форме и нажмите рядом выберите соответствующий ID поля/колонки и любые другие поля, которые вам нужны. Когда мастер завершит работу, в MS Access 2010 (и, вероятно, в 2007 году) он добавит встроенный макрос, который найдет вашу запись, а в более ранних версиях он добавит код. Другие свойства, установленные с помощью мастера будет выглядеть примерно так:
Row Source : SELECT ID, Firstname, Lastname FROM Table1
Column Count : 3
Column Widths : 0cm;2.54cm;2.54cm
Ваша таблица должна иметь идентификатор, добавьте перед тем, как начать, если он не делает. Мастер не добавит контрольный источник, если этот параметр выбран, потому что он не нужен, на самом деле было бы катастрофой добавить контрольный источник в комбо, которое находит записи. Еще раз, вы можете сделать это вручную.Код, чтобы найти запись может выглядеть примерно так:
Private Sub MyCombo_AfterUpdate()
With Me.Recordset
.FindFirst "ID=" & Me.MyCombo
End With
End Sub
Это работает, потому что связанный столбец комбо установлен в 1, то первое поле оператора выбора, который является ID.
комбо включает в себя два других полей/столбцов, и вы можете обратиться к ним в текстовом поле, установив источник управления текстового поля в:
= MyCombo.Column(2) ''Lastname
Где вы подсчитываете столбцы от нуля:
Row Source : ID (0), Firstname (1), Lastname (2)
Каскадные комбо - это совсем другая история, и вы можете прочитать ее здесь How to synchronize two combo boxes on a form in Access 2002 or in Access 2003 и здесь Is there a simple way of populating dropdown in this Access Database schema?
Вы работаете в MS Access? Используете ли вы Jet/ACE или какой-либо другой задний конец? Если вы работаете в MS Access с Jet/ACE, почему вы используете строку подключения и почему вы просто не привязали свою таблицу или запрос к форме? – Fionnuala
Спасибо за ваш ответ, я использую ms-доступ с vb, как связать результат запроса с значением текстового поля? –
Что вы подразумеваете под vb? VB.Net, VBA? Вы работаете в рамках самого доступа? Если это так, это VBA. – Fionnuala