powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Трабла с запросом на вставку в VBA
23 сообщений из 23, страница 1 из 1
Трабла с запросом на вставку в VBA
    #32235704
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос в SQL выглядит так:
Код: plaintext
1.
2.
3.
INSERT INTO Th_ForOrder ( Tex_Id, Delivery, Thread_Id, ThColor, ThQuanty )
SELECT TFOS.Tex_ID, TFOS.Delivery, TFOS.Thread_Id, TFOS.ThColor, TFOS.ThQuanty
FROM TFOS
WHERE (((TFOS.TFO_Key_pr) Is Null));

он проходит

в VBA код такой:
Код: plaintext
1.
2.
3.
CurrentDb.Execute  "INSERT INTO Th_ForOrder ( Tex_Id, Delivery, Thread_Id, ThColor, ThQuanty ) "  _
    &  "SELECT TFOS.Tex_ID, TFOS.Delivery, TFOS.Thread_Id, TFOS.ThColor, TFOS.ThQuanty "  _
    &  "FROM TFOS "  _
    &  "WHERE (((TFOS.TFO_Key_pr) Is Null));" 

уже не проходит -
Код: plaintext
too few parametrs


чой то я не хренаськи не понимаськи

ThColor - Text(4)
ThQuanty - Double
остальные целые числа...

чой то я не врубаюсь
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236195
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот это проходит:
Код: plaintext
1.
2.
3.
DoCmd.RunSQL  "INSERT INTO Th_ForOrder ( Tex_Id, Delivery, Thread_Id, ThColor, ThQuanty ) "  _
    &  "SELECT TFOS.Tex_ID, TFOS.Delivery, TFOS.Thread_Id, TFOS.ThColor, TFOS.ThQuanty "  _
    &  "FROM TFOS "  _
    &  "WHERE (((TFOS.TFO_Key_pr) Is Null));" 


а это нет:
Код: plaintext
CurrentDb.Execute  "TFOInsAll" 
TFOInsAll - название выше приведённого запроса

ни хера не понимаю
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236282
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полный текст ошибки:

Run-time error '3061'.

Too few parametrs. Expected 1.



Народ ну поможите/объясните глупому не хочу я DoCmd юзать...
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236297
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Типа у меня такая проблема возникала... И не один раз... Но я всегда это дело как-то исправлял, а как не помню

ЗЫ т.к. собака рылась где-то здесь WHERE (((TFOS.TFO_Key_pr) Is Null)), то попробуй другие варианты представления функции WHERE. Например, "=NULL", "IsNull" или хрен знает что еще... :)
А может и вообще я не прав...
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236317
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sfagnum

Коль от тебя хотят параметр, надо выяснить чего конкретно.
Создай QueryDef, и посмотри что там Акес за параметр считает.
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236319
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Senin Viktor
За параметр Аксесс считает TFOS.TFO_Key_pr
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236325
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vsevolod V писал:2Senin Viktor
За параметр Аксесс считает TFOS.TFO_Key_pr
по ходу это не так убрал - WHERE (((TFOS.TFO_Key_pr) Is Null)) - трабла осталась
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236328
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сия ошибка возникает, когда не совпадает количество полей для вставки.
Проверил, у меня проходят все варианты. Что-то твой Ассess выеживается при сборке строки.
Попробуй так.
Код: plaintext
1.
2.
3.
4.
5.
strSQL=  "INSERT INTO Th_ForOrder ( Tex_Id, Delivery, Thread_Id, ThColor, ThQuanty ) "  _
    &  "SELECT TFOS.Tex_ID, TFOS.Delivery, TFOS.Thread_Id, TFOS.ThColor, TFOS.ThQuanty "  _
    &  "FROM TFOS "  _
    &  "WHERE (((TFOS.TFO_Key_pr) Is Null));" 

CurrentDb.Execute  strSQL


как-то помнится один раз я на такое нарывался и так обошел
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236338
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Сия ошибка возникает, когда не совпадает количество полей для вставки

По-моему, если не совпадает кол-во полей для вставки, то в ошибке так и пишется...
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236354
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alexander G
Не помогло

2 Vsevolod V
Аха и запрос тогда ни каким способом не проходит

2 Senin Viktor
это currentdb.CreateQueryDef что ль?
получился исходный рабочий(!!!) запрос.
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236360
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sfagnum
По-моему ты паришься
Чем тебе docmd не угодил???
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236366
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не ндоавиться он мине... и всё

Да и впринципе хочеться понять чо это за хренотень, не хотелось бы всё сводить на танцы с бубнами...
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236373
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sfagnum
>это currentdb.CreateQueryDef что ль?
получился исходный рабочий(!!!) запрос.

Не-а. QueryDef - это QueryDef. см. у него семейство Parametеrs

Работсопособность не проверял - у меня adp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
   Dim q                          As DAO.QueryDef
    Dim p                          As DAO.Parameter
    Set q = CurrentDb.QueryDefs( "ИмяЗапроса" )
    For Each p In q.Parameters
        Debug.Print p.name, p.Type
    Next p
    Set p = Nothing
    q.Close: Set q = Nothing
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236392
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Показал он мне
Код: plaintext
[Forms]![Th_SelectDel]![lblDelivery].[Caption],  10 

у меня в запросе TFOS стоит условие
Код: plaintext
WHERE (((ColorsTex.Delivery)=[Forms]![Th_SelectDel]![lblDelivery].[Caption]))
и этот же ColorsTex.Delivery показывалось в TFOS.Delivery поменял, стал ставить Delivery из др. таблицы(ессно связаной) и усё как по маслу :)

может кто и теоритическую базу под это подложит
буду благодарен
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236394
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поспешил - не прошло с моими изменениями
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236402
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sfagnum

>ну и где в товем примере кода видно "условие WHERE (((ColorsTex.Delivery)=[Forms]![Th_SelectDel]![lblDelivery].[Caption]"?

Обманул!

RunSQL хавает знаечние из форм, Execute - нет.
У тебя 2 выхода = использовать RunSQL либо Execute, но с указанием значения парметра
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    Dim q                          As DAO.QueryDef
    Dim p                          As DAO.Parameter
    Set q = CurrentDb.QueryDefs( "ИмяЗапроса" )
    For Each p In q.Parameters
        p.Value = Eval(p.name)
    Next p
    q.Execute
    
    Set p = Nothing
    q.Close: Set q = Nothing
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236408
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Senin Viktor

И что мне енто дало? всё равно подложить параметр не могу, форма Th_SelectDel - открыта, бери не хочу??????
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236415
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ндаа..... ммммм....... сволочь он, так в запросе вроде написано откуда брать....
гад! гад!
Слава БОгу что в другом случАе мне не надо так вставлять, а то бы запросов за 5 искалбы эту заковырку......

твою мать!
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236436
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>сволочь он, так в запросе вроде написано откуда брать....
гад! гад!


Скажи спасибо, что у тебя парметра - это ссылки на форму, иначе пришлось бы в ручную указывать
q.Parameters("NamePatrametr1").Value=Значение
q.Parameters("NamePatrametr2").Value=Значение
q.Parameters("NamePatrametr3").Value=Значение
q.Parameters("NamePatrametr4").Value=Значение
...
q.Parameters("NamePat=rametrN").Value=Значение

А так циклом из одной строки.
А по поводу гад-не-гад и теоретической базы,
читаем MSDN (ms-help://MS.MSDNQTR.2003APR.1033/enu_kbacc2000kb/acc2000kb/209203.htm):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
NOTE: You have to explicitly assign the parameter in DAO; you do not have to 
explicitly assign the parameter with the DoCmd.OpenQuery. The reason for this is 
that DAO uses low-level operations that give you more flexibility (that is, you can 
assign a variable to a parameter rather than a form's reference) but you have to 
do the housekeeping that Access does behind the scenes with DoCmd actions. On 
the other hand, the DoCmd actions operate at a higher level than DAO. When 
executing a DoCmd action, Microsoft Access makes some assumptions about what 
to do with parameters--you don't have any flexibility in making them accept a 
different value. 
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236447
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предложение эти грабли в FAQ положить по поводу DoCmd.RunSQL и CurrentDB.Execute
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236472
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Сейчас добавлю в фак.
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236481
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чувствую в факе скоро весь Гетц и MSDN появиться. Хотя в MSDN уже есть Гетц, то целесообразно выложить только MSDN
...
Рейтинг: 0 / 0
Трабла с запросом на вставку в VBA
    #32236505
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вставил.

Насчет MSDN'а - мы ведь это уже обсуждали, когда начинали говорить про фак. В фак мы включаем только те Q, которые именно в нашем форуме действительно FA.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Трабла с запросом на вставку в VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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