Microsoft Access 2010: использование данных из текстового поля в операторе обновления SQL - PullRequest
1 голос
/ 08 марта 2012

Можно ли вызвать данные, хранящиеся в текстовом поле, в форме внутри оператора SQL?Я поместил следующий оператор в действие RunSQL после действия SaveRecord моей кнопки.

UPDATE (Material 
INNER JOIN [Transaction] ON Material.Material = Transaction.Material)
INNER JOIN Ordered ON Transaction.[No] = Ordered.[No]
WHERE [Forms]![Order Material]![textBox_No] = Transaction.[No]
SET Material.[On Order] = [On Order]+[Amount];

Я пытаюсь получить данные, хранящиеся в текстовом поле ( textBox_No ) на моемформы ( Материал заказа ) и сравните его с результатами, полученными в результате запроса на обновление.Я только хочу, чтобы По заказу обновлялся, если данные в * textBox_No * равны Нет поля Транзакция .

Когда янажмите на мою кнопку, данные, введенные в форму, обновляются должным образом, однако, когда оператор SQL запускается, он вызывает синтаксическую ошибку.

Research

Я пытался найти руководства по синтаксису длязапрос на обновление, однако на веб-сайте Microsoft приведены только примеры для выбранного типа запроса .Я нашел полезное руководство по извлечению данных из текстового поля в форме , однако это руководство для гораздо более старой версии Microsoft Access, чем я использую.В этом руководстве я получил [Forms]![Order Material]![textBox_No], который я пытаюсь использовать для извлечения данных из текстового поля.

1 Ответ

2 голосов
/ 08 марта 2012

Предложение WHERE должно следовать после предложения SET. Кроме того, «Транзакция» является зарезервированным словом , поэтому оно должно быть заключено в квадратные скобки.

UPDATE (Material 
INNER JOIN [Transaction] ON Material.Material = [Transaction].Material)
INNER JOIN Ordered ON [Transaction].[No] = Ordered.[No]
SET Material.[On Order] = [On Order]+[Amount]
WHERE [Forms]![Order Material]![textBox_No] = [Transaction].[No];

Хорошей практикой (и в целом облегчающей жизнь) избегать именования таблиц и полей зарезервированными словами. Обратитесь к ссылке выше для получения полного списка зарезервированных слов.

...