Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / не получается вернуть данные :( / 25 сообщений из 41, страница 1 из 2
22.10.2010, 11:25
    #36914040
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
пытаюсь вытащить данные таким образом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub SqlQuery()
    Dim SQL1 As String
    Dim wb As String
    Dim TargetSheet As Worksheet
    Dim Cn As ADODB.Connection
    Dim Rs As ADODB.Recordset
    
    Set TargetSheet = ThisWorkbook.Worksheets("АНАЛИЗ")
    wb = ThisWorkbook.FullName
    
    SQL1 = TargetSheet.Cells( 1 ,  1 )
    Set Cn = New ADODB.Connection
        With Cn
            .Provider = "MSDASQL"
            .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & wb & ";FirstRowHasNames=0"""
            .Open
        End With
            Set Rs = New ADODB.Recordset
                Rs.Open SQL1, Cn
                TargetSheet.Cells( 22 ,  1 ).CopyFromRecordset Rs
            Rs.Close
    Cn.Close
End Sub
переменная SQL1 равна:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
SELECT
    c.[п/п],
    c.[АКТИВ],
    (SUM(c.ost1) + SUM(c.ost2) - SUM(c.ost3))/ 2  as [ОСТАТОК_НОВЫЙ],
    (SUM(c.ost11) + SUM(c.ost22) - SUM(c.ost33))/ 2  as [ОСТАТОК_СТАРЫЙ]
FROM (
SELECT
     a.[п/п],
     a.[АКТИВ],
     b.[дата7] as [ost1],
      0  as [ost2],
      0  as [ost3],
     b.[дата6] as [ost11],
      0  as [ost22],
      0  as [ost33]
FROM [dataSQL$] a
     LEFT OUTER JOIN [USERLIST ( 1 )$] b
     ON (a.[счета  1 -го порядка (А)] = b.[счет])
UNION ALL
SELECT
     a.[п/п],
     a.[АКТИВ],
      0  as [ost1],
     b.[дата7] as [ost2],
      0  as [ost3],
      0  as [ost11],
     b.[дата6] as [ost22],
      0  as [ost33]
 FROM [dataSQL$] a
     LEFT OUTER JOIN [USERLIST ( 1 )$] b
     ON (a.[счета  2 -го порядка (А)] = b.[счет2])
UNION ALL
SELECT
     a.[п/п],
     a.[АКТИВ],
      0  as [ost1],
      0  as [ost2],
     b.[дата7] as [ost3],
      0  as [ost11],
      0  as [ost22],
     b.[дата6] as [ost33]
FROM [dataSQL$] a
     LEFT OUTER JOIN [USERLIST ( 1 )$] b
     ON (a.[за вычетом счетов  2 -го порядка (А)] = b.[счет2])
) c
GROUP BY
   c.[п/п],
   c.[АКТИВ]
на строке Rs.Open SQL1, Cn пишет "ошибка систаксиса в предложении FROM" хотя, когда загоняешь этот запрос в query, всё работает и возвращается.
всё голову сломал, подскажите, пожалуйста, в чем ошибка
...
Рейтинг: 0 / 0
22.10.2010, 11:28
    #36914050
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
Фигасе. А вы уверены, что экселевский драйвер поддерживает union, join, group by? Я вот нет. Начните с запросов попроще.
...
Рейтинг: 0 / 0
22.10.2010, 11:41
    #36914090
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
AntonariyФигасе. А вы уверены, что экселевский драйвер поддерживает union, join, group by? Я вот нет. Начните с запросов попроще.уверен. вот такая мерзота в итоге заработала
...
Рейтинг: 0 / 0
22.10.2010, 12:00
    #36914163
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
PlanB,

попытался создать у себя листы с такими именами и полями, все работает.
Юзал дао. Можете файлик привести в пример?
...
Рейтинг: 0 / 0
22.10.2010, 12:05
    #36914181
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
ShamanusPlanB,

попытался создать у себя листы с такими именами и полями, все работает.
Юзал дао. Можете файлик привести в пример?я ж пишу, у меня непосредственно запрос работает. т.е., когда его в query пихаю, он данные выводит. может, в коде vba ошибка? хотя, если написать простенький "select * from", никаких проблем нет...

файл большой, не влезет
...
Рейтинг: 0 / 0
22.10.2010, 12:21
    #36914233
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
dadaSQLп/пАКТИВАКТИВ (детально)счета 1-го порядка (А)счета 2-го порядка (А)за вычетом счетов 2-го порядка (А)1наличные активы-2020203091наличные активы-2030203101наличные активы-2040203131наличные активы-00203141наличные активы-00203212к/с в ЦБ-03010202к/с в ЦБ-03010402к/с в ЦБ-03010602к/с в ЦБ-03022803к/с НОСТРО-03011003к/с НОСТРО-03011403к/с НОСТРО-03011803к/с НОСТРО-03011903к/с НОСТРО-03012503к/с НОСТРО-03021303к/с НОСТРО-0003к/с НОСТРО-0003к/с НОСТРО-0003к/с НОСТРО-0003к/с НОСТРО-0003к/с НОСТРО-0003к/с НОСТРО-0004средства в ЦБ1д+д/в03190104средства в ЦБ1д+д/в03190204средства в ЦБ2-703190304средства в ЦБ8-3003190404средства в ЦБ31-9003190504средства в ЦБ91-18003190604средства в ЦБ181-36003190704средства в ЦБ1-3 года03190804средства в ЦБ> 3 лет03190904средства в ЦБпрочие03290204средства в ЦБ-0004средства в ЦБ-0004средства в ЦБ-0004средства в ЦБ-0004средства в ЦБ-0004средства в ЦБ-0004средства в ЦБ-0004средства в ЦБ-0004средства в ЦБ-0004средства в ЦБ-000USERLIST (1)
счетсчет2дата6дата710810801952847929530519710910901001091090100202202024543178419627420220203002022020600202202073719739781202202085913725007912022020966240685202022021000202202024543178419627420220203002022020600202202073719739781202202085913725007912022020966240685202022021000203203210020320309127601712275102032031000203203130020320314002032030912760171227510203203100020320313002032031400203203210020320302144272422572272032030349880730764120320305201422867839203203081740817389203203110020320312002032031500203203160020320317002032031800203203190020320320002032030214427242257227203203034988073076412032030520142286783920320308174081738920320311002032031200203203150020320316002032031700203203180020320319002032032000204204010020420402002042040300
...
Рейтинг: 0 / 0
22.10.2010, 12:29
    #36914256
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
PlanBAntonariyФигасе. А вы уверены, что экселевский драйвер поддерживает union, join, group by? Я вот нет. Начните с запросов попроще.уверен. вот такая мерзота в итоге заработалаА я вот укрепился в своей неуверенности. Ведь там вами же русским по серому написано следующее:
авторзапрос производится из Excel к базе Access
...
Рейтинг: 0 / 0
22.10.2010, 12:33
    #36914268
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
когда пишу
SQL1 = "SELECT a.[дата6] FROM [USERLIST (1)$] a"
всё нормально выводится. в связи с этим у меня подозрения, что дело в строке подключения...
...
Рейтинг: 0 / 0
22.10.2010, 12:38
    #36914288
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
Да не поддерживает эксель этих свистелок. Строка не виновата.
...
Рейтинг: 0 / 0
22.10.2010, 12:39
    #36914295
Cursky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
PlanB,
У меня тоже всё сработало
...
Рейтинг: 0 / 0
22.10.2010, 12:46
    #36914326
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
AntonariyДа не поддерживает эксель этих свистелок. Строка не виновата.я ещё раз повторяю, когда в query загоняешь, всё нормально. разницы-то нет, по большому счету...
...
Рейтинг: 0 / 0
22.10.2010, 12:48
    #36914334
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
Antonariy, вот, рекордером записал...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Sub Макрос4()
'
' Макрос4 Макрос
'

'
    With ActiveSheet.ListObjects.Add(SourceType:= 0 , Source:=Array(Array( _
        "ODBC;DSN=Excel Files;DBQ=C:\Users\skutenko\Desktop\ot100090.xls;DefaultDir=C:\Users\skutenko\Desktop;DriverId=1046;MaxBufferSize=204" _
        ), Array("8;PageTimeout=5;")), Destination:=Range("$B$33")).QueryTable
        .CommandText = Array( _
        "SELECT" & Chr( 13 ) & "" & Chr( 10 ) & "    c.[п/п]," & Chr( 13 ) & "" & Chr( 10 ) & "    c.[АКТИВ]," & Chr( 13 ) & "" & Chr( 10 ) & "    (SUM(c.ost1) + SUM(c.ost2) - SUM(c.ost3))/2 as [ОСТАТОК_НОВЫЙ]," & Chr( 13 ) & "" & Chr( 10 ) & "    (SUM(c.ost11) + SUM(c.ost22) - SUM(c.ost33))/2 as [ОСТАТОК_СТАРЫЙ]" & Chr( 13 ) & "" & Chr( 10 ) & "FROM (" & Chr( 13 ) & "" & Chr( 10 ) & "SELECT" & Chr( 13 ) & "" & Chr( 10 ) & "     " _
        , _
        "a.[п/п]," & Chr( 13 ) & "" & Chr( 10 ) & "     a.[АКТИВ]," & Chr( 13 ) & "" & Chr( 10 ) & "     b.[дата7] as [ost1]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost2]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost3]," & Chr( 13 ) & "" & Chr( 10 ) & "     b.[дата6] as [ost11]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost22]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost33]" & Chr( 13 ) & "" & Chr( 10 ) & "FROM [dataSQL$] a" & Chr( 13 ) & "" & Chr( 10 ) & "     LEFT OUTER JOIN [" _
        , _
        "USERLIST (1)$] b" & Chr( 13 ) & "" & Chr( 10 ) & "     ON (a.[счета 1-го порядка (А)] = b.[счет])" & Chr( 13 ) & "" & Chr( 10 ) & "UNION ALL" & Chr( 13 ) & "" & Chr( 10 ) & "SELECT" & Chr( 13 ) & "" & Chr( 10 ) & "     a.[п/п]," & Chr( 13 ) & "" & Chr( 10 ) & "     a.[АКТИВ]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost1]," & Chr( 13 ) & "" & Chr( 10 ) & "     b.[дата7] as [ost2]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost3]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost11]" _
        , _
        "," & Chr( 13 ) & "" & Chr( 10 ) & "     b.[дата6] as [ost22]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost33]" & Chr( 13 ) & "" & Chr( 10 ) & " FROM [dataSQL$] a" & Chr( 13 ) & "" & Chr( 10 ) & "     LEFT OUTER JOIN [USERLIST (1)$] b" & Chr( 13 ) & "" & Chr( 10 ) & "     ON (a.[счета 2-го порядка (А)] = b.[счет2])" & Chr( 13 ) & "" & Chr( 10 ) & "UNION ALL" & Chr( 13 ) & "" & Chr( 10 ) & "SELECT" & Chr( 13 ) & "" & Chr( 10 ) & "     a.[п/п]," & Chr( 13 ) & "" & Chr( 10 ) & "     a" _
        , _
        ".[АКТИВ]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost1]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost2]," & Chr( 13 ) & "" & Chr( 10 ) & "     b.[дата7] as [ost3]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost11]," & Chr( 13 ) & "" & Chr( 10 ) & "     0 as [ost22]," & Chr( 13 ) & "" & Chr( 10 ) & "     b.[дата6] as [ost33]" & Chr( 13 ) & "" & Chr( 10 ) & "FROM [dataSQL$] a" & Chr( 13 ) & "" & Chr( 10 ) & "     LEFT OUTER JOIN [USERLIST (1)$] b" _
        , _
        "" & Chr( 13 ) & "" & Chr( 10 ) & "     ON (a.[за вычетом счетов 2-го порядка (А)] = b.[счет2])" & Chr( 13 ) & "" & Chr( 10 ) & ") c" & Chr( 13 ) & "" & Chr( 10 ) & "GROUP BY" & Chr( 13 ) & "" & Chr( 10 ) & "   c.[п/п]," & Chr( 13 ) & "" & Chr( 10 ) & "   c.[АКТИВ]" & Chr( 13 ) & "" & Chr( 10 ) & "" _
        )
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod =  0 
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Таблица_Запрос_из_Excel_Files_1"
        .Refresh BackgroundQuery:=False
    End With
End Sub
...
Рейтинг: 0 / 0
22.10.2010, 13:03
    #36914399
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
PlanB,
у меня все ОК
сейчас дам файлы

итог запроса

Выражение1 Выражение2 ОСТАТОК_НОВЫЙ ОСТАТОК_СТАРЫЙ АКТИВ 0 01 наличные активы 7398348 82554622 к/с в ЦБ 0 03 к/с НОСТРО 0 04 средства в ЦБ 0 0
...
Рейтинг: 0 / 0
22.10.2010, 13:05
    #36914404
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
Ладно, сдаюсь)

Код: plaintext
Chr( 13 ) & "" & Chr( 10 )
Мило. А ведь это равняется vbCrLf. Хотя, если уж на то пошло, то и перенос строки не нужен.
...
Рейтинг: 0 / 0
22.10.2010, 13:07
    #36914412
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
PlanB,

в файле Кинга1 исходные данные
в файле test сам макрокод (через ДАО) поменяйте путь к файлу Книга1
...
Рейтинг: 0 / 0
22.10.2010, 13:36
    #36914524
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
PlanBкогда пишу
SQL1 = "SELECT a.[дата6] FROM [USERLIST (1)$] a"
всё нормально выводится. в связи с этим у меня подозрения, что дело в строке подключения...


уберите доллары из запроса
...
Рейтинг: 0 / 0
22.10.2010, 14:13
    #36914647
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
AntonariyЛадно, сдаюсь)

Код: plaintext
Chr( 13 ) & "" & Chr( 10 )
Мило. А ведь это равняется vbCrLf. Хотя, если уж на то пошло, то и перенос строки не нужен.это ж рекордером написано =)))
...
Рейтинг: 0 / 0
22.10.2010, 14:14
    #36914650
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
ПЕНСИОНЕРКАPlanBкогда пишу
SQL1 = "SELECT a.[дата6] FROM [USERLIST (1)$] a"
всё нормально выводится. в связи с этим у меня подозрения, что дело в строке подключения...


уберите доллары из запросадоллар - это ссылка на лист. по-другому он не понимает, вроде как..
дабы не быть голосовным, я проверил. нифигасеньки =)
...
Рейтинг: 0 / 0
22.10.2010, 14:40
    #36914732
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
PlanB,

так а мой метод отработал у Вас?
...
Рейтинг: 0 / 0
22.10.2010, 15:04
    #36914796
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
ShamanusPlanB,

так а мой метод отработал у Вас?я сам в шоке, но нет!
вопрос у меня есть идиотский:
Path = ThisWorkbook.FullName
может, ВФЩ не можкет из себя же данные извлекать.
Ваш пример работатет отлично, вставляю в свой - хрень какая-то
...
Рейтинг: 0 / 0
22.10.2010, 15:10
    #36914818
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
PlanB,

ссылаясь на самого себя....


Скиньте файл. Ящик 5 8 5 четыре восьмерки на рамблере
...
Рейтинг: 0 / 0
22.10.2010, 15:27
    #36914870
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
PlanBПЕНСИОНЕРКАPlanBкогда пишу
SQL1 = "SELECT a.[дата6] FROM [USERLIST (1)$] a"
всё нормально выводится. в связи с этим у меня подозрения, что дело в строке подключения...


уберите доллары из запросадоллар - это ссылка на лист. по-другому он не понимает, вроде как..
дабы не быть голосовным, я проверил. нифигасеньки =)


я создала связанные таблицы (без $)
-при подводе курсора к имени в аксе виден доллар
-запрос не работал
-убрала доллар в запросе-----ОК
...
Рейтинг: 0 / 0
22.10.2010, 15:45
    #36914920
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
ПЕНСИОНЕРКАPlanBПЕНСИОНЕРКАPlanBкогда пишу
SQL1 = "SELECT a.[дата6] FROM [USERLIST (1)$] a"
всё нормально выводится. в связи с этим у меня подозрения, что дело в строке подключения...


уберите доллары из запросадоллар - это ссылка на лист. по-другому он не понимает, вроде как..
дабы не быть голосовным, я проверил. нифигасеньки =)


я создала связанные таблицы (без $)
-при подводе курсора к имени в аксе виден доллар
-запрос не работал
-убрала доллар в запросе-----ОКэто excel-excel
...
Рейтинг: 0 / 0
22.10.2010, 15:48
    #36914930
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
ShamanusPlanB,
ссылаясь на самого себя....
Скиньте файл. Ящик 5 8 5 четыре восьмерки на рамблерея пытаюсь сделать примочку к программному продукту. он большой, в нем черт ногу сломит, да и денег не маленьких стоит.

в общем, спасибо, будем сами бороться по возможности =)
...
Рейтинг: 0 / 0
22.10.2010, 16:01
    #36914964
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вернуть данные :(
ShamanusPlanB,

ссылаясь на самого себя....


Скиньте файл. Ящик 5 8 5 четыре восьмерки на рамблере
вытащил два листа из проекта в отдельную книгу, её и послал.
угадал я адрес? отпишитесь о получении, плитз
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / не получается вернуть данные :( / 25 сообщений из 41, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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