Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Не могу внести данные в таблицу.


Автор: korob2001 28.5.2005, 04:40
Привет!!!
Вобщем есть такая таблица:
http://denstelen.hop.ru/friends/5.gif
Мне нужно её заполнить, пишу такой запрос:
Код

    Dim sSQL As String
    Dim bolPayd As Boolean
    Dim bolTranss As Boolean

    sSQL = "INSERT INTO Besteling (MenuId, TableNum, JoinTime, Payd, ColThis, TranssControl)"
    sSQL = sSQL & " VALUES (" & idMenu & ", " & tabNum & ", '" & Now() & "', " & bolPayd & ", " & colPorciy & ", " & bolTranss & ")"
    
    Set rs = cn.Execute(sSQL)
    rs.Close

Получаю ошибку "Слишком мало параметров. Требуется 1."
В чём проблема???

Автор: Gannibal 28.5.2005, 13:10
Привет, попробуй указать другого провайдера если у тебя ODBC поменяй на Jet а в атрибутах Jet`а укажи dBase IV. (в раширеных атрибутах)

Автор: korob2001 28.5.2005, 13:42
Помоему у меня проблема с запросом, так как я таким образом прекрасно могу выбрать данные из базы. Просто я ещё практически не работас Microsoft Access. Или с запросом всё в порядке???

Зы: к БД подключаюсь так:
Код

strConnect = "Driver=Microsoft Access Driver (*.mdb);DBQ=" & App.Path & "\base\restorant.mdb"
Set cn = New ADODB.Connection
cn.Open strConnect

Через Microsoft ActiveX Data Object

Автор: Gannibal 28.5.2005, 13:54
Dim rs As New Recordset

если одна переменная
rs.Open "Имя запроса " + Переменная параметра, Коннекшен и т.д.

если несколько переменных
rs.Open "Имя запроса [Параметр1] = " + Переменная параметра1 + ", [Параметр2] = " + Переменная параметра2 ... , Коннекшен и т.д.

здесь может быть проблема в том что тебе надо указать параметры в квадратные скобки попробуй

Автор: korob2001 28.5.2005, 14:13
Сейчас поробую, но я почему-то думал, что квадратные скобки нужны тогда, когда название полей состоит из нескольких слов. У меня же названия полей состоят из одного слова.
Мне кажется, что я не правильно пытаюсь установить поля флажков. Вот напимер в моём случае, переменные:
Код

bolPayd = False
bolTranss = False

Т.е. мне нужно изначально установить эти флажки как выключены. Может для этого нужно передавать в запросе что-то другое, а не False, например: 0????

Автор: Gannibal 28.5.2005, 14:18
попробуй открыт Аццесс и там создай запрос и скопируй в ВБ себе smile должн в принципе без проблем работать

Автор: Gannibal 28.5.2005, 15:22
Цитата(korob2001 @ 28.5.2005, 13:13)
Т.е. мне нужно изначально установить эти флажки как выключены. Может для этого нужно передавать в запросе что-то другое, а не False, например: 0????


да кстати попробуй ноль и один употребить

Автор: Naghual 28.5.2005, 15:30
На мой взгляд, булевы переменные тоже нужно брать в кавычки:
Код
sSQL = sSQL & " VALUES (" & idMenu & ", " & tabNum & ", '" & Now() & "', '" & bolPayd & "', " & colPorciy & ", '" & bolTranss & "')"

Автор: Gannibal 28.5.2005, 15:32
Цитата(Naghual @ 28.5.2005, 14:30)
На мой взгляд, булевы переменные тоже нужно брать в кавычки:

всёравно туже самую ошибку кидает..

а вообще может проблема в передаче параметров для

bolPayd = False
bolTranss = False

как нековыряю... надо попробыват.

Автор: Naghual 28.5.2005, 15:34
Так...
пардон, не то я чт-то написал

Автор: korob2001 28.5.2005, 16:15
Naghual - так получаю ошибку: несоответствие типов данных. smile

Автор: korob2001 28.5.2005, 21:08
Всё, разобрался. Проблема действительно была в том, что я пытался передать False в качестве ложного значения. С нулями и единицами вроде всё заработало. Правда там нашлись ошибки и в последующих запросах smile . Например: SELECT last_insert_id()

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)