Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065 / 22 сообщений из 22, страница 1 из 1
28.04.2017, 10:00
    #39445891
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub ОбновитьКлассификатор()
Dim s

s = "SELECT first(КодОтдела), first(НаименованиеОтдела), first(КодГруппы), first(НаименованиеГруппы), first(КодПодгруппы), first(НаименованиеПодгруппы) FROM " & _
    "(SELECT КодОтдела, НаименованиеОтдела, КодГруппы, НаименованиеГруппы, КодПодгруппы, НаименованиеПодгруппы " & _
    "FROM Классификатор " & _
    "Union " & _
    "SELECT Classif.Поле1, Classif.Поле2, Classif.Поле3, Classif.Поле4, Classif.Поле5, Classif.Поле6 " & _
    "FROM Classif) WHERE NOT КодПодгруппы IS NULL " & _
    "Group by КодПодгруппы;"

CurrentDb.Execute s
MsgBox ("Импорт успешно завершен")

End Sub
...
Рейтинг: 0 / 0
28.04.2017, 10:01
    #39445892
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Задача просто обновить справочник (внести новые значения в случае их наличия)
...
Рейтинг: 0 / 0
28.04.2017, 10:20
    #39445903
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Код: vbnet
1.
Runtime Error 3065 "Cannot execute a select query"

А Вы не пробовали прочитать сообщение об ошибке? ну и перевести его...
...
Рейтинг: 0 / 0
28.04.2017, 10:21
    #39445904
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Но здесь только выборка.
Где же INTO ?
К тому же SELECT INTO создает новую таблицу, а не добавляет в существующую.
Для добавления нужно использовать INSERT INTO.
...
Рейтинг: 0 / 0
28.04.2017, 10:31
    #39445911
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
__Michelle,

Мысль была просто объединить и уникальные отобрать.
...
Рейтинг: 0 / 0
28.04.2017, 10:44
    #39445919
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Ну нельзя запрос SELECT выполнять через EXECUTE! используйте OpenRecordset.
...
Рейтинг: 0 / 0
28.04.2017, 10:50
    #39445925
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Истина где-то рядом__Michelle,

Мысль была просто объединить и уникальные отобрать.Как-то маловато существительных.)))
Что именно объединить?
Что должно быть уникальным?
...
Рейтинг: 0 / 0
28.04.2017, 11:00
    #39445935
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
__Michelle,

я в SQL совсем недавно, в VBA b Excel все хватало, пока не устроился в другую организацию с большими массивами данных (по несколько млн. строк). Приходится осваивать...

Задача очень простая - по нажатию кнопки должен сработать алгоритм:

1. С выбранным файлом Excel сделать некоторые процедуры - чтобы привести к форме таблицы для распознавания её SQL методами (в т.ч. удаление различных столбцов и строк, проверка на соответствие задачам выбранного файла и т.д.)

2. Данные с экселя перегнать в Access, обновить справочники в случае наличия новых позиций и т.п.
Вот на обновлении я и тормознул.
...
Рейтинг: 0 / 0
28.04.2017, 11:13
    #39445945
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Истина где-то рядом,

Вот про обновление и расскажите, пожалуйста.
Какие таблицы участвуют, как выявляются новые записи, куда они должны отправиться.
Поконкретнее.
...
Рейтинг: 0 / 0
28.04.2017, 11:21
    #39445952
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
__Michelle,

Самый простой пример хочу решить
Таблица классификатора:
-КодОтдела
-НаименованиеОтдела
-Кодгруппы
-НаименованиеГруппы
-КодПодгруппы
-НаименованиеПодгруппы

Одна таблица у меня в БазеДанных - "Класссификатор"
Вторая берется из сводки - "Classif"

Вот из сводки должны лечь в основную таблицу данные где условие
Класссификатор.НаименованиеПодгруппы<>Classif.НаименованиеПодгруппы

Код: sql
1.
2.
3.
INSERT INTO Классификатор (КодОтдела, НаименованиеОтдела, КодГруппы, НаименованиеГруппы, КодПодгруппы, НаименованиеПодгруппы)
SELECT Classif.Поле1, Classif.Поле2, Classif.Поле3, Classif.Поле4, Classif.Поле5, Classif.Поле6  FROM Classif
WHERE Classif.Поле5 NOT IN (SELECT КодПодгруппы FROM Классификатор)



Как этот код приспособить к VBA - вот тут у меня стопор (
...
Рейтинг: 0 / 0
28.04.2017, 11:22
    #39445955
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Код: vbnet
1.
2.
3.
4.
5.
6.
Dim s
Dim rs As Recordset

s = "SELECT Classif.&#207;&#238;&#235;&#229;1, Classif.&#207;&#238;&#235;&#229;2, Classif.&#207;&#238;&#235;&#229;3, Classif.&#207;&#238;&#235;&#229;4, Classif.&#207;&#238;&#235;&#229;5, Classif.&#207;&#238;&#235;&#229;6  FROM Classif " & _
    "WHERE Classif.&#207;&#238;&#235;&#229;5 NOT IN (SELECT &#202;&#238;&#228;&#207;&#238;&#228;&#227;&#240;&#243;&#239;&#239;&#251; FROM &#202;&#235;&#224;&#241;&#241;&#232;&#244;&#232;&#234;&#224;&#242;&#238;&#240;)"
Set rs = CurrentDb.OpenRecordset(s)



Загвоздка осталась в методах данные Recordseta залить в базу
...
Рейтинг: 0 / 0
28.04.2017, 11:28
    #39445968
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Код: vbnet
1.
2.
3.
4.
5.
6.
Dim s
Dim rs As Recordset

s = "SELECT Classif.Поле1, Classif.Поле2, Classif.Поле3, Classif.Поле4, Classif.Поле5, Classif.Поле6  FROM Classif " & _
    "WHERE Classif.Поле5 NOT IN (SELECT КодПодгруппы FROM Классификатор)"
Set rs = CurrentDb.OpenRecordset(s)


исправил
...
Рейтинг: 0 / 0
28.04.2017, 11:30
    #39445971
вопрос___222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
а так работает?

Код: sql
1.
2.
3.
 CurrentDb.Execute "INSERT INTO Классификатор (КодОтдела, НаименованиеОтдела, КодГруппы, НаименованиеГруппы, КодПодгруппы, НаименованиеПодгруппы)
SELECT Classif.Поле1, Classif.Поле2, Classif.Поле3, Classif.Поле4, Classif.Поле5, Classif.Поле6  FROM Classif
WHERE Classif.Поле5 NOT IN (SELECT КодПодгруппы FROM Классификатор)" 
...
Рейтинг: 0 / 0
28.04.2017, 11:33
    #39445975
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Что за магия? ))
РАБОТАЕТ
...
Рейтинг: 0 / 0
28.04.2017, 11:37
    #39445979
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Истина где-то рядомВот из сводки должны лечь в основную таблицу данные где условие
Класссификатор.НаименованиеПодгруппы<>Classif.НаименованиеПодгруппы

Код: sql
1.
2.
3.
INSERT INTO Классификатор (КодОтдела, НаименованиеОтдела, КодГруппы, НаименованиеГруппы, КодПодгруппы, НаименованиеПодгруппы)
SELECT Classif.Поле1, Classif.Поле2, Classif.Поле3, Classif.Поле4, Classif.Поле5, Classif.Поле6  FROM Classif
WHERE Classif.Поле5 NOT IN (SELECT КодПодгруппы FROM Классификатор)



Как этот код приспособить к VBA - вот тут у меня стопор ( Вот как раз такой запрос и выполняется методом CurrentDb.Execute
...
Рейтинг: 0 / 0
28.04.2017, 11:39
    #39445982
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Истина где-то рядом
Код: sql
1.
2.
3.
INSERT INTO Классификатор (КодОтдела, НаименованиеОтдела, КодГруппы, НаименованиеГруппы, КодПодгруппы, НаименованиеПодгруппы)
SELECT Classif.Поле1, Classif.Поле2, Classif.Поле3, Classif.Поле4, Classif.Поле5, Classif.Поле6  FROM Classif
WHERE Classif.Поле5 NOT IN (SELECT КодПодгруппы FROM Классификатор)



Как этот код приспособить к VBA - вот тут у меня стопор (Да так и делать, как в стартовом посте Вы же сами и показали.
Только там запрос был другой, неподходящий для этой цели.
Код: vbnet
1.
2.
3.
4.
5.
6.
Dim S as String
S = "INSERT INTO Классификатор " & _
    "(КодОтдела, НаименованиеОтдела, КодГруппы, НаименованиеГруппы, КодПодгруппы, НаименованиеПодгруппы) " & _
    "SELECT Поле1, Поле2, Поле3, Поле4, Поле5, Поле6  FROM Classif " & _
    "WHERE Classif.Поле5 NOT IN (SELECT КодПодгруппы FROM Классификатор)"
CurrentDb.Execute S

И еще.
WHERE Classif.Поле5 NOT IN будет работать медленно,
лучше искать новые значения через LEFT JOIN.
...
Рейтинг: 0 / 0
28.04.2017, 11:40
    #39445983
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Анатолий ( Киев ),

Т.е. CurrentDb.Execute не может работать с Select - чтобы его заставить нужно что-нибудь добавить в таблицу))

я почти усвоил
...
Рейтинг: 0 / 0
28.04.2017, 11:43
    #39445987
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Истина где-то рядом...чтобы его заставить...Все бы вам заставлять...
Инструментарий нужно освоить, и все само получится.
...
Рейтинг: 0 / 0
28.04.2017, 11:49
    #39445994
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
__Michelle,

Дети не дают в полном объеме изучить, а кормить их надо.

Спасибо
...
Рейтинг: 0 / 0
28.04.2017, 23:27
    #39446414
вопрос___222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Истина где-то рядом,

книжки читайте
...
Рейтинг: 0 / 0
29.04.2017, 19:17
    #39446600
Истина где-то рядом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
вопрос___222,

книжки читаю, но нет такой книжки, чтобы были описаны все тонкости. Практика приносит больше знаний. Это как пример из жизни: английский в школе учил 7 лет, в институте 5 лет (вплоть до уровня бизнес-инглиш). Но по прошествию многих лет - английским свободно не владею. А есть одноклассники, которые в школьные годы ездили в британию - приехали и как носители языка саксов.
...
Рейтинг: 0 / 0
29.04.2017, 23:21
    #39446657
вопрос___222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065
Истина где-то рядом,

да судя по вопросам пока это не тонкости - это основы
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подскажите, где ошибка? Этот запрос в приложении Access выполняется, но в VBA ошибка 3065 / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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