powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запрос в vba
3 сообщений из 3, страница 1 из 1
запрос в vba
    #36035064
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
макрорекордером пытаюсь оформить в код процедуру выполнения 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
запрос в vba
    #36035113
Апострофф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для начала окружи знаки & пробелами по всему коду, а там посмотрим.
...
Рейтинг: 0 / 0
запрос в vba
    #36035285
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказывается, он у меня не полностью копировался:
Код: plaintext
1.
b.`В том чис" _
        ,,,,,,,,,)
Почему так получается? Это же рекордер???? Ограничения на кол-во знаков не существует ли, случайно? Ща попробую руками запихать
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / запрос в vba
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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