Oracle-DB unter VBA öffnen

Ich möchte von Excel 97 mit VBA auf eine Oracle-DB zugreifen und den Inhalt einiger Zellen hineinschreiben. Leider habe ich keine Ahnung wie. Wäre nett, wenn mir jemand ein Beispiel geben könnte. Ich dachte mir an etwas in der Art:

  • Datenbankverbindung aufbauen
  • SQL-Anweisung ausführen
  • Datenbankverbindung schließen

Hi,
zunächst mußt Du den ODBC-Treiber installieren und eine Datenquelle anlegen. Am Einfachsten ist dann der Zugriff, wenn Du die betreffende(n) Oracle-Tabelle(n) verknüpfst; dann kanst Du sie al lokale Tabellen ansprechen.
Hier ist ein Beispiel für den Zugriff:

Sub Test()
 Dim dbs As Database, rst As Recordset
 Dim strSQL As String

 ' Verweis auf aktuelle Datenbank holen.
 Set dbs = CurrentDb
 strSQL = "SELECT \* FROM TestTab ORDER BY TestCol"
 Set rst = dbs.OpenRecordset(strSQL)
 Do While Not rst.EOF
 ' Lesen
 Debug.Print rst!TestCol
 ' oder schreiben:
 rst!TestCol = "BlaBla"
 ' Update schreibt die veränderten Daten zurück
 rst.Update
 rst.MoveNext
 Loop
 rst.Close
 Set dbs = Nothing
 Debug.Print "Fertig."
End Sub

Gruß

J.

Hi,
zunächst mußt Du den ODBC-Treiber installieren und eine
Datenquelle anlegen. Am Einfachsten ist dann der Zugriff, wenn
Du die betreffende(n) Oracle-Tabelle(n) verknüpfst; dann kanst
Du sie al lokale Tabellen ansprechen.
Hier ist ein Beispiel für den Zugriff:

Danke erstmal für die schnelle Antwort. Wenn ich das richtig verstanden habe, bezieht sich das auf meinen lokalen Rechner. Dann wird das so wohl nicht funktionieren.

Es geht darum, daß unsere Mitarbeiter einige Daten in eine Excel-Tabelle einpflegen (ein Programm, daß sie kennen und mit dem sie mehr oder weniger gut umgehen können) und anschließend auf einen Button in der Excel-Tabelle klicken. Daraufhin startet ein Makro, daß die Daten dann in die Oracle-DB schiebt. Dies betrifft einige tausend Mitarbeiter, bei denen das dann funktionieren muß.

Wenn das also wirklich nur lokal läuft, wird es leider nicht funktionieren. Gibt es dann eine andere Möglichkeit?

Danke erstmal für die schnelle Antwort. Wenn ich das richtig
verstanden habe, bezieht sich das auf meinen lokalen Rechner.
Dann wird das so wohl nicht funktionieren.

Ich Depp schreibe Dir Dinge für Access97, Excel habe ich übersehen.

zunächst mußt Du den ODBC-Treiber installieren und eine
Datenquelle anlegen.

Dieser Part stimmt.

Es geht darum, daß unsere Mitarbeiter einige Daten in eine
Excel-Tabelle einpflegen (ein Programm, daß sie kennen und mit
dem sie mehr oder weniger gut umgehen können) und anschließend
auf einen Button in der Excel-Tabelle klicken. Daraufhin
startet ein Makro, daß die Daten dann in die Oracle-DB
schiebt. Dies betrifft einige tausend Mitarbeiter, bei denen
das dann funktionieren muß.

OK, im Prinzip läuft das genauso, nur daß Du die Tabellen nicht verknüpfen kannst (gibt es in Excel nicht), sondern als SQL-Befehl ausführen muß.

Mit Excel kenne ich mich aber so was von nicht aus, da muß ich leider passen. Das hatte ich schon mal gemacht, aber da ich die Datei nicht mehr habe, kann ich mir das nicht abgucken - vielleicht weiss-wer-mehr darüber?

Gruß

J.

servus,

wie du deine daten per sql schreibst weist du hoffentlich?

wie du dich per vba mit ner datenquelle verknüpfts

erstmal verweise setzen für ado!!!
und dann
dim cn as adodb.connection
set cn = new adodb.connection

cn.Open „provider=msdaora;data source=DEINEDATASOURCE;user id=“ & form1.txtbox1.Text & „;password=“ & form1.txtbox2.Text

sofern du deine daten nicht vorher abrufst(ansonsten könntest du es ganz lässig mit nem recordset updaten) must du ein command-objekt verwenden…

und dann etwa so

dim cm as new adodb.command
cm.commandtext = "insert into tabelle values… usw)
cm.execute
(und nicht vergessen vorher festzuzlegen, was für ein commandobjekt es ist… weis jetzt grad den befehl nicht…
.–> adcmtext … oder so)

viele grüße

rasta

Hi,
Danke für den Hinweis. Und das geht alles unter Excel? Sieht ja genauso aus wie bei Access!

Werde ich bei Gelegenheit ausprobieren…

Gruß

J.