Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA >> SQL

Forumthread: VBA >> SQL

VBA >> SQL
13.11.2003 11:11:30
Michael
Hallo zusammen,

ich habe folgendes Problem. Ich möchte in einem Skript Select abfragen generieren und nutze hierzu Variable die in einem Sheet gesetzt werden. Allerdings bekomme ich beim zusammensetzen des QuerryTables immer den Fehler 450, Anzahl der Argumente..... Ich habe mir schon alles Ausgeben lassen und konnte keinen Fehler finden.

'commandtext
sel = "select "
was = Range("c5")
from = " from " & Range("c6")
'tabl = Chr(10) & Range("c7")

'ODBC
con = ("Connection:=")
odb = Chr(34) & ("ODBC;")
ddsn = ("DSN=") & Range("c8") & ";"
uuid = ("UID=") & Range("c9") & ";"
ppwd = ("PWD=") & Range("c10") & Chr(34) & ","
dest = ("Destination:=")
rang = ("Range") & Chr(40) & Chr(34) & "a1" & Chr(34) & Chr(41)

With ActiveSheet.QueryTables.Add & Chr(40) & con & odb & ddsn & uuid & ppwd & dest & rang & Chr(41)
.CommandText = sel & was & from

gebe ich das 'With ActiveSheet.QueryTables.Add_(Connection:="ODBC;DSN=test;UID=test;PWD=test", Destination:=Range("a1"))
so an funktioniert es.

Vielleicht weiss jemand von euch eine Lösung

Vielen Dank
Michael
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA >> SQL
13.11.2003 11:58:11
Nayus
Hi,
wie die Fehlermeldung sagt, können die Argumente im String nicht aufgelöst werden.
Versuch's doch mal mit:

With ActiveSheet.QueryTables.Add(Connection:=odb & ddsn & uuid & ppwd, Destination:=Range("A1"), Sql:=sel & was & from)

So funktioniert es auf jeden Fall bei mir.

Viel Erfolg,
Nayus
Anzeige
AW: VBA >> SQL
13.11.2003 12:20:44
Michael
Danke Nayus,

aber so bekomme ich leider nur einen 1004 Fehler : "Anwendungs oder Objektdefinierter Fehler" zurück

Michael
AW: VBA >> SQL
13.11.2003 12:29:12
Nayus
Hi,
also dann hier das komplette Makro, das ich zu Testzwecken erstellt habe.
Bei funktioniert es (Mit ORACLE ODBC-Treiber gegen eine ORACLE-DB).
Bitte prüfen:
Stehen in den Zellen die korrekten Werte?


Sub crSelect()
Dim odb, ddsn, uuid, ppwd, sel, was, from As String
sel = "select "
was = Range("c5")
from = " from " & Range("c6")
odb = ("ODBC;")
ddsn = ("DSN=") & Range("c8") & ";"
uuid = ("UID=") & Range("c9") & ";"
ppwd = ("PWD=") & Range("c10")
With ActiveSheet.QueryTables.Add _
(Connection:=odb & ddsn & uuid & ppwd, Destination:=Range("A1"), _
Sql:=sel & was & from).Refresh
End With
End Sub


Viel Erfolg,
Nayus
Anzeige
AW: VBA >> SQL
13.11.2003 15:17:00
Michael
Danke Nayus,

jetzt funktioniert es.
Habe dooferweise vor die Variable odb ein CHR(34) gesetzt..... so kann das natürlich nicht gehen.

nochmals Danke

Michael
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige