powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Синтаксическая ошибка в INSERT
14 сообщений из 14, страница 1 из 1
Синтаксическая ошибка в INSERT
    #39453103
syntaxerror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу найти синтаксическую ошибку в INSERT (((

В чем дело, что не так?

note был добавлен сегодня

Код: vbnet
1.
2.
3.
4.
5.
6.
          s2 = "INSERT INTO input_device (in_date, id_device, device_name, price, note) " _
                 & "VALUES (#" & Format(Me.in_date, "mm\/dd\/yyyy") & "#, " & Me.id_device _
                 & ", '" & Me.device_name & "', " & str(Me.price) & ", '" & Me.note & "')"


INSERT INTO input_device (in_date, id_device, device_name, price, note) VALUES (#05/15/2017#, 1, 'AQAQ',  12, 'AQAQ')
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453117
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое простое, что могло быть - наличие одинарной кавычки в поле note...
Но вообще могли бы процитировать сообщение об ошибке.
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453127
syntaxerror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
    Me.Dirty = False
    Dim p As Integer
        p = Me.amount
    If Me.id_device.Column(2) = False And p > 1 Then
          Dim k As Integer
          For k = 1 To p - 1
          If k = 1 Then
             Dim s1 As String
                 s1 = "UPDATE input_device SET input_device.amount= 1" _
                    & " WHERE input_device.id_input_device= " & Me.id_input_device & ";"
             CurrentDb.Execute s1, dbFailOnError
          End If
          Dim s2 As String
' Работает
    '      s2 = "INSERT INTO input_device (in_date, id_device, device_name, price) " _
     '            & "VALUES (#" & Format(Me.in_date, "mm\/dd\/yyyy") & "#, " & Me.id_device _
      '           & ", '" & Me.device_name & "', " & str(Me.price) & ")"
       '          Debug.Print s2
    
' Не работает             
          s2 = "INSERT INTO input_device (in_date, id_device, device_name, price, note) " _
                 & "VALUES (#" & Format(Me.in_date, "mm\/dd\/yyyy") & "#, " & Me.id_device _
                 & ", '" & Me.device_name & "', " & str(Me.price) & ", '" & Me.note & "')"
                 Debug.Print s2                 
          CurrentDb.Execute s2, dbFailOnError
          Next
    End If
    Forms![main_device]![input_device].Form.Requery
    DoCmd.Close acForm, "input_device_new"




Me.device_name и Me.note - они оба текстовые поля, убрать одинарную кавычку не убрало проблему. Не понимаю логики, почему без note работает
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453130
syntaxerror,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сообщение

Run-time error ‘3134’
Syntax error in INSERT INTO statement.
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453142
syntaxerror,,

а если в списке полей note заключить в квадратные скобки [note]?
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453149
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Debug.Print НАСТОЯЩЕГО s2, приводящего к показанной ошибке - в студию.
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453153
syntaxerror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь должна быть проблема на самом деле, сейчас исправлю

Код: vbnet
1.
If Me.id_device.Column(2) = False And p > 1 Then
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453160
syntaxerror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь всё в порядке

Код: vbnet
1.
If Me.id_device.Column(2) = False And p > 1 Then




Если k=1, то работает, а если больше, то выкидывает ошибку.

AkinaDebug.Print НАСТОЯЩЕГО s2, приводящего к показанной ошибке - в студию.

Это настоящий s2 (скопированный)
INSERT INTO input_device (in_date, id_device, device_name, price, note) VALUES (#05/15/2017#, 1, 'www', 300, 'asd')
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453167
syntaxerror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
        s2 = "INSERT INTO input_device (in_date, id_device, device_name, price, [note]) " _
                 & "VALUES (#" & Format(Me.in_date, "mm\/dd\/yyyy") & "#, " & Me.id_device _
                 & ", '" & Me.device_name & "', " & str(Me.price) & ", '" & Me.note & "')"




Квадратная скобка мною оказывается не там была поставлена. Сейчас заработал. А почему понадобилась квадратная скобка?

Огромное спасибо за помощь.
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453172
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому,что note - зарезервированное слово.
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453174
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
Private Sub cmb_Click()
CurrentDb.Execute "INSERT INTO tbl ( ctl1, ctl2, ctl3 )" _
& " values ('" & Me.Поле0 & "'," & Me.Поле2 & ",#" & Format(Me.Поле4, "mm\/dd\/yy") & "#)"  'поле0-текст,поле2-число,поле4-дата
End Sub

так все работает
поля в таблице и в форме одного типа
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453182
syntaxerror
Код: vbnet
1.
2.
3.
        s2 = "INSERT INTO input_device (in_date, id_device, device_name, price, [note]) " _
                 & "VALUES (#" & Format(Me.in_date, "mm\/dd\/yyyy") & "#, " & Me.id_device _
                 & ", '" & Me.device_name & "', " & str(Me.price) & ", '" & Me.note & "')"


Квадратная скобка мною оказывается не там была поставлена. Сейчас заработал. А почему понадобилась квадратная скобка? Видимо "note" входит в список зарезервированных слов, как, например, "date" или "group". Если бы вы это ваяли в конструкторе запроса, то он сам подставил бы скобки. Отсюда вывод - не ленитесь указывать скобки во всех именах полей.

По поводу INSERT INTO ... VALUES ... - и я неоднократно и одноклубники много раз советовали не применять эту конструкцию. Очень нежная, куча требований: формат даты и дробных чисел, наличию обрамляющих кавычек внутри строки, Null.
Проще и надежнее - открыть Recordset и добавить запись туда.
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453192
syntaxerror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев ),

Ок, спасибо за советы, постараюсь их учесть.
...
Рейтинг: 0 / 0
Синтаксическая ошибка в INSERT
    #39453206
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nvnote - зарезервированное словоЗабавно... во встроенной справке Офиса об этом ни слова, а вот на office.com в списке оно есть.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Синтаксическая ошибка в INSERT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]