У меня есть форма (Заказов) и второстепенная форма в нем (Purchase Order Details). Главная форма содержит Количество в (текстовое поле) PO, Поставщик (комбо-бокс), Сотрудник (комбо-бокс), Статус (комбо-бокс), который содержит 2 записи (New и Done) и дата коробка (когда создано ПО). Под форму (техническое описание) содержится Продукт (combo-box), Количество и a Цена Поле.MS Access VBA Запись в таблицу из формы
Что я хочу сделать, это добавить кнопку на основной форме, которая будет делать дальше.
Когда кнопка нажата, код VBA должен быть выполнен и делать следующее. Примите данные из Основной формы (номер заказа, статуса и даты) и под форму (продукт, количество и цена) и поместите все это в таблицу (StockMovements).
мне удалось сделать это с помощью следующего кода:
Private Sub cmdOrder_Click()
Dim strSQL As String
strSQL = "INSERT INTO StockMovement (ID_Product, Status, Quantity, ID_PurchaseOrder) VALUES (" & _
Me.frmPurchaseOrderDetails_Subform.Form!comboboxProduct & ", '" & _
Me!txtStatus & "', " & _
Me.frmPurchaseOrderDetails_Subform.Form!txtQuantity & ", " & _
Me!txtID_PurchaseOrder & ");"
DoCmd.RunSQL strSQL
Me.Requery
End Sub
Однако, есть 2 проблемы:
- Как вы можете видеть, я не добавить поле даты, потому что я получаю ошибка, не могу вспомнить, какой из них был точно, но я думаю, 2075;
- Код работает без даты, но только добавляет один Продукт в таблицу , первую. И в Заказе на покупку обычно больше , чем один продукт.
Потому что я совершенно новый в VBA, прошу вас обращаться со мной как с новичком и объяснить более подробно, если это возможно. (Исправлен код, забыл изменить язык. Я имею в виду, что я вставил неправильный, теперь его правый, но все еще не работает):
Спасибо!
Теперь я нахожусь на своем телефоне и нуждаюсь в сном, поэтому проверим код, когда проснусь. Как их точно связывать? Форма и подформация создаются из существующих таблиц и запросов, разве это не ссылка? Или я могу связать их дальше с третьей таблицей? Спасибо за ответ! –
'код Private Sub cmdOrder_Click() Dim strSQL As String strSQL = "" для каждого элемента в группе strSQL = strSQL и "INSERT INTO StockMovement (ID_Product, состояние, количество, ID_PurchaseOrder) VALUES (" & Me.frmPurchaseOrderDetails_Subform .FORM! comboboxProduct &»," & Me! txtStatus & ", "& Me.PurchaseOrderDetails_Subform.Form! txtQuantity &", "& Me! txtID_PurchaseOrder & ");" Следующая DoCmd.RunSQL strSQL Me.Requery End Sub code' Я получаю ошибку времени выполнения «13», несоответствие типа. Когда я иду на отладку, ma kes «Для каждого элемента в группе» желтый. –