powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ADODB и временная таблица
14 сообщений из 14, страница 1 из 1
ADODB и временная таблица
    #37326262
Sasha2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Можно ли сделать такой запрос?

Dim Sql As String
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset

Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset

Sql = " select [code], sum([Day])+sum([Night])+sum([Holidays]) as Summ, [NameFile], [IDTabel] into [#temp] " _
+ " from [tabel_temp$] where year([Date]) <> '1900' group by [code],[NameFile],[IDTabel],month([Date]) " _
+ " " _
+ " select * from [tabel_temp$] " _
+ " where [IDTabel] in ( " _
+ " select [a].[IDTabel] " _
+ " from [#temp] [a] " _
+ " where [a].[Summ] = (select max([b].[Summ]) from [#temp] [b] where [b].[code] = [a].[code] group by [b].[code])) "

Range("A2").Value = Sql

я пытаю создать временную таблицу и сразу ее использовать.
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326343
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sasha2007,

можно, а что не получается (за исключением того, что нет, собственно, вызова запроса)?
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326666
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sasha2007, что то у Вас не хватает...........

Код: plaintext
1.
rst.Open StrSql, cnn, adOpenKeyset, adLockPessimistic
Cells( 1 ,  2 ).CopyFromRecordset rst
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326667
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StrSql замените Sql
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326772
Sasha2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вызов я конечно делаю дальше (просто не вставил код)

Код: plaintext
1.
rst.Open Sql, cnn
Range("A2").CopyFromRecordset rst
1. При варианте с временной таблицей возникает ошибка -

Ошибка синтаксиса в выражении запроса ‘month([Date]) select * from [tabel_temp$] where [IDTabel] in ( select [a].[IDTabel] from [#temp] [a] where [a].[Summ] = (select max([b].[Summ]) from [#temp] [b] where [b].[code] = [a].[code] group by [b].[code]))’

Странно что запрос в сообщении ошибки отображается не весь.
Если выполняю результат переменной Sql на сервере, то все отрабатывает.

2. Попробовал вариант с with as (пытаюсь отойти от временной таблицы)

Dim Sql As String
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset

Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset

Sql = "with temp_table ([code], [Summ], [NameFile], [IDTabel]) " _
+ " as (select [code], sum([Day])+sum([Night])+sum([Holidays]) as Summ, [NameFile], [IDTabel] " _
+ " from [tabel_temp$] where year([Date]) <> '1900' group by [code],[NameFile],[IDTabel],month([Date]) )" _
+ " " _
+ " select * from [tabel_temp$] " _
+ " where [IDTabel] in ( " _
+ " select [a].[IDTabel] " _
+ " from [temp_table] [a] " _
+ " where [a].[Summ] = (select max([b].[Summ]) from [temp_table] [b] where [b].[code] = [a].[code] group by [b].[code])) "

Range("A2").Value = Sql

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ";" & _
"Extended Properties=""Excel 8.0;"""

rst.Open Sql, cnn

Call ClearSheets("tabel")
Sheets.Add
ActiveSheet.Name = "tabel"

Sheets("tabel").Activate
Range("A1").CopyFromRecordset rst

rst.Close
cnn.Close

Set rst = Nothing
Set cnn = Nothing

В данном варианте возникает ошибка -
Ошибочная инструкция SQL; предполагалось DELETE, INSERT, PROCEDURE, SELECT или UPDATE

Если выполняю результат переменной Sql на сервере, то все отрабатывает.
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326808
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sasha2007Если выполняю результат переменной Sql на сервере, то все отрабатывает.стоп, на каком еще сервере?

cnn.Open "Provider= Microsoft.Jet .OLEDB.4.0;" & _
"Data Source=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ";" & _
"Extended Properties="" Excel 8.0 ;"""
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326832
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, синтаксис того, что ты пишешь - TSQL

Для JET такие фокусы не прокатят - это ж совершенно другой движок, синтаксис языков разный, временные таблицы не поддерживаются (вот тут могу соврать, пусть камрады поправят, если чо)
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326846
Sasha2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProSasha2007Если выполняю результат переменной Sql на сервере, то все отрабатывает.стоп, на каком еще сервере?

cnn.Open "Provider= Microsoft.Jet .OLEDB.4.0;" & _
"Data Source=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ";" & _
"Extended Properties="" Excel 8.0 ;"""

Просто пробую выполнить запрос на SQL Server, cоздал табличку с данными (аналог листа с данными)
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326849
Sasha2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProВ общем, синтаксис того, что ты пишешь - TSQL

Для JET такие фокусы не прокатят - это ж совершенно другой движок, синтаксис языков разный, временные таблицы не поддерживаются (вот тут могу соврать, пусть камрады поправят, если чо)

понятно. А где можно почитать при синтаксис?
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326878
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sasha2007понятно. А где можно почитать при синтаксис?ну.... в книжке по аксесс, например
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326880
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ищи файлы, начинающиеся на Jet и с расширением chm , на своем компьютере.
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326887
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или пользуйся этим

.
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37326946
Sasha2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо.
Сделал все без временной таблицы, сделал временный лист )
Для меня тема закрыта.
...
Рейтинг: 0 / 0
ADODB и временная таблица
    #37328217
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорее всего, надо было разделить запросы символом ; (точка с запятой)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ADODB и временная таблица
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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