Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: długie zapytania sql w vba excela
anonim




Typ: Nie zarejestrowany
długie zapytania sql w vba excela

Witam serdecznie wszystkich grupowiczów
Mam taki oto problem, jest zapytanie do bazy sql:

        With ActiveSheet.QueryTables.Add(Connection:= _
            "ODBC;DSN=consum;UID=sa;PWD=;APP=Microsoft Office
XP;WSID=PEPSI;LANGUAGE=polski" _
            , Destination:=Range("A18"
            .CommandText = Array( _
            "SELECT TraNag.TrN_PodID, Sum(TraElem.TrE_Ilosc) AS 'Suma z
TrE_Ilosc' FROM .CDN.TraElem TraElem, .CDN.TraNag TraNag WHERE
TraElem.TrE_TrNId = TraNag.TrN_TrNID AND ((TraElem.TrE_D" _
            , _
            "ataOpe>={ts '" & PoczMies & " 0000'}) AND
(TraElem.TrE_DataOpe<={ts '" & KonMies & " 0000'}) AND
(TraNag.TrN_KatID=" &                    Przedstawiciel & " AND
(TraElem.TrE_TwrId In (" & _
_
            TabAgr1(1) & _
_
            " AND (TraNag.T" _
            , "rN_TypDokumentu In (302,305))) GROUP BY TraNag.TrN_PodID"
            .Name = "Kwerenda z consum_355"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = False
            .RefreshStyle = xlOverwriteCells
            .SavePassword = True
            .SaveData = True
            .AdjustColumnWidth = False
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .Refresh BackgroundQuery:=False
        End With

w zmiennej tablicowej TabArg1(1) podstawiam string do zapytania, ale jeśli
ten string jest dłuższy niż 97 znaków to zapytanie wypada z błędem, jeśli
jest krutsze lub równe wszystko działa, a niestety muszę takie stringi
podstawiać.
Jak sobie z tym poradzić, ja nie wiem oco tu chodzi?

Marek

18-06-2003 18:37
  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
bazy sql

jesli jest to baza Accessa to nie ma problemu.

Sub Zapytanie()
Dim BazaName As String = "" 'sciezka dostepu do bazy
Dim strzap As String = "" 'twoje zapytanie
Dim i As Long, j As Long, ileWier As Long, ileKol As Long
Dim dbs As Database
Dim rst As Recordset

Set dbs = OpenDatabase(BazaName)
Set rst = dbs.OpenRecordset(strzap)
    With rst
        If .RecordCount > 0 Then
            .MoveLast
            .MoveFirst
            ileWier = .RecordCount
            ileKol = .Fields.Count
            For i = 0 To ileWier - 1
                For j = 0 To ileKol - 1
                    Arkusz1.Cells(i, j) = .Fields(j).Value
                Next j
                .MoveNext
            Next i
        Else
            MsgBox "Ktoś usunął dane z bazy!!!", vbExclamation, "Uwaga!!!"
        End If
    .Close
    End With
Set rst = Nothing
dbs.Close
Set dbs = Nothing

Exit Sub

Err_GetRecordsFromBaza:
    MsgBox Err.Description, vbCritical, "Błąd nr " & Err.Number
    dbs.Close
    Set dbs = Nothing
    rst.Close
    Set rst = Nothing

End Sub


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

22-09-2003 19:33
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Wszystkich odpowiedzi: 1 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1