Синтаксическая ошибка при вставке в оператор
Я получаю синтаксическую ошибку, когда пытаюсь обновить свою таблицу. Я новичок в доступе и, похоже, не могу найти проблему с большим количеством исследований и чтения книг. Доступ к 2016 году и Visual studio 2015 с использованием visual basic.
Что я уже пробовал:
Access.ExecQuery("INSERT INTO Log (LDate, LTime, HCall, " & "State, County, Band, Freq, Mode, MCall, HRST, MRST, " & "HOper, MOper, RunStart, RunEnd, NetDuration, HomeCounty, CountyLine) " & "VALUES(@LDate,@LTime,@HCall,@State,@County,@Band,@Freq,@Mode,@MCall,@HRST,@MRST,@Hoper,@Moper,@RunStart,@RunEnd,@NetDuration,@HomeCounty,@CountyLine);")
это код, который у меня есть, который берет параметр и помещает его в столбец. Пожалуйста помочь.
CHill60
В чем именно заключается ошибка?
Richard Deeming
Каково полное сообщение об ошибке?
medic63
синтаксическая ошибка в операторе INSERT INTO
это si все сообщение об ошибке
[no name]
Я не получаю никаких синтаксических ошибок, но я использовал Access 2013.
Michael_Davies
Имеет Доступ.ExecQuery действительно выполняет запрос? Если это так, то обычно вы строите строку параметров SQL с @<name> заполнителями для значений параметров, а затем используете метод добавления параметров для отправки значений с использованием @ <names & gt; и только после этого выполняете запрос.
Не видел этого метода, обычно использую ADO для доступа к доступу.
medic63
Вот весь код подпрограммы
Private Sub AddLogEntry()
Dim DBDA как новый OleDbDataAdapter
Dim DBTA как новый DataTable
Dim DBCon Как Новое OleDbConnection
Дим Памяти Как Новый Объект Oledbcommand
Dim bsource как новый BindingSource
'ДОБАВИТЬ ПАРАМЕТРЫ
Доступ.Addparam ("@LDate", lblDate. Text)
Доступ.Addparam ("@LTime", lblClock. Text)
Доступ.Addparam ("@HCall", txtCall. Text)
Доступ.Addparam ("@State", cbxState. Text)
Доступ.Addparam ("@County", cbxCounty.Текст)
Доступ.Addparam ("@Band", cbxBand. Text)
Доступ.Addparam ("@Freq", cbxFreq. Text)
Доступ.Addparam ("@Mode", cbxMode. Text)
Доступ.Addparam ("@Mcall", lblMCall. Text)
Доступ.Addparam("@научно-технических кадров", cbxHRst.Текст)
Доступ.Addparam ("@MRST", cbxMRst. Text)
Доступ.Addparam ("@Hoper", cbxHOper. Text)
Доступ.Addparam ("@Moper", cbxMOper. Text)
Доступ.Addparam ("@RunStart", txtRStart. Text)
Доступ.Addparam ("@RunEnd", txtREnd. Text)
Доступ.Addparam ("@NetDuration", lblNetDur. Text)
Доступ.Addparam ("@HomeCounty", lblHomeCounty.Текст)
Доступ.Addparam ("@CountyLine", cbxCountyL. Text)
'ВЫПОЛНИТЬ КОМАНДУ ВСТАВКИ
Доступ.ExecQuery ("INSERT INTO Log (LDate, LTime, HCall," &
"Штат, округ, группа, частота, режим, MCall, HRST, MRST", &
"HOper, MOper, RunStart, RunEnd, NetDuration, HomeCounty, CountyLine)" &
"VALUES(@LDate,@LTime,@HCall,@State,@County,@Band,@Freq,@Mode,@MCall,@HRST,@MRST,@Hoper,@Moper,@RunStart,@RunEnd,@NetDuration,@HomeCounty,@CountyLine);")
- Докладывать об ошибках и прерывать их
Если Не Струна.IsNullOrEmpty(Access. exception) Затем
"СООБЩЕНИЕ ОБ УСПЕХЕ
MsgBox ("строка была успешно добавлена.")
Меня.RefreshGrid()
Конец, Если
Конец Подводной Лодки
Michael_Davies
Addparam обычно приходят после того, как команде был дан SQL, вы добавляете параметры, а затем даете текст SQL с держателями параметров в нем.
Где определяется доступ и есть ли у него метод commandtext?
medic63
Майкл,
Спасибо за вопросы и предложения. Все это очень сложно понять, когда я изучаю программирование. Я смотрю много видео на U-Tube и заглядывал в книги, пытаясь понять это. Простые программы, которые я написал, похоже, работают нормально, но работа с базой данных - это совсем другое дело. У меня есть поля со списком в этой программе, и я заполняю их из таблицы, которая работает. Я могу подключиться к базе данных и просмотреть ее содержимое в работающем представлении таблицы данных. Я не понимаю нюансов, необходимых для обновления таблицы. Если вы знаете, где можно посмотреть эту информацию, я был бы признателен. Я изучал программирование самостоятельно и на U-Tube, кажется, учусь быстрее, наблюдая, а затем делая. Самая большая проблема заключается в том, что использование другой версии программ вызывает проблемы, поскольку их работа, а моя - нет.
Еще раз спасибо за ваши попытки помочь.
Я не понимаю вашего последнего вопроса.