-
Erfahrung mit SQL.REQUEST in Excel
Hallo Gemeinde,
ich möchte in Excel einen SQL auf die AS/400 absetzen. Microsoft Query reicht mir hier nicht aus.
Ich habe ein in Query funktionierendes SQL Statement, daß mit SQL.REQUEST aber nicht funktioniert.
Hat jemand Erfahrung damit?
Danke im Voraus
-
Das ganze im VB-Modul (Excel 95) bzw. VB-Editor (ab Excel 97) erfassen und per Extras/Macro.. ausführen.
Sub SQL()
Set cn400 = CreateObject("ADODB.Connection")
Set cmSQL = CreateObject("ADODB.Command")
Set rsSQL = CreateObject("ADODB.Recordset")
Sheets("Tabelle1").Select
Cells.Select
Selection.Clear
cn400.Provider = "IBMDA400"
' User und Passwort nur ab CA/400 V4R4 Express Client relevant
'cn400.Properties("user id") = "USER"
'cn400.Properties("password") = "PASSWORD"
'hier eigenen AS/400 Systemnamen einsetzen
cn400.Properties("data source") = "SYSTEM"
cn400.Open
Set cmSQL.ActiveConnection = cn400
cmSQL.CommandText = "SELECT * FROM QIWS.QCUSTCDT "
cmSQL.CommandType = adCmdText
cmSQL.Prepared = True
Set rsSQL = cmSQL.Execute
With rsSQL
'Feldnamen
For j = 0 To .Fields.Count - 1
Worksheets("Tabelle1").Cells(1, j + 1).Value = .Fields(j).Name
Next j
.MoveFirst
i = 2
Do While Not .EOF
For j = 0 To .Fields.Count - 1
'Typkonvertierungen anpassen, eventuell für jedes Feld, insbesondere bei Num
' der Einfachheit hier generell in String umgesetzt
Worksheets("Tabelle1").Cells(i, j + 1).Value = CStr(.Fields(j).Value)
Next j
i = i + 1
.MoveNext
Loop
End With
cn400.Close
End Sub
[Dieser Beitrag wurde von Sven Schneider am 05. Juli 2001 editiert.]
[Dieser Beitrag wurde von Sven Schneider am 05. Juli 2001 editiert.]
[Dieser Beitrag wurde von Sven Schneider am 05. Juli 2001 editiert.]
-
Hallo Sven,
ich bekomme bei folgendem Statement
cmSQL.CommandType = adCmdText eine Fehlermeldung.
Die Fehlermeldung ist:
Laufzeitfehler '3001':
Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar.
wobei CommandType laut Debugger nicht definiert ist und adCmdText leer ist.
Ich will Dir vorher mal mein Ziel erklären:
Ich möchte einen SQL String über Zellen füttern, um flexible Auswertungen zu machen.
Gruss HPW
-
Bei Excel 95 im VBA-Tabellenblatt / ab Excel 97 im VBA-Editor :
Unter Extras/Verweise...
"Microsoft ActiveX Data Objects 2.0 Library"
oder
"Microsoft ActiveX Data Objects 2.1 Library"
hinzufügen.
Dann müsste es funktionieren.
(adCmdtext ist eine Konstante und ist in der ADO TypeLib definiert)
[Dieser Beitrag wurde von Sven Schneider am 09. Juli 2001 editiert.]
-
Hallo Sven ich bekomme bei:
cn400.Properties("data source") = "SYSTEMname"
folgenden Fehler:
Fehler bei einer aus mehreren Schrittenn bestehenden OLE DB-Opereation.Prüfen Sie die einzelnen DB-Statuswerte, falls vorhanden.
Sagt Dir das waS ?
Wo liegt der Fehler?
Danke,
Hoschie
Bye
HoScHiE
-
Wenn der Code so übernommen wurde,
würde ich sagen, daß "Systemname" durch den Namen der AS/400 ersetzt werden muss.
gruss hpw
-
Steht übrigens deutlich im Source-Code :
' User und Passwort nur ab CA/400 V4R4 Express Client relevant !!!
'cn400.Properties("user id") = "USER"
'cn400.Properties("password") = "PASSWORD"
'hier eigenen AS/400 Systemnamen einsetzen !!!
cn400.Properties("data source") = "SYSTEM"
Also, erst lesen, dann ...
-
Haltet Ihr mich für so dumm ?
Natürlich habe unseren Systemnamen dort eingetragen und dann kommt der Fehler.
Wollte Ihn halt nur nicht hier bekannt geben.
Desweiteren haben wir CA V3 R2 im Einsatz
So und nun nochmal ...
hat einer eine Idee... ?
Es ist aber auch egal was ich da eintrage ob HUgo oder unser Systemname ... der Fehler bleibt gleich.
Danke
Bye
HoScHiE
-
Habe es auch versucht (unter V3.7) und erhalte exakt dieselben Fehlermeldungen.
Ob es doch am Betriebssystem liegt?
hs
-
Also keine Aufregung, vielleicht hilft folgendes :
1.AS/400 Systemname ist nur bedingt richtig.
Der Name muss unter IBM Client ASCCESS "AS/400 Verbindungen" (CWBCONN.EXE) definiert sein.
OLE-DB verwendet diesen Namen zum Verbindungsaufbau.
Dieser muss nicht zwangsläufig mit dem Systemnamen übereinstimmen.
2. Ersetzen
cn400.Provider = "IBMDA400"
cn400.Properties("data source") = "SYSTEM"
cn400.Open
durch
cn400.Open "provider=IBMDA400;data source=SYSTEM"
3. wenn das nicht hilft, versucht es doch mit dem OLE-DB Treiber für ODBC (von Microsoft)
Die Data Source ist hier allerdings eine eingerichtete ODBC-Datenquelle mit dem Client Access ODBC-Treiber.
cn400.Provider = "MSDASQL"
cn400.Properties("data source") = "ODBC_SOURCE"
cn400.Open
oder
cn400.Open "provider=MSDASQL;data source=ODBC_SOURCE"
Getestet habe ich mit :
OS/400 V4R4
CA/400 V3R2 (SNA und TCP/IP)
[Dieser Beitrag wurde von Sven Schneider am 11. Juli 2001 editiert.]
-
Hallo Sven,
habe es auch nochmals probiert. Mit Microsoft ODBC geht es.
Danke
HS
-
Hallo Sven, also mit der 2. Methode alles in eine Zeile zu packen funktioniert es aber ...
jetzt bekomme ich eine Schutzverletzung mit Abbruchund allem was dazu gehört(Dr.Watson)
wenn er folgendes durchführt:
Set cmSQL.ActiveConnection = cn400
cmSQL.CommandText = "SELECT * FROM QIWS.QCUSTCDT "
cmSQL.CommandType = adCmdText
cmSQL.Prepared = True
Set rsSQL = cmSQL.Execute ***hier brucht er dann ab !!!
Haste noch ne Idee ?
Danke
Bye
HoScHiE
Similar Threads
-
By Kilianski in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 22-11-06, 15:23
-
By jjagi in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 07-07-06, 08:29
-
By Kirsten Steer in forum Archiv NEWSboard Events
Antworten: 0
Letzter Beitrag: 15-06-06, 07:46
-
By Kilianski in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 22-03-06, 08:17
-
By Spoldo in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 06-05-05, 10:48
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks