В access-vba, что вызывает ошибку времени выполнения 2046 (команда или действие «RunSQL» сейчас недоступно)

В моем модуле VBA есть странность. Иногда я получаю сообщение об ошибке 2046 во время выполнения: команда или действие «Выполнить SQL» сейчас недоступны. Когда я пытаюсь сделать это позже, без изменения какого-либо кода, он больше не выдает ошибку, а через некоторое время снова.

Кто-нибудь знает, что вызывает эту ошибку времени выполнения? И как мне этого избежать?

Я думаю, проблема как-то связана с doCmd
Строка, показывающая ошибку, выглядит следующим образом:

DoCmd.RunSQL "CREATE TABLE " & tableName & " (" & tableDefinition & ")"

Таблицы с таким названием нет.


person neXus    schedule 29.09.2010    source источник


Ответы (1)


Во-первых, создание таблицы в доступе не с помощью «создать таблицу». это пример создания новой таблицы с доступом vb:

DoCmd.RunSQL ("SELECT '" & Value & "' as [nameOfField] &'"INTO"' & tableName ) 
person Xarxas    schedule 29.09.2010
comment
Это кажется нелогичным. Как вы указываете типы данных? - person neXus; 30.09.2010
comment
Я мог видеть преимущество этого метода, который позволяет сразу заполнить таблицу данными, тем самым указав тип данных. Однако в моем случае получение всех данных сразу потребовало бы огромного запроса, поскольку данные разбросаны по множеству разных таблиц и множеству разных записей в одной таблице. - person neXus; 30.09.2010
comment
извините за поздний ответ, давно отсутствовал. для вашей ситуации лучше создать пару запросов. - person Xarxas; 30.12.2010