powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Команда RunSQL. Где ошибка?
39 сообщений из 39, показаны все 2 страниц
Команда RunSQL. Где ошибка?
    #34687074
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В коде VBA пишу команду:
DoCmd.RunSQL ("SELECT * FROM [Спецификации] " & sqL & ";")

предварительно строковой переменной sqL задается значение:
sqL = "WHERE Диаметр = diam AND Тип Is Not Null AND Толщина Is Not Null"

Ошибка: "Для команды ЗапускЗапросаSQL требуется аргумент, состоящий из инструкции SQL".

Где я накосячил?)
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687106
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что такое diam ? Судя по sql это поле в таблице в [Спецификации], но в той же таблице есть еще и поле Диаметр... странно это как то.
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687748
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После Where должно идти имя таблиццы!
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687749
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, перепутал Все ))))
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687750
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И точка с запятой лишняя.
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687752
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй вместо is not поставить <>
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687762
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пробуй.
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687799
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyНе пробуй.
))
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687818
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
короче, парни, не до смеха мне)

команда такая:
DoCmd.RunSQL ("SELECT * FROM [Спецификации] WHERE Диаметр = diam AND Тип Is Not Null AND Толщина Is Not Null")

здесь:
спецификации - это таблица
диаметр, тип и толщина - это поля в ней
diam - переменная с заданным значением (скажем 100)

Нужно:
WHERE [Спецификации].[Диаметр] = diam и т.д.??? Синтаксис какой?
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687828
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digitкороче, парни, не до смеха мне)

команда такая:
DoCmd.RunSQL ("SELECT * FROM [Спецификации] WHERE Диаметр = diam AND Тип Is Not Null AND Толщина Is Not Null")

здесь:
спецификации - это таблица
диаметр, тип и толщина - это поля в ней
diam - переменная с заданным значением (скажем 100)

Нужно:
WHERE [Спецификации].[Диаметр] = diam и т.д.??? Синтаксис какой?

Dim diam as Long
diam =100
"WHERE Диаметр =" & diam & " AND Тип Is Not Null AND Толщина Is Not Null"
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687893
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKO
Изменения внес. Если заменить переменные их значениями, то выходит так:

DoCmd.RunSQL ("SELECT * FROM [Спецификации на товары] WHERE Диаметр = 100 AND Тип Is Not Null AND Толщина Is Not Nul;")

ошибка та же..
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687907
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digit TIKO
Изменения внес. Если заменить переменные их значениями, то выходит так:

DoCmd.RunSQL ("SELECT * FROM [Спецификации на товары] WHERE Диаметр = 100 AND Тип Is Not Null AND Толщина Is Not Nul;")

ошибка та же..

Толщина Is Not Null;") еще одно l добавь
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687924
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKO
Толщина Is Not Null;") еще одно l добавь

Да не, эт я здесь опечаталсо, в коде все норм)
Ошибка такая: "Для команды ЗапускЗапросаSQL требуется аргумент, состоящий из инструкции SQL". Выходит то, что у меня идет после DoCmd.RunSQL написано неверно, походу синтаксис другой..
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687934
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digit TIKO
Толщина Is Not Null;") еще одно l добавь

Да не, эт я здесь опечаталсо, в коде все норм)
Ошибка такая: "Для команды ЗапускЗапросаSQL требуется аргумент, состоящий из инструкции SQL". Выходит то, что у меня идет после DoCmd.RunSQL написано неверно, походу синтаксис другой..
не знаю поможет или нет но можно так попробовать поставить NOT

Диаметр = diam AND NOT Тип Is Null AND NOT Толщина Is Null
и еще какой типа данных у столбцов
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687937
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убери точку с запятой.
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687960
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вощем, провел эксперимент

простейшее выражение
DoCmd.RunSQL ("SELECT * FROM [Спецификации на товары] WHERE Диаметр = 100")

выдает ошибку (какую - см. выше).
Прошу заметить, ни точки с запятой, ни вариаций на тему Null/Not Null тут нету.
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687980
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тогда еще такой вариант
SELECT * FROM `Спецификации на товары` WHERE Диаметр = 100
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34687992
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKOтогда еще такой вариант
SELECT * FROM `Спецификации на товары` WHERE Диаметр = 100

выдает: "синтаксическая ошибка в запросе" =(
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688030
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тип какой у колонки Диаметр ?
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688044
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
просто запусти без условия что б проверить где ошибка в названии таблицы или в условии
DoCmd.RunSQL ("SELECT * FROM [Спецификации на товары] ")
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688056
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKOтип какой у колонки Диаметр ?
числовой, целое
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688057
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKOпросто запусти без условия что б проверить где ошибка в названии таблицы или в условии
DoCmd.RunSQL ("SELECT * FROM [Спецификации на товары] ")

та же ошибка..
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688073
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digit TIKOпросто запусти без условия что б проверить где ошибка в названии таблицы или в условии
DoCmd.RunSQL ("SELECT * FROM [Спецификации на товары] ")

та же ошибка..
сделай запрос в режиме скуля по этой таблице и посмотри как скул вводит название этой таблицы в тексте запроса
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688118
dmitry_do
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digitВ коде VBA пишу команду:
DoCmd.RunSQL ("SELECT * FROM [Спецификации] " & sqL & ";")

предварительно строковой переменной sqL задается значение:
sqL = "WHERE Диаметр = diam AND Тип Is Not Null AND Толщина Is Not Null"

Ошибка: "Для команды ЗапускЗапросаSQL требуется аргумент, состоящий из инструкции SQL".

Где я накосячил?)

Для начала строку покажи, которую ты используешь как аргумент для команды runsql. Т.е. такую, какая у тебя сформировалась после всех подстановок. А вообще, по моему она не должна быть в скобках, я по крайней мере их никогда не использую.
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688119
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKOсделай запрос в режиме скуля по этой таблице и посмотри как скул вводит название этой таблицы в тексте запроса

мастер запросов делает такой запрос:

SELECT *
FROM [Спецификации на товары]
WHERE [Спецификации на товары].Диаметр = 76;

пашет идеально)
сую то же самое в VBA - не пашет.. может низя в одну строчку, нужно абзацы указать?
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688141
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmitry_do
Для начала строку покажи, которую ты используешь как аргумент для команды runsql. Т.е. такую, какая у тебя сформировалась после всех подстановок. А вообще, по моему она не должна быть в скобках, я по крайней мере их никогда не использую.

аргумент для команды runsql:
"SELECT * FROM [Спецификации на товары] WHERE Диаметр = 100 AND Тип Is Not Null AND Толщина Is Not Nul;"

зы: без скобок то же самое
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688165
dmitry_do
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digit TIKOсделай запрос в режиме скуля по этой таблице и посмотри как скул вводит название этой таблицы в тексте запроса

мастер запросов делает такой запрос:

SELECT *
FROM [Спецификации на товары]
WHERE [Спецификации на товары].Диаметр = 76;

пашет идеально)
сую то же самое в VBA - не пашет.. может низя в одну строчку, нужно абзацы указать?

Еше проверь, что бы у тебя перед ключевыми словами были пробелы, что бы ключевые слова не сливались с другими словами в инструкции запроса: что бы у тебя не получилось, например, так:

SELECT *FROM [Спецификации на товары]WHERE [Спецификации на товары].Диаметр = 76;

между * и FROM должен быть пробел и между ] и WHERE должен быть пробел. Я поначалу на это нарывался.
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688188
dmitry_do
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digit dmitry_do
Для начала строку покажи, которую ты используешь как аргумент для команды runsql. Т.е. такую, какая у тебя сформировалась после всех подстановок. А вообще, по моему она не должна быть в скобках, я по крайней мере их никогда не использую.

аргумент для команды runsql:
"SELECT * FROM [Спецификации на товары] WHERE Диаметр = 100 AND Тип Is Not Null AND Толщина Is Not Nul;"

зы: без скобок то же самое

У тебя последнее слово - Nul - с одной l, а должно быть Null - с двумя l. Проверь!
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688193
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все пробелы стоят)
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688197
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmitry_doУ тебя последнее слово - Nul - с одной l, а должно быть Null - с двумя l. Проверь!

там две L, я тут опечатался.
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688217
dmitry_do
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digit dmitry_doУ тебя последнее слово - Nul - с одной l, а должно быть Null - с двумя l. Проверь!

там две L, я тут опечатался.

А тип поля ДИАМЕТР у тебя какой? Не строковый случайно?
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688228
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmitry_doА тип поля ДИАМЕТР у тебя какой? Не строковый случайно?

числовой, целое. мы тут эти вопросы уже проходили. Я уже почти уверен на 100% что дело в синтаксисе.. Неужели никто никогда не запускал запрос из vba кода?)
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688283
dmitry_do
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digit dmitry_doА тип поля ДИАМЕТР у тебя какой? Не строковый случайно?

числовой, целое. мы тут эти вопросы уже проходили. Я уже почти уверен на 100% что дело в синтаксисе.. Неужели никто никогда не запускал запрос из vba кода?)

Cейчас смоделировал у себя твою ситуацию, та же ошибка. Я думаю, что для docmd.runsql недопустимо использоваь sql-команду select. А вообще, что ты собираешся делать после того, эта команда у тебя отработала бы? Как ты собирался использоват результат select-a?
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688323
dmitry_do
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digit Неужели никто никогда не запускал запрос из vba кода?)

Я запускаю постоянно, но использую только инструкции delete, insert и update. Select не использовал никогда.
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688325
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmitry_doCейчас смоделировал у себя твою ситуацию, та же ошибка. Я думаю, что для docmd.runsql недопустимо использоваь sql-команду select. А вообще, что ты собираешся делать после того, эта команда у тебя отработала бы? Как ты собирался использоват результат select-a?

хм... мне надо выцепить из таблички все записи, удовлетворяющие заданным условиям отбора, вывести эти данные пользователю в виде формы, чтобы он мог выбрать из отобранных записей одну и легким нажатием кнопочки отправить содержимое одного из полей этой записи в другую форму.
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688335
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на сколько я понял из этого хелпа по access

SQLStatement Required Variant. A string expression that's a valid SQL statement for an action query or a data-definition query. It uses an INSERT INTO, DELETE, SELECT...INTO, UPDATE, CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, or DROP INDEX statement. Include an IN clause if you want to access another database.

в этой команде селект ни как не катит
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688382
dmitry_do
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
digit

хм... мне надо выцепить из таблички все записи, удовлетворяющие заданным условиям отбора, вывести эти данные пользователю в виде формы, чтобы он мог выбрать из отобранных записей одну и легким нажатием кнопочки отправить содержимое одного из полей этой записи в другую форму.

Так проще надо быть! Создаешь свою форму, источником данных для нее определяешь твою эту самую sql-инструкцию, и вперед! И никакой runsql тебе не нужен! А что бы тебе источником данных для формы определить эту твою sql-инструкцию, в событие open формы прописываеш такой код:

me.RecordSource = "select твоя sql-инструкция;"
...
Рейтинг: 0 / 0
Команда RunSQL. Где ошибка?
    #34688460
digit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmitry_do
Так проще надо быть! Создаешь свою форму, источником данных для нее определяешь твою эту самую sql-инструкцию, и вперед! И никакой runsql тебе не нужен! А что бы тебе источником данных для формы определить эту твою sql-инструкцию, в событие open формы прописываеш такой код:

me.RecordSource = "select твоя sql-инструкция;"
Огромное спасибо!) Все сделал, как все оказалось просто.. по ходу моим мозгам нужен отдых ;)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Команда RunSQL. Где ошибка?
    #35684328
staska74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmitry_do, ещё одно спасибо в Вашу копилку.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Команда RunSQL. Где ошибка?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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