|
|
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
Добрый день. Можно ли сделать такой запрос? 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 я пытаю создать временную таблицу и сразу ее использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2011, 17:31 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
Sasha2007, можно, а что не получается (за исключением того, что нет, собственно, вызова запроса)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2011, 18:34 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
Sasha2007, что то у Вас не хватает........... Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2011, 01:56 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
StrSql замените Sql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2011, 01:58 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
Вызов я конечно делаю дальше (просто не вставил код) Код: plaintext 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 на сервере, то все отрабатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2011, 09:33 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
Sasha2007Если выполняю результат переменной Sql на сервере, то все отрабатывает.стоп, на каком еще сервере? cnn.Open "Provider= Microsoft.Jet .OLEDB.4.0;" & _ "Data Source=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ";" & _ "Extended Properties="" Excel 8.0 ;""" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2011, 09:56 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
В общем, синтаксис того, что ты пишешь - TSQL Для JET такие фокусы не прокатят - это ж совершенно другой движок, синтаксис языков разный, временные таблицы не поддерживаются (вот тут могу соврать, пусть камрады поправят, если чо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2011, 10:10 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
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оздал табличку с данными (аналог листа с данными) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2011, 10:21 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
Shocker.ProВ общем, синтаксис того, что ты пишешь - TSQL Для JET такие фокусы не прокатят - это ж совершенно другой движок, синтаксис языков разный, временные таблицы не поддерживаются (вот тут могу соврать, пусть камрады поправят, если чо) понятно. А где можно почитать при синтаксис? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2011, 10:22 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
Sasha2007понятно. А где можно почитать при синтаксис?ну.... в книжке по аксесс, например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2011, 10:38 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
Ищи файлы, начинающиеся на Jet и с расширением chm , на своем компьютере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2011, 10:40 |
|
||
|
ADODB и временная таблица
|
|||
|---|---|---|---|
|
#18+
Всем спасибо. Сделал все без временной таблицы, сделал временный лист ) Для меня тема закрыта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2011, 11:17 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37326880&tid=2176736]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 427ms |

| 0 / 0 |
