Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / sql запрос на VB / 12 сообщений из 12, страница 1 из 1
17.12.2009, 14:31
    #36371587
vladAnco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
добрый день...
на работе сказали сделать макрос в экселе(( а я до этого непрограмировал в ВБ, и вот возникла небольшая проблема...
Код: 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
17.12.2009, 15:20
    #36371779
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
Может перед запросом
Код: plaintext
1.
2.
aaa = CStr(aaa)
bbb = CStr(bbb)
...
Рейтинг: 0 / 0
17.12.2009, 15:26
    #36371804
sql запрос на VB
В поиске, по слову 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
17.12.2009, 16:04
    #36371936
vladAnco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
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
17.12.2009, 16:07
    #36371947
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
YYYY-MM-DD
...
Рейтинг: 0 / 0
17.12.2009, 16:23
    #36371986
vladAnco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
2Konst_One: не помогло.
та и
Код: plaintext
1.
 aaa = Format(SH.Cells( 2 ,  2 ), "MM/DD/YYYY")
    bbb = Format(SH.Cells( 3 ,  2 ), "MM/DD/YYYY")
эта строчка тоже как то не корекно работает
например если врубить вотч на ааа и ббб
то на ааа они меняются местами, а на ббб нет. (((( и когда выдает ощибку что в этом поле все равно там пишет значения дат как обычно.
...
Рейтинг: 0 / 0
17.12.2009, 16:27
    #36371997
vladAnco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
и ещё забыл указать, если вместо переменых вести такой код
Код: plaintext
1.
, "ISKPP.DATA>={d '2009-11-01'}) AND (HISKPP.DATA>={d '2009-11-30'})")
то запрос удачно выполняется.
...
Рейтинг: 0 / 0
17.12.2009, 16:31
    #36372012
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
Код: plaintext
1.
2.
    aaa = Format(SH.Cells( 2 ,  2 ), "YYYY-MM-DD")
    bbb = Format(SH.Cells( 3 ,  2 ), "YYYY-MM-DD")
?
...
Рейтинг: 0 / 0
17.12.2009, 16:35
    #36372028
vladAnco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
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
17.12.2009, 16:42
    #36372056
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
Для кодировки переключиться на русскую раскладку перед копированием надо.
У меня переменные меняются корректно.
Может лишнее
Код: plaintext
1.
2.
Dim aaa As Date
Dim bbb As Date
...
Рейтинг: 0 / 0
17.12.2009, 16:44
    #36372063
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
Да, меняется, если отменить As Date, забыл сказать...
...
Рейтинг: 0 / 0
17.12.2009, 16:48
    #36372077
vladAnco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql запрос на VB
2Hugo121:
я вас всех люблю) спс заработало...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / sql запрос на VB / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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