Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2010, 22:23   #1
Noorty
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 14
По умолчанию Правильность написания команд в VBA

Написал дейстивеи которое должно происходить по нажатию кнопки
access выдает ошибку
Comile error:
Sub or Function not defined
и выделил Update
подскажите как это исправить и на всякий случе посматрите весь текст все ли я правильно написал

после "//" идут мои коментарии в access этого нет

Private Sub Кнопка44_Click()

Dim FIO As String // создание переменной FIO

Dim NOMER As String // создание переменной NOMER

FIO = ФИО_Клиента & "" // Запись в FIO из данных поля со списком

NOMER = Номер_Заказа_на_доставку & "" // Запись в NOMER из данных поля со списком

дальше делал по примеру и несовсем уверен что это правильно

Update Наряд_на_доставку //обнавление таблици Наряд на доставку

Set ФИО_Клиента = FIO // вставить в поле данные из FIO

WHERE Номер_наряда_на_доставку = NOMER // в "строке" где Номер наряда на доставку = NOMER
Номер наряда на доставку - это счетчик я не знаю можноли здесь так сравнивать так как Номер наряда на доставку получается число а NOMER текст

End Sub

для удобства кинул базу
кнопка находица на форме Заказ на доставку

Заранее ОГРОМНОЕ СПАСИБО
Вложения
Тип файла: zip db1.zip (175.8 Кб, 14 просмотров)
Noorty вне форума Ответить с цитированием
Старый 07.06.2010, 22:49   #2
AdrenalinE
Пользователь
 
Аватар для AdrenalinE
 
Регистрация: 29.09.2007
Сообщений: 95
По умолчанию

http://www.programmersforum.ru/showthread.php?p=546983
Эта тема же есть здесь?

Вот как-то так:

Код:
DoCmd.RunSQL "UPDATE Наряд_на_доставку SET ФИО_Клиента = me.FIO WHERE Номер_наряда_на_доставку = me.NOMER;"

Последний раз редактировалось AdrenalinE; 07.06.2010 в 22:52.
AdrenalinE вне форума Ответить с цитированием
Старый 07.06.2010, 23:11   #3
Noorty
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 14
По умолчанию

Пишет ошибка
Run-time error '3144'
Ошибка синтаксиса в инструкции UPDATE
Noorty вне форума Ответить с цитированием
Старый 07.06.2010, 23:41   #4
AdrenalinE
Пользователь
 
Аватар для AdrenalinE
 
Регистрация: 29.09.2007
Сообщений: 95
По умолчанию

Скорее всего связано с русскими названиями. Хинт, как сделать правильную инструкцию. Создать новый запрос в конструкторе, перейти в режим представления SQL и скопировать содержимое.
AdrenalinE вне форума Ответить с цитированием
Старый 07.06.2010, 23:52   #5
Noorty
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 14
По умолчанию

"перейти в режим представления SQL"

это как
и что значит me в me.FIO ?
Noorty вне форума Ответить с цитированием
Старый 08.06.2010, 00:21   #6
AdrenalinE
Пользователь
 
Аватар для AdrenalinE
 
Регистрация: 29.09.2007
Сообщений: 95
По умолчанию

me значит, что объект относится к текущей форме. А перейти в режим представления SQL - выбрать SQL там, где выбор "Конструктор" и т.д.

На рисунке представлен работающий пример подобного запроса. Здесь используется полный путь к объекту через Forms![Имя формы]![Имя объекта]
Изображения
Тип файла: jpg upd.jpg (23.4 Кб, 128 просмотров)
AdrenalinE вне форума Ответить с цитированием
Старый 08.06.2010, 00:30   #7
Noorty
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 14
По умолчанию

ясно почему я не понял как перейти в режим SQL
у меня 2003 офис
Noorty вне форума Ответить с цитированием
Старый 08.06.2010, 00:41   #8
AdrenalinE
Пользователь
 
Аватар для AdrenalinE
 
Регистрация: 29.09.2007
Сообщений: 95
По умолчанию

А теперь понятно? Такой метод формирования SQL конструкций ускоряет процесс при сложных структурах. Ну, и для новичков гораздо удобнее.
AdrenalinE вне форума Ответить с цитированием
Старый 08.06.2010, 00:50   #9
Noorty
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 14
По умолчанию

Гм у меня сейчас смешеные чуства
заработало но криво
FIO = ФИО_Клиента & "" это работает
но (видать позже, в SQL запросе) понажатию Кнопки48 Появляется окно с FIO с полем ввода (если туда что то ввести оно потом подставица в таблицу)
Тоже самое с NOMER
Как от этого избавится?
ниже криво работающий код
Private Sub Кнопка48_Click()

Dim FIO As String
FIO = ФИО_Клиента & ""
Dim NOMER As String
NOMER = Номер_заказа_на_доставку & ""
Dim SQL As String
SQL = "UPDATE Наряд_на_доставку " & _
"SET Наряд_на_доставку.ФИО_Клиента = FIO " & _
"WHERE Наряд_на_доставку.Номер_наряда_на_д оставку = NOMER;"
DoCmd.RunSQL SQL

End Sub
Noorty вне форума Ответить с цитированием
Старый 08.06.2010, 00:59   #10
Noorty
Пользователь
 
Регистрация: 06.06.2010
Сообщений: 14
По умолчанию

И еще вопрос как убрать окно которое появляется после с надпись "типа" после нажатия кнопки Да произайдет Обнавление и вернуть ничего будет нельзя
Noorty вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильность ip OPF_Nik Работа с сетью в Delphi 1 29.01.2010 23:21
реализация команд с помощью набора других команд zhenyaa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 08.11.2009 21:37
Проверьте правильность написания кода в delphi neomaximus Помощь студентам 2 09.04.2009 17:29
Проверьте на правильность!! Dawystrik Общие вопросы Delphi 2 21.03.2009 21:04
Запуск команд командной строки из VBA snake-as Microsoft Office Excel 14 21.10.2008 16:45