Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1300to1304
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mal Verbindung Oracle DB

mal Verbindung Oracle DB
27.02.2013 10:10:00
Snewi
Guten Morgen,
ich habe folgende Abfrage:

Sub Daten()
Dim rs
Dim strSQL As String
Dim strSheet As String
Dim strZelle As String
Dim iCols As Integer
Datenbank.DBConnect
strSheet = "Mon"
strZelle = "A2"
strSQL = "SELECT * FROM Tabelle "
Set Datenbank.ArcRecSet = Datenbank.ArcConnection.Execute(strSQL)
With Datenbank.ArcRecSet
For iCols = 0 To .Fields.Count - 1
Cells(1, iCols + 1).Value = .Fields(iCols).Name
Next
Range(Cells(1, 1), Cells(1, .Fields.Count)).Font.Bold = True
Sheets(strSheet).Range(strZelle).CopyFromRecordset Datenbank.ArcRecSet
End With
Datenbank.ArcRecSet.Close
Set Datenbank.ArcRecSet = Nothing
Datenbank.DBClose
End Sub
Die Connection habe ich im Modul Datenbank definiert:

Option Explicit
Public ArcConnection As New ADODB.Connection
Public ArcRecSet As New Recordset
Public Sub DBConnect()
ArcConnection.Open "ARCH", "aa", "aa", -1
End Sub
Public Sub DBClose()
ArcConnection.Close
Set ArcConnection = Nothing
End Sub
Kann ich das so überhaupt machen?
Bekomme immer eine Fehlermeldung!
Gruß

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Keine Antwort dort, keine hier...
27.02.2013 11:29:45
EtoPHG
Hallo,
Ich hab dir hier bereits geantwortet und keine weitere Reaktion erhalten. Jetzt einfach einen neuen Thread zu eröffnen, empfinde ich als unhöflich.
Gruess Hansueli

AW: ...mit hier war
27.02.2013 11:34:10
Snewi
Ja du hast recht hatte die Antwort als Feststellung gesehen und habe versucht dann die ADODB Zugriff zu realisieren und nicht über einen MS-Treiber! Das hat ja soweit alles gut funktioniert! Jetzt geht es eher darum, Die Connection immer wieder global zu nutzen !
Ich wollte nicht unhöflich sein! Ist denn jetzt noch eine Frage von deiner Seite her offen?
Gruß

Anzeige
Wo/Wann kommt die Fehlermeldung...
27.02.2013 12:58:18
EtoPHG
Hallo,
Bitte genauer spezifizieren auf welcher Codezeile die Fehlermeldung auftaucht und wie sie genau lautet.
Das hier
ArcConnection.Open "ARCH", "aa", "aa", -1
scheint mir unvollständig. Wo ist z.B. der Provider ?
Ein typischer ConnectString auf oracle_DB's, auf die ich (per ADODB) zugreife lautet bei mir etwa so:
DRIVER={Oracle in OraClient11g_home1};
SERVER=?ServerName?;
UID=?Username?;
PWD=?Password?;
DBQ=?DBServer?;
DBA=W;APA=T;EXC=F;FEN=T;QTO=T;
FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;
BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;
CSR=F;FWC=F;FBS=64000;TLO=O;
Gruess Hansueli

Anzeige
AW: Wo/Wann kommt die Fehlermeldung...
27.02.2013 13:25:25
Snewi
Über den Verweis Microsoft ActiveX DataObjects 2.7 Libary kennt Excel doch alle Parameter die es für die VErbindung braucht! Die Connection klappt auch!
Der Fehler passiert bei

Set Datenbank.ArcRecSet = Datenbank.ArcConnection.Execute(strSQL)
Hier kommt die Meldung ORA 01013 Der Benutzer hat Abbruch des aktuellen Vorgangs angefordert!
?`
Gruß

CommandTimeout
27.02.2013 14:01:04
EtoPHG
Hallo Snewi,
ADODB hat eine default CommandTimeout property, die auf 30 Sekunden gesetzt ist.
Liefert dein SQL innert dieser 30 Sekunden keine Daten, bricht der SQL mit der genannten Fehlermeldung ab. Versuch es mal mit dem Einsetzen des Befehls nach dem .Open
ArcConnection.CommandTimeout = 600
d.h., dass der SQL nun 10 Minuten Zeit hat, den Recordset zurückzuliefern!
Gruess Hansueli

Anzeige
AW: CommandTimeout
27.02.2013 14:12:57
Snewi
Perfekt das war es :-)
Gruß

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige