Использование поля со списком в качестве ввода данных в форму доступа - PullRequest
0 голосов
/ 05 июля 2018

Мне было интересно, если вы можете использовать поле со списком в форме в доступе в качестве ввода данных для запроса.

Например, у меня есть форма, основанная на запросе, и я хочу использовать поле со списком для редактирования пустого поля в конце запроса на основе значений в поле со списком, аналогично раскрывающемуся поле в запросе или таблице.

Я создал столбец для значений данных, которые нужно ввести, и значения войдут в заданную область на основе страницы записи, на которой сделан выбор поля со списком.

Я могу добавить дополнительную информацию, если это необходимо.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Вам нужно создать базовый запрос, который будет содержать все ваши данные. Затем для каждого поля со списком вам нужно будет заново создать и запустить запрос. Я обычно программирую это на событие после обновления. Я также создаю и сохраняю запрос, чтобы, когда пользователь возвращается в форму, он возвращался к тем же данным, что и раньше. Просто имейте в виду, что это может привести к ошибкам при выполнении запроса и обновлении подчиненных форм.

Пример в вашей форме

'Assumes Combo1 has the data to filter and Table1 is source and Query1 exists
Private Sub Combo1_AfterUpdate()
  Dim Obj_QueryDef As Object
  Dim Temp_QueryName As Variant

  'Save Query Name for refreshing Form Data (Query will be overwritten!)
    Temp_QueryName = Me.Form.RecordSource
  'dereference the query definition object that already exists
    Set Obj_QueryDef = Me.Form.Application.DBEngine.Workspaces(0).Databases(0).QueryDefs(Temp_QueryName)
  'For Number Key
    Obj_QueryDef.SQL = "SELECT * FROM Table1 WHERE [Field1] = " & Combo1 & ";"
  'Reset the Record Query then repaint the form
    Me.Form.RecordSource = Temp_QueryName
    Me.Form.Repaint
End Sub

'To add Add More Combo Boxes, After update Regenerate SQL adding & " AND Field2 = " Combo2 & ";"
'Or better yet Create a Function that handles the SQL statement
'You can use the same idea to limit the items that appear in the dropdown selection if you update
'   the record source for the combobox
'reference for different data types:
'String Data 'String Value' use chr(39) = '
'Obj_QueryDef.SQL = "SELECT * FROM Table1 WHERE Field1 = " & Chr(39) & Combo1 & Chr(39) & ";"
'For Date Use #Date Time# Use chr(35) = #
'Obj_QueryDef.SQL = "SELECT * FROM Table1 WHERE Field1 = " & Chr(35) & Combo1 & Chr(35) & ";"
0 голосов
/ 06 июля 2018

Я немного запутался, но звучит так, будто вы хотите передать параметр в запрос. Это правильно? Как-то так, верно.

enter image description here

Если вы идете в нужном вам направлении, прочитайте ссылки ниже и загрузите файлы примеров внизу URL.

http://www.fontstuff.com/access/acctut17a.htm

http://www.fontstuff.com/access/acctut18.htm

...