Кодирование кнопки на форме в MS Access - PullRequest
2 голосов
/ 29 мая 2020

Я пытаюсь создать базу данных с помощью MS Access. У меня есть две таблицы - StockFrames и Projects, и у меня есть форма - FrameCheckOut. В форме у меня есть поле FrameID (где мы будем вводить номер идентификатора кадра или сканировать его штрих-код) и поле ProjectName с раскрывающимся списком имен проектов из таблицы Projects. Еще у меня есть кнопка - Назначить рамку. Я хочу, чтобы кнопка обновляла таблицу StockFrames с номером projectID, чтобы я мог знать, используется ли в данный момент (или «извлечен») фрейм для проекта.

Я попытался назначить этот код кнопке On Click:

UPDATE StockFrames 
SET StockFrames.projectID = [SELECT Projects.projectID 
FROM Projects WHERE Projects.projectName LIKE projectName]
WHERE frameID = frameID;

.. но этот код содержит недопустимый синтаксис. Я очень новичок в Access и программировании, и я был бы очень признателен за помощь, если кто-то захочет.

1 Ответ

0 голосов
/ 29 мая 2020

Включить ключевое поле в поле со списком (столбец можно скрыть) RowSource. Значением поля со списком будет ID, но пользователи видят и вводят имя. Свойства поля со списком:
RowSource: SELECT ProjectID, ProjectName FROM Projects ORDER BY ProjectName;
BoundColumn: 1
ColumnCount: 2
ColumnWidths: 0 "; 2"
ControlSource: оставьте поле пустым, если элемент управления используется для ввода критериев поиска, в противном случае поле, которое вы хотите сохранить, в

Если форма привязана к StockFrames, действие UPDATE не требуется. Найдите запись для указанного c FrameID и просто выберите проект из выпадающего списка.

Если вы предпочитаете использовать ОБНОВЛЕНИЕ, сделайте НЕОБЗЯТЫЕ выпадающие списки для фреймов и проектов, разработанных, как описано выше. Пример VBA:

Private Sub AssignFrame_Click()
CurrentDb.Execute "UPDATE StockFrames SET ProjectID = " & Me.cbxProject & _
      " WHERE FrameID = " & Me.cbxFrame
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...