Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
664to668
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
664to668
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datenübertragung VBA Code

Datenübertragung VBA Code
12.09.2005 09:30:15
caro
hallo,kennt jem. einen VBA code, wie ich automatisiert Daten aus Access nach Excel bekomme? sagen wir von spalte zu spalte, o.ä.!
leider kann ich vba nicht, aber für diese sache brauch ich einen code, da das ganze sonst nicht AUTOMATISIERT klappt! vielen vielen dank schon mal, eure caroline

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

Betreff
Datum
Anwender
Anzeige
AW: Datenübertragung VBA Code
12.09.2005 11:55:43
Manfred
Hallo Caroline,
Der Zugriff auf Datenbanken ist prinzipiell komplex. Ich habe Dir trotzdem einen Code programmiert, der dir helfen sollte. Probier doch mal folgenden Code aus:

Sub DBZugriff()
Dim cn As Connection
Dim rs As Recordset
Dim SQLString As String
Dim xx As Worksheet
Dim i As Integer, j As Integer
Set xx = Worksheets("Tabelle1")
Const DBPfad = "D:\Meinordner\MeineDatenbank.mdb"  '<-- Hier dein DBPfad und DBname
'Die datenbank öffnen
Set cn = New ADODB.Connection
With cn
'    .Provider = "Microsoft.Jet.OLEDB.3.51"  'für Access 95/97
.Provider = "Microsoft.Jet.OLEDB.4.0"   'für Access 2000 und höher
.ConnectionString = "Data Source=" & DBPfad
.Open
End With
'Definieren was geholt werden soll - hier alles
SQLString = "SELECT MeineDBTab.* FROM MeineDBTab" '<-- Hier deine Datenbanktabelle !!
Set rs = New ADODB.Recordset
rs.Open SQLString, cn, adOpenDynamic, adLockReadOnly
'Die Feldnamen der Datenbanktabelle in die erste Zeile der Exceltabelle "Tabelle1" schreiben
For j = 0 To rs.Fields.Count - 1
xx.Cells(1, j + 1) = rs.Fields.Item(j).Name
Next
'Jetzt alle Sätze holen und in die Exceltabelle schreiben
i = 1
rs.MoveFirst
Do While rs.EOF = False
i = i + 1
For j = 0 To rs.Fields.Count - 1
If IsNull(rs.Fields.Item(j).Value) = False Then
xx.Cells(i, j + 1) = rs.Fields.Item(j).Value
End If
Next
rs.MoveNext
Loop
rs.Close
cn.Close
End Sub

Kopiere diesen Code in die Entwicklungsumgebung von VB, und ändere den DBPfad und den Tabellennamen ( die Tabelle dieser DB, die kopiert werden soll) !!
Ganz wichtig :
In der Entwicklungsumgebung von Excel-VBA mußt Du unter "Extras" - "Verweise" den Haken in Microsoft Active X Data Objects 2.8 Library setzen. Dies ist wichtig, damit die
ADO-Befehle für den Zugriff auf die Datenbank verstanden werden. Sonst läuft das
Programm nicht !!!
Gruß Manfred
Anzeige
AW: Datenübertragung VBA Code
12.09.2005 12:58:23
caro
mein gott das ist ja wahnsinn!
vielen dank manfred!
dass du dir wg mir solche arbeit machst!
hätt ja nicht gedacht, dass so so ein langer code wird!
ich hab ja leider null ahnung von VBA, aber das hier sieht schon krass aus! 10000000 dank!!!!!
kopieren soll ich das ganze in die entwicklungsumgebung von excel, oder? ok, ich versuch es mal und meld mich dann wieder! und nochmals vielen vielen dank!!!! echt klasse von dir!!
AW: Datenübertragung VBA Code
12.09.2005 13:41:56
caro
also, hab jetzt alles so gemacht wie du es geschrieben hast, nur wie swchaut das denn aus, wenn ich den tabellenname da eingeb? was genau muss ich da eingeben? schon klar, das was kopiert werden soll, aber in welcher stilistischen form? kannst du mir da mal irgendein bsp. aufschreiben, dass ich so ca weis wie es aussieht? daaaaanke
Anzeige
AW: Datenübertragung VBA Code
12.09.2005 14:10:20
Manfred
Hallo Caroline,
Mit SQLString= "..." wird prinzipiell immer auf eine Datenbanktabelle zugegriffen.
SQL Ist eine standartisierte "Zugriffs-"Sprache für Datenbanken. Damit können auch Datenzugriffe auf anderen Datenbanktypen als Access wie zb. ORACLE, Server-DB etc.
realisieert werden. Der einfachste Zugriff ist in meinem Beispiel verwenden:
SQLString= "SELECT Tabellenname.* FROM Tabellenname"
Es muß der Tabellenname zweimal im SQLString angegeben werden. Die Angabe von ".*" hinter dem ersten Tabellennamen sagt aus, daß alle Feldnamen dieser Tabelle gewählt werden.
Tabellenname ist die Tabelle in der Datenbank von der Daten geholt werden sollen.
Beispiel:
Angenommen es existiert eine Datenbanktabelle mit Namen "Adressen" so müßte der SQLstring lauten:
SQLstring="SELECT Adressen.* FROM Adressen"
Gruß Manfred
Anzeige

156 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige