Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
928to932
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
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel und Query (Oracle)

Excel und Query (Oracle)
21.11.2007 08:46:44
chris
Hallo liebe forumsuser,
ich hoffe ihr könnt mir helfen.
Will muss in meinem Excel daten auswerten aus einer Oracle datenbank ...
Leider kenne ich mich nicht aus mit den ganzen befehlnen wie SQLOpen usw...
Ich habe aber hier einen code den ich als anfangscode verwende.
Nur möchte ich etwas woran ich jetzt schon scheitere....
Ich möchte gerne die daten die mir diese abfrage ausgibt in eine Userform und eine Combobox hinzufügen.
Wie schaffe ich das ?
So wie der code jetzt ist gibt er mir die werte in die exceltabelle aus.
Und das ist das was ich nicht möchte.Könnte zwar eine schleife über die werte laufen lassen aber ich denke es könnte einfacher gehen.
Vielen dank.. gruß Chris
databasename = "B_file"
querystring = "SELECT scheinNR FROM K5.P4 WHERE PHASESTATE='3U'"
Chan = SQLOpen("DSN=B_file;DBQ=K5.D;UID=userid;pwd=passw")
SQLExecQuery Chan, querystring
Set Output = Tabelle1.Range("A1")
'hier müsste denke ich stehen
Set Output = UserForm1.cbo_ae_nummer.Value
SQLRetrieve Chan, Output, , , True
SQLClose Chan

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel und Query (Oracle)
21.11.2007 09:24:08
Renee
Hi Chris,
Das könnte mit DAO nach ungefähr diesem Schema funktionieren:

' Achtung: DSN in ODBC-Settings muss vorhanden sein
'          Microsoft DAO 3.6 Object Library wird referenziert
Dim wspDB As Workspace
Dim strConnect As String
Dim conDB As Connection
Dim strSQL As String
Dim rsetTB As Recordset
Dim lRecCnt As Long
Set wspDB = CreateWorkspace("XXWorkspace", "Excel", "", dbUseODBC)
strConnect = ("ODBC;DSN=B_file;DBQ=K5.D;UID=userid;pwd=passw")
Set conDB = wspDB.OpenConnection("MyConName", dbDriverNoPrompt, , strConnect)
strSQL = "SELECT scheinNR FROM K5.P4 WHERE PHASESTATE='3U' "
Set rsetTB = conDB.OpenRecordset(strSQL, dbOpenDynamic)
With rsetTB
If .RecordCount > 0 Then
lRecCnt = lRecCnt + 1
MsgBox "Record Nr. " & lRecCnt & " ScheinNr:" & .Fields(0)
Else
MsgBox "Es sind keine Datensätze vorhanden!"
End If
.Close
End With
conDB.Close
End Sub


GreetZ Renee

Anzeige
AW: Excel und Query (Oracle)
21.11.2007 14:32:13
chris
Super vielen danke werde ich mir morgen gleich mal anschauen.
gebe dann noch mal feedback wen nötig.
Vielen dank

AW: Excel und Query (Oracle)
22.11.2007 07:38:51
chris
Klappt.
Vielen dank

AW: Excel und Query (Oracle) wieder noch offen
22.11.2007 07:50:13
chris
Hallo Renee,
Ich schaffe es nicht eine schleife darüber laufen zu lassen :(
Bekomme zwar angezeigt das der RecordCount = 50 ist aber ich kann nur immer in der msgbox eine nummer nazeigen lassen.
wie schaffe ich das mit einer schleife über alle.? Danke
VieleN dank noch einmal

AW: Excel und Query (Oracle) wieder noch offen
22.11.2007 08:48:00
Renee
Hi Chris,
Na ja, bei deinem Level könnte man auch mal die Hilfe bemühen...
und bei meinem Level hätte frau es halt nicht vergessen dürfen ;-)
Etwas so..

With rsetTB
If .RecordCount > 0 Then
Do While Not .EOF
lRecCnt = lRecCnt + 1
MsgBox "Record Nr. " & lRecCnt & " ScheinNr:" & .Fields(0)
.MoveNext
Loop
Else
MsgBox "Es sind keine Datensätze vorhanden!"
End If
.Close
End With


GreetZ Renee

Anzeige
AW: Excel und Query (Oracle) wieder noch offen
22.11.2007 09:26:00
chris
Na super..
funzt
Und ich habe ewig probiert... aber nicht auf .eof und movenext gekommen.
Danke dir

AW: Excel und Query (Oracle) wieder noch offen
22.11.2007 09:39:00
chris
hallo Renee , dürfte ich vielleicht noch etwas fragen ?
ich merke du kennst dich sehr gut aus.
und zwar habe ich in dieser abfrage momentan angegeben das ich diese daten möchte.
strSQL = "SELECT scheinNR FROM K5.P4 WHERE PHASESTATE='3U' "
Also das bedeutet alle scheinNR in der phasestate 3U
Wie kann ich den code so umstellen das ich nicht nur die in der Phase 3U bekomme sondern alle nummern in dieser "Datenbank scheinNR "
Und noch was gibt es eine möglcihkeit wenn ich den namen dieser datenbank nicht weiß also scheinNR
das ich diese irgendwie auslesen kann ?
Das möchte ich aus dem Grund in der ich nenn es einmal Gesamtdatenbank sind mehere solcher felder
Also es gibt z,.b scheinNR und RegNr und Datum usw...
Gibt es eine möglichkeit auszulesen welche dieser datensätze in der Datenbank K5.P4 vorhanden sind ?
Vieln dank noch einmal.
Und schönen tag !

Anzeige
AW: Excel und Query (Oracle) wieder noch offen
22.11.2007 10:17:53
Harry
Hallo Chris,
alle Datensätze der Tabelle 'K5.P4' , Spalte 'scheinNR' erhältst du mit
strSQL = "SELECT scheinNR FROM K5.P4"
Um die Spaltenbezeichner in den einzelnen Tabellen abzufragen, musst du auf die SYSTABLE und SYSCOLUMNS zurückgreifen. Google mal danach. Eine erste Anleitung findest du unter http://books.google.com/books?id=Q2_OObTYnucC&pg=RA3-PA304&lpg=RA3-PA304&dq=sql+systable&source=web&ots=U0wiTxLl7q&sig=9CEsvWAeLSzO9737NHBtmj_xog8#PRA3-PA306,M1
, Seite 306
Ob es hier Oracle-spez. Besonderheiten gibt, weiß ich allerdings nicht.
Gruß
Harry

Anzeige
AW: Excel und Query (Oracle) wieder noch offen
22.11.2007 14:17:12
chris
danke dir auch vielmals !!
schönen Tag !

AW: Excel und Query (Oracle) wieder noch offen
22.11.2007 11:15:46
Renee
Hi Chris,
Anscheinend brauchst du dringend einen SQL-Kurs, denn in deinen Ausführungen wird alles ein bisschen wild durcheinandergewürfelt.
Die Grundhierarchie ist Datenbank - Table - Column. Recordset bedeutet einen Auszug der Datensätze einer Table(Datei) die in den Columns (Felder) und/oder in den Rows(Datensätze) aufgrund eines Kriteriums eingeschränkt ist.
Wenn Du keine Einschränkung der Rows (alle Datensätze) willst, lass die WHERE clause weg:

"SELECT scheinNR FROM K5.P4"


Wenn Du keine Einschränkung der Columns(alle Felder) willst, lass die ColumnNames weg:


SELECT * FROM K5.P4 WHERE PHASESTATE='3U' 


Wenn Du überhaupt keine Einschränkung willst, lass alles weg:


SELECT * FROM K5.P4


Die Columnnames auszulesen geht, aber dazu musst du mehr über den DB-Aufbau wissen (Physical table, view, materialized view) etc. ...
aber mit dem letzten Befehl kannst du sicher rausfinden was die einzelnen Felder sind. Lass einfach noch einen Loop über die Felder laufen, also in etwa so:


With rsetTB
If .RecordCount > 0 Then
Do While Not (.EOF)
lRecCnt = lRecCnt + 1
For lFx = 0 To .Fields.Count - 1
MsgBox "Record Nr. " & lRecCnt & vbCrLf & _
" FeldNr." & lFx & " Inhalt:" & .Fields(lFx)
Next lFx
.MoveNext
Loop
Else
MsgBox "Es sind keine Datensätze vorhanden!"
End If
.Close
End With


GreetZ Renee
P.S. Diese Codes kann ich nicht testen, da ich deine DB nicht kenne und hier im Moment auch keinen Zugriff auf irgendwelche oracle-DB's habe !

Anzeige
AW: Excel und Query (Oracle) wieder noch offen
22.11.2007 14:16:30
chris
Wow, vielen vielen Dank.
ich bräuchte wirklich mal so eien Kurs.
Mal schauen ob ich was passendes finde.
Vielleicht finde ich auch im Internet eine gute seite zum nachlesen.
Danke dir und schönen Tag !

AW: Excel und Query (Oracle) wieder noch offen
22.11.2007 14:36:00
Renee
Hi Chris,
ich bräuchte wirklich mal so eien Kurs.
Hier klicken, da ist so eien...
GreetZ Renee

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige