powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / sql запрос на VB
12 сообщений из 12, страница 1 из 1
sql запрос на VB
    #36371587
vladAnco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день...
на работе сказали сделать макрос в экселе(( а я до этого непрограмировал в ВБ, и вот возникла небольшая проблема...
Код: 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.
Sub Макрос3()
Dim aaa As Date
Dim bbb As Date

    Range("B2").Select
   ' aaa = CDate(ActiveCell.Value)
   aaa = ActiveCell.Value
    Range("B3").Select
    bbb = ActiveCell.Value
  Workbooks.Add
  With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
        .Connection = _
        "ODBC;DSN=файлы dBASE;DefaultDir=D:\ÌÎÈ ÄÎÊÓÌÅÍÒÛ\PROGA NA DELFI DKYA BD;DriverId=533;MaxBufferSize=2048;PageTimeout=5;"
        .CommandType = xlCmdSql
        .CommandText = Array( _
        "SELECT HISKPP.KOOP, HISKPP.NOME, HISKPP.DATA, HISKPP.TIMO, HISKPP.KODO, HISKPP.KODS, HISKPP.USER, HISKPP.DATS, HISKPP.TIMS, HISKPP.STAT, HISKPP.CTRL, HISKPP.PICK" & Chr( 13 ) & "" & Chr( 10 ) & "FROM HISKPP HISKPP" & Chr( 13 ) & "" & Chr( 10 ) & "WHERE (HISKPP.DAT" _
        , "A>={{d " & aaa & "}) AND (HISKPP.DATA<={{d " & bbb & "})")
        .CreatePivotTable TableDestination:="[Книга1]Лист1!R3C1", TableName:= _
        "СводнаяТаблица1", DefaultVersion:=xlPivotTableVersion10
    End With
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("KODS")
        .Orientation = xlRowField
        .Position =  1 
    End With
    With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("CTRL")
        .Orientation = xlRowField
        .Position =  2 
    End With
    ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _
        ("СводнаяТаблица1").PivotFields("PICK"), "сумма по полю PICK", xlSum
End Sub
ощибка у меня в sql запросе, мне нада взять данные из полей B2 и B3 , в которыйх указан периуд для запроса, и вставить их в макрос мой((( но вот уже сижу пару часов и не как не могу справится с этой задачей.
заранее спс
...
Рейтинг: 0 / 0
sql запрос на VB
    #36371779
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может перед запросом
Код: plaintext
1.
2.
aaa = CStr(aaa)
bbb = CStr(bbb)
...
Рейтинг: 0 / 0
sql запрос на VB
    #36371804
В поиске, по слову PivotCaches, можно найти подобные темы и в разделе Visual Basic и Microsoft Office

Если кол-во полей в базе именно столько сколько Вы указали.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub trpr()
On Error GoTo err1

    Dim SH As Worksheet
    Set SH = ThisWorkbook.Worksheets("Лист1")
    
    aaa = Format(SH.Cells( 2 ,  2 ), "MM/DD/YYYY")
    bbb = Format(SH.Cells( 3 ,  2 ), "MM/DD/YYYY")
    
    Dim SQL As String
    SQL = "SELECT * FROM HISKPP WHERE ( (DATA >= #" & aaa & "#) AND (DATA <= #" & bbb & "#) )"

    ' и т.д.

    Exit Sub
err1:
    MsgBox Err.Description
End Sub
...
Рейтинг: 0 / 0
sql запрос на VB
    #36371936
vladAnco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ВсемПривет:
сделал как ты написал, таже самая ощибка...
1004
дата содержит синтаксическую ощибку. я как понял что
Код: plaintext
1.
  aaa = Format(SH.Cells( 2 ,  2 ), "MM/DD/YYYY")
    bbb = Format(SH.Cells( 3 ,  2 ), "MM/DD/YYYY")

меняет местами месяц и день, но когда выдает ощибку то в ней пишет дату как обычно - дд.мм.гггг.
и ощибка пишет что в этом месте:
Код: plaintext
"A>={{d " & aaa & "}) AND (HISKPP.DATA<={{d " & bbb & "})")
все же немного переписал твою процедуру, вставил в макрос основное тело, и убрал го ту при ощибке, ну и тело склю запроса своего не менял вставил ткоа твоё значение после знаков больше и меньше, чтоб не переписывать свой запрос полностью.
2hugo121 : не помогло тоже (
...
Рейтинг: 0 / 0
sql запрос на VB
    #36371947
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YYYY-MM-DD
...
Рейтинг: 0 / 0
sql запрос на VB
    #36371986
vladAnco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Konst_One: не помогло.
та и
Код: plaintext
1.
 aaa = Format(SH.Cells( 2 ,  2 ), "MM/DD/YYYY")
    bbb = Format(SH.Cells( 3 ,  2 ), "MM/DD/YYYY")
эта строчка тоже как то не корекно работает
например если врубить вотч на ааа и ббб
то на ааа они меняются местами, а на ббб нет. (((( и когда выдает ощибку что в этом поле все равно там пишет значения дат как обычно.
...
Рейтинг: 0 / 0
sql запрос на VB
    #36371997
vladAnco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и ещё забыл указать, если вместо переменых вести такой код
Код: plaintext
1.
, "ISKPP.DATA>={d '2009-11-01'}) AND (HISKPP.DATA>={d '2009-11-30'})")
то запрос удачно выполняется.
...
Рейтинг: 0 / 0
sql запрос на VB
    #36372012
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
    aaa = Format(SH.Cells( 2 ,  2 ), "YYYY-MM-DD")
    bbb = Format(SH.Cells( 3 ,  2 ), "YYYY-MM-DD")
?
...
Рейтинг: 0 / 0
sql запрос на VB
    #36372028
vladAnco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Hugo121: незнаю может я что то не так делаю, но если поставить гггг-мм-дд то теперь переменные не меняются. если смотреть на них через вотч, записывается как дд-мм-ггг
вот выложил ещё раз изменёный код, сори что кодировка не поддерживается


Код: 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.
Sub Ìàêðîñ 3 ()
Dim aaa As Date
Dim bbb As Date
' integer
' Ìàêðîñ3 Ìàêðîñ
' Ìàêðîñ çàïèñàí 17.12.2009 (vlad)
'
    'Range("B2").Select
   ' aaa = CDate(ActiveCell.Value)
   'aaa = ActiveCell.Value
    'Range("B3").Select
    'bbb = ActiveCell.Value
   ' aaa = "2009-11-01"
   ' bbb = "2009-11-30"
  
  
   Dim SH As Worksheet
    Set SH = ThisWorkbook.Worksheets("Ëèñò1")
  
    aaa = Format(SH.Cells( 2 ,  2 ), "YYYY-MM-DD")
    bbb = Format(SH.Cells( 3 ,  2 ), "YYYY-MM-DD")
    'aaa = CStr(aaa)
  'bbb = CStr(bbb)
  Workbooks.Add
  With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
        .Connection = _
        "ODBC;DSN=Ôàéëû dBASE;DefaultDir=D:\ÌÎÈ ÄÎÊÓÌÅÍÒÛ\PROGA NA DELFI DKYA BD;DriverId=533;MaxBufferSize=2048;PageTimeout=5;"
        .CommandType = xlCmdSql
        .CommandText = Array( _
        "SELECT HISKPP.KOOP, HISKPP.NOME, HISKPP.DATA, HISKPP.TIMO, HISKPP.KODO, HISKPP.KODS, HISKPP.USER, HISKPP.DATS, HISKPP.TIMS, HISKPP.STAT, HISKPP.CTRL, HISKPP.PICK" & Chr( 13 ) & "" & Chr( 10 ) & "FROM HISKPP HISKPP" & Chr( 13 ) & "" & Chr( 10 ) & "WHERE (HISKPP.DAT" _
        , "A>=#" & aaa & "#) AND (HISKPP.DATA<= #" & bbb & "#)")
        .CreatePivotTable TableDestination:="[Êíèãà1]Ëèñò1!R3C1", TableName:= _
        "ÑâîäíàÿÒàáëèöà1", DefaultVersion:=xlPivotTableVersion10
    End With
    With ActiveSheet.PivotTables("ÑâîäíàÿÒàáëèöà1").PivotFields("KODS")
        .Orientation = xlRowField
        .Position =  1 
    End With
    With ActiveSheet.PivotTables("ÑâîäíàÿÒàáëèöà1").PivotFields("CTRL")
        .Orientation = xlRowField
        .Position =  2 
    End With
    ActiveSheet.PivotTables("ÑâîäíàÿÒàáëèöà1").AddDataField ActiveSheet.PivotTables _
        ("ÑâîäíàÿÒàáëèöà1").PivotFields("PICK"), "Ñóììà ïî ïîëþ PICK", xlSum
End Sub
...
Рейтинг: 0 / 0
sql запрос на VB
    #36372056
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для кодировки переключиться на русскую раскладку перед копированием надо.
У меня переменные меняются корректно.
Может лишнее
Код: plaintext
1.
2.
Dim aaa As Date
Dim bbb As Date
...
Рейтинг: 0 / 0
sql запрос на VB
    #36372063
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, меняется, если отменить As Date, забыл сказать...
...
Рейтинг: 0 / 0
sql запрос на VB
    #36372077
vladAnco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Hugo121:
я вас всех люблю) спс заработало...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / sql запрос на VB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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