Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запрос в vba / 3 сообщений из 3, страница 1 из 1
10.06.2009, 11:36
    #36035064
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос в vba
макрорекордером пытаюсь оформить в код процедуру выполнения sql-запроса к БД акса.
Запрос следующий:
Код: 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.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
SELECT a.`ID клиента в RS-Bank`,
       a.Филиал,
       a.Заемщик,
       a.`Номер договора`,
       a.`Остаток ссудной задолженности`,
       a.`В том числе просроченной`,
       c.`Остаток ссудной задолженности` As `Остаток ссудной задолженности2` ,
       c.`В том числе просроченной` As `В том числе просроченной2`,
        1  as `Признак суммы`
FROM `D:\InitialData`.` 01 / 04 / 09 ` a
LEFT OUTER JOIN `D:\InitialData`.` 01 / 05 / 09 ` c
  ON    a.`ID клиента в RS-Bank` = c.`ID клиента в RS-Bank`
    AND a.`Номер договора` = c.`Номер договора`
UNION
SELECT b.`ID клиента в RS-Bank`,
       b.Филиал,
       b.Заемщик,
       b.`Номер договора`,
       e.`Остаток ссудной задолженности`,
       e.`В том числе просроченной`,
       b.`Остаток ссудной задолженности`,
       b.`В том числе просроченной`,
        1  as `Признак суммы`
FROM `D:\InitialData`.` 01 / 05 / 09 ` b
LEFT OUTER JOIN `D:\InitialData`.` 01 / 04 / 09 ` e
  ON    b.`ID клиента в RS-Bank` = e.`ID клиента в RS-Bank`
    AND b.`Номер договора` = e.`Номер договора`
UNION
SELECT
       f.`ID клиента в RS-Bank`,
       f.Филиал,
       f.Заемщик,
       '',
       sum(f.`Остаток ссудной задолженности`),
       sum(f.`В том числе просроченной`),
       sum(f.`Остаток ссудной задолженности2`),
       sum(f.`В том числе просроченной2`),
        2  as `Признак суммы`
FROM (
  SELECT a.`ID клиента в RS-Bank`,
         a.Филиал,
         a.Заемщик,
         a.`Номер договора`,
         a.`Остаток ссудной задолженности`,
         a.`В том числе просроченной`,
         c.`Остаток ссудной задолженности` As `Остаток ссудной задолженности2` ,
         c.`В том числе просроченной` As `В том числе просроченной2`,
        1  as `Признак суммы`
  FROM `D:\InitialData`.` 01 / 04 / 09 ` a
  LEFT OUTER JOIN `D:\InitialData`.` 01 / 05 / 09 ` c
    ON    a.`ID клиента в RS-Bank` = c.`ID клиента в RS-Bank`
      AND a.`Номер договора` = c.`Номер договора`
  UNION
  SELECT b.`ID клиента в RS-Bank`,
         b.Филиал,
         b.Заемщик,
         b.`Номер договора`,
         e.`Остаток ссудной задолженности`,
         e.`В том числе просроченной`,
         b.`Остаток ссудной задолженности`,
         b.`В том числе просроченной`,
        1  as `Признак суммы`
  FROM `D:\InitialData`.` 01 / 05 / 09 ` b
  LEFT OUTER JOIN `D:\InitialData`.` 01 / 04 / 09 ` e
    ON    b.`ID клиента в RS-Bank` = e.`ID клиента в RS-Bank`
      AND b.`Номер договора` = e.`Номер договора`
) f
GROUP BY f.`ID клиента в RS-Bank`,f.Филиал , f.Заемщик
ORDER BY `ID клиента в RS-Bank`, Заемщик, `Номер договора`

Из макрорекордера вылезают следующие строки. Код запроа помечается красным и, понятное дело, не работает. ПОЧЕМУ? На chr() что-ли ругается?
Код: 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.
Sub Макрос1()
    With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DSN=База данных MS Access;DBQ=D:\InitialData.mdb;DefaultDir=D:;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" _
        , Destination:=Sheets("Лист2").Range("A1"))
        .CommandText = Array( _
        "SELECT a.`ID клиента в RS-Bank`,"&chr( 13 )&""&chr( 10 )&"       a.Филиал,"&chr( 13 )&""&chr( 10 )&"       a.Заемщик,"&chr( 13 )&""&chr( 10 )&"       a.`Номер договора`,"&chr( 13 )&""&chr( 10 )&"       a.`Остаток ссудной задолженности`,"&chr( 13 )&""&chr( 10 )&"       a.`В том числе просроченной`,"&chr( 13 )&""&chr( 10 )&"       c.`Остаток сс" _
        , _
        "удной задолженности` As `Остаток ссудной задолженности2` ,"&chr( 13 )&""&chr( 10 )&"       c.`В том числе просроченной` As `В том числе просроченной2`,"&chr( 13 )&""&chr( 10 )&"       1 as `Признак суммы`"&chr( 13 )&""&chr( 10 )&"FROM `D:\InitialData`.`01/04/09` a"&chr( 13 )&""&chr( 10 )&"LEFT O" _
        , _
        "UTER JOIN `D:\InitialData`.`01/05/09` c"&chr( 13 )&""&chr( 10 )&"  ON    a.`ID клиента в RS-Bank` = c.`ID клиента в RS-Bank`"&chr( 13 )&""&chr( 10 )&"    AND a.`Номер договора` = c.`Номер договора`"&chr( 13 )&""&chr( 10 )&"UNION"&chr( 13 )&""&chr( 10 )&"SELECT b.`ID клиента в RS-Bank`,"&chr( 13 )&""&chr( 10 )&"       b" _
        , _
        ".Филиал,"&chr( 13 )&""&chr( 10 )&"       b.Заемщик,"&chr( 13 )&""&chr( 10 )&"       b.`Номер договора`,"&chr( 13 )&""&chr( 10 )&"       e.`Остаток ссудной задолженности`,"&chr( 13 )&""&chr( 10 )&"       e.`В том числе просроченной`,"&chr( 13 )&""&chr( 10 )&"       b.`Остаток ссудной задолженности`,"&chr( 13 )&""&chr( 10 )&"       b.`В том чис" _
        ,,,,,,,,,)
        .Name = "Запрос из База данных MS Access"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod =  0 
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
    Sheets("Лист2").Select
End Sub
...
Рейтинг: 0 / 0
10.06.2009, 11:53
    #36035113
Апострофф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос в vba
Для начала окружи знаки & пробелами по всему коду, а там посмотрим.
...
Рейтинг: 0 / 0
10.06.2009, 12:46
    #36035285
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос в vba
Оказывается, он у меня не полностью копировался:
Код: plaintext
1.
b.`В том чис" _
        ,,,,,,,,,)
Почему так получается? Это же рекордер???? Ограничения на кол-во знаков не существует ли, случайно? Ща попробую руками запихать
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запрос в vba / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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