Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
684to688
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
684to688
684to688
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro problem name

Makro problem name
20.10.2005 14:38:01
Caroline
Hallo experten, habe diesen code um daten von access nach excel zu bringen. Dann bekomme ich gleich am anfang einen fehler beim kompilieren!

Sub DBZugriff()
Dim cn         As Connection
Dim rs         As Recordset
Dim SQLString  As String
Dim xx         As Worksheet   ' das Ziel-Tabellenblatt in Excel
Dim i          As Integer
Dim j          As Integer
Const DBPfad = "J:\Projects\Vertrieb\EBY-S-IT-Projekt\Datenbank\Archiv Datenbank.mdb"
Set xx = Worksheets("Tabelle1")  ' das Ziel-Tabellenblatt in Excel
'  Die datenbank öffnen
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & DBPfad
.Open
End With
'  Definieren was geholt werden soll - hier alles
SQLString = "SELECT db1daten.* FROM db1daten"
Set rs = New ADODB.Recordset
rs.Open SQLString, cn, adOpenDynamic, adLockReadOnly
'  Die Feldnamen der Datenbanktabelle in die erste Zeile der Exceltabelle "Tabelle2" 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

gehört hier am anfang meine access DB rein? dann habe ich den fehler beim kompilieren nicht mehr, dafür öffnet sich ein
Fenster mit den namen Makro. hier muss dann wohl ein makro name rein? Aber welcher?
lg caro und danke an alle!!!!!

Sub DBZugriff(db1daten)
Dim cn         As Connection
Dim rs         As Recordset
Dim SQLString  As String
Dim xx         As Worksheet   ' das Ziel-Tabellenblatt in Excel
Dim i          As Integer
Dim j          As Integer
Const DBPfad = "J:\Projects\Vertrieb\EBY-S-IT-Projekt\Datenbank\Archiv Datenbank.mdb"
Set xx = Worksheets("Tabelle1")  ' das Ziel-Tabellenblatt in Excel
'  Die datenbank öffnen
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & DBPfad
.Open
End With
'  Definieren was geholt werden soll - hier alles
SQLString = "SELECT db1daten.* FROM db1daten"
Set rs = New ADODB.Recordset
rs.Open SQLString, cn, adOpenDynamic, adLockReadOnly
'  Die Feldnamen der Datenbanktabelle in die erste Zeile der Exceltabelle "Tabelle2" 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

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro problem name
20.10.2005 15:09:05
Galenzo
das habe ich doch schonmal gesehen - hast du das nicht vor ein zwei Wochen gefragt?
Ich sage ja, der SQL-String ist falsch!
Versuche doch mal: SQLString = "SELECT * FROM db1daten"
Viel Erfolg!
AW: Makro problem name
20.10.2005 15:20:20
caroline
hallo, ja das stimmt!
haben uns schon mal gesprochen!
also ich habe gerade den SQL String ausgebessert und es öffnet sich ein fenster Makro!
was nun?
tausend dank für deine hilfe
lg caro
AW: Makro problem name
20.10.2005 15:16:58
GerdZ
Hallo Caroline,
wenn der Fehler aus der Meldung "Benutzerdefinierter Typ nicht definiert" besteht, fehlen vermutlich unter Extras-Verweise die Verweise auf die Microsoft ActiveX Data Objects Library und Recordset Library.
Gruß
Gerd
Anzeige
AW: Makro problem name
20.10.2005 15:21:41
caroline
hallo gerd, das habe ich schon gemacht! und es öffnet sich mein geliebtes Makro fenster! da komme ich nicht weiter! lg
AW: Makro problem name
20.10.2005 15:26:04
GerdZ
Hallo Caroline,
das Fenster öffnet sich, weil das mit "Sub DBZugriff(db1daten)" definierte Makro nur mit einem Parameter, der dem Makro dann unter db1daten zur Verfügung steht, gestartet werden kann. Ändere die Definition auf "Sub DBZugriff()", dann kommt das Fenster nicht mehr.
Gruß
Gerd
AW: Makro problem name
20.10.2005 15:35:30
caroline
ja stimmt! aber jetzt bekomme ich : fehler beim kompilieren! :-((
AW: Makro problem name
20.10.2005 15:21:09
ede
hallo caroline,
kommt mir auch sehr bekannt vor.
ist es dir möglich mal deine access-datenbank (verkleinerter dateninhalt der tabelle db1daten) bereitzustellen.
bitte vor dem downloaden die datei umbennen in Archiv Datenbank.txt
gruss
Anzeige
AW: Makro problem name
20.10.2005 15:23:44
caroline
hi ede! das geht leider nicht, da zu groß! lg
AW: Makro problem name
20.10.2005 15:33:30
caroline
könntet ihr mir ev. sagen, was da immer für ein seltsames fenster MAKRO aufgeht? das wär lieb! danke! lg
AW: Makro problem name
20.10.2005 15:33:34
caroline
könntet ihr mir ev. sagen, was da immer für ein seltsames fenster MAKRO aufgeht? das wär lieb! danke! lg
AW: Makro problem name
20.10.2005 15:39:26
caroline
so ihr lieben, habe das geändert, was ihr meintet! nur der haken lässt sich nicht machen, da unter extras verweise das verweise nicht anzuklicken ist! warum? und dann konnt noch gleich am anfang fehler beim kompilieren. lg

Sub DBZugriff()
Dim cn         As Connection
Dim rs         As Recordset
Dim SQLString  As String
Dim xx         As Worksheet   ' das Ziel-Tabellenblatt in Excel
Dim i          As Integer
Dim j          As Integer
Const DBPfad = "J:\Projects\Vertrieb\EBY-S-IT-Projekt\Datenbank\Archiv Datenbank.mdb"
Set xx = Worksheets("Tabelle1")  ' das Ziel-Tabellenblatt in Excel
'  Die datenbank öffnen
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & DBPfad
.Open
End With
'  Definieren was geholt werden soll - hier alles
SQLString = "SELECT * FROM db1daten"
Set rs = New ADODB.Recordset
rs.Open SQLString, cn, adOpenDynamic, adLockReadOnly
'  Die Feldnamen der Datenbanktabelle in die erste Zeile der Exceltabelle "Tabelle2" 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

Anzeige
AW: Makro problem name
21.10.2005 11:46:27
Galenzo
das "Verweise" ist nicht anklickbar, da du dich noch im "Haltemodus" befindest.
Das heißt, das Makro ist angehalten. Diesen haltemodus mußt du erst mit "Stop" beenden (das Icon mit dem blauen Quadrat)
Ich habe den Code getestet und er funktioniert.
Voraussetzung ist allerdings der Verweis auf eine Bibliothek
"Microsoft ActiveX Data Objects 2.x Library"
(Versionsnummer sollte egal sein, am besten die neueste)
Leider kann ich dir nicht sagen, was das mit dem seltsamen Makrofenster auf sich hat.
Viel Erfolg!
AW: Makro problem name
24.10.2005 10:34:58
caro
hi galenzo, danke für deine hilfe!
endlich klappt alles! lg caro
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige