Hab folgenden Code aus der Recherche...

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Hab folgenden Code aus der Recherche... von: Peter W
Geschrieben am: 11.03.2005 16:44:59

... übernohmen und er funzt leider nicht.

Servus,

Hab versucht mir per Selbsthilfe zu helfen und den Code zu verstehen, leider stopt er bereits bei Set ADOC mit dem Fehler Benutzerdefinierter Typ nicht definiert.
Hoffe mir kann jemand helfen, mit einer kurzen Erklärung zum Code wäre mir ebenfalls geholfen, danke.

Private Sub CommandButton7_Click()
Dim ADOC As ADODB.Connection
Dim DBS As ADODB.Recordset
Dim s As String
Dim Pfad As String
Dim i As Integer
ChDir ThisWorkbook.Path
Set ADOC = New ADODB.Connection
With ADOC
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Open "Kunden.mdb"
End With
Set DBS = New ADODB.Recordset
With DBS
.Open Source:="Kunden", _
ActiveConnection:=ADOC, _
CursorType:=adOpenKeyset, _
LockType:=adLockOptimistic
i = 2
Sheets("DB2").Activate
If Not .EOF Then
Do While Not .EOF
Cells(i, 1).Value = DBS!Kundennummer
Cells(i, 2).Value = DBS!Firma
Cells(i, 3).Value = DBS!Straße
Cells(i, 4).Value = DBS!Hausnummer
Cells(i, 5).Value = DBS!PLZ
Cells(i, 6).Value = DBS!Ort
Cells(i, 7).Value = DBS!Telefon_geschäftlich
Cells(i, 8).Value = DBS!Fax_geschäftlich
Cells(i, 9).Value = DBS!E_Mail_geschäftlich
Cells(i, 10).Value = DBS!Vorname
Cells(i, 11).Value = DBS!Name
Cells(i, 12).Value = DBS!Straße_privat
Cells(i, 13).Value = DBS!Hausnummer_privat
Cells(i, 14).Value = DBS!PLZ_privat
Cells(i, 15).Value = DBS!Ort_privat
Cells(i, 16).Value = DBS!Telefon
Cells(i, 17).Value = DBS!Fax
Cells(i, 18).Value = DBS!E_Mail
Cells(i, 19).Value = DBS!Übernachtungen
Cells(i, 20).Value = DBS!Umsatz_Hotel
Cells(i, 21).Value = DBS!letztes_Zimmer
Cells(i, 22).Value = DBS!Umsatz_Gaststätte
Cells(i, 23).Value = DBS!Gegesen
Cells(i, 24).Value = DBS!Getrunken
Cells(i, 25).Value = DBS!Sonstiges
i = i + 1
.MoveNext
Loop
Else
MsgBox "Datensatz nicht gefunden"
End If
.Close
End With
ADOC.Close
Set DBS = Nothing
Set ADOC = Nothing
End Sub


MfG

Peter
Bild


Betrifft: AW: Hab folgenden Code aus der Recherche... von: Hajo_Zi
Geschrieben am: 11.03.2005 17:20:42

Hallo Peter,

bist Du Sicher das davor nicht noch was Stand? So in der Art

Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type


Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.




Bild


Betrifft: AW: Hab folgenden Code aus der Recherche... von: Peter W
Geschrieben am: 11.03.2005 17:29:43

Servus,

ne ich bin einfach nur doof, sinn des ganzen war excel Daten nach acces auszulesen,
nur leider muss man halt lesen können.
In dem Forumsbeitrag (s.u.) ging es um das importieren von acces Daten nach excel und nicht umgekehrt.
Na gut dann muss ich wohl weitersuchen, danke trotzdem.

MfG

Peter

https://www.herber.de/forum/index.htm?ttp://www.herber.de/forum/archiv/212to216/t215264.htm


Bild


Betrifft: AW: Hab folgenden Code aus der Recherche... von: Peter W
Geschrieben am: 11.03.2005 18:37:58

Servus,

ich muss nochmal nerven, hab jetzt folgenden Code aus dem Buch von Bernd Büsko und er meldet schon wieder den selben Fehler :( Ich checks jetzt echt nicht hab den Code 1zu1 übernommen (die fields sind natürlich geändert, aber soweit kommt er ja eh nicht, bleibt wieder in Zeille 1 hängen).

Hat jemand ne Idee, Danke.

Private Sub CommandButton7_Click()
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase("C:\Dokumente und Einstellungen\H. Muster\Desktop\Excel Anwendungen\Kunden.mdb")
Set rs = db.OpenRecordset(Name:="DB2", Type:=dbOpenDynaset)
With rs
i = 2
.AddNew
.fields("Kundennummer").Value = Cells(i, 1)
.fields("Firma").Value = Cells(i, 2)
.fields("Straße").Value = Cells(i, 3)
.fields("Hausnummer").Value = Cells(i, 4)
.fields("PLZ").Value = Cells(i, 5)
.fields("Ort").Value = Cells(i, 6)
.fields("Telefon_gesch").Value = Cells(i, 7)
.fields("Fax_gesch").Value = Cells(i, 8)
.fields("E_Mail_gesch").Value = Cells(i, 9)
.fields("Vorname").Value = Cells(i, 10)
.fields("Name").Value = Cells(i, 11)
.fields("Straße_privat").Value = Cells(i, 12)
.fields("Hausnummer_privat").Value = Cells(i, 13)
.fields("PLZ_privat").Value = Cells(i, 14)
.fields("Ort_privat").Value = Cells(i, 15)
.fields("Telefon").Value = Cells(i, 16)
.fields("Fax").Value = Cells(i, 17)
.fields("E_Mail").Value = Cells(i, 18)
.fields("Übernachtungen").Value = Cells(i, 19)
.fields("Umsatz_Hotel").Value = Cells(i, 20)
.fields("letztes Zimmer").Value = Cells(i, 21)
.fields("Umsatz_Gaststätte").Value = Cells(i, 22)
.fields("Gegesen").Value = Cells(i, 23)
.fields("Getrunken").Value = Cells(i, 24)
.fields("Sonstiges").Value = Cells(i, 25)
.Update
End With
rs.Close
db.Close
Set rs = Nothing
End Sub


MfG

Peter


Bild


Betrifft: AW: Hab folgenden Code aus der Recherche... von: Tom
Geschrieben am: 11.03.2005 19:48:47

Hallo Peter,

was genau möchtest du tun ? Einen neuen Datensatz an eine bestehende Accesstabelle anfügen ? Wie heisst die Tabelle in Kunden.mdb ? "DB2" ist der Name Excelsheets ?

MfG
Tom


Bild


Betrifft: AW: Hab folgenden Code aus der Recherche... von: Peter W
Geschrieben am: 11.03.2005 20:10:53

Servus,

Tschuldige den etwas unübersichtlichen Post.
Ich würde gerne einen neuen Datensatz in eine bestehende mdb einfügen, der Sheetname aus Excel ist DB2, der aus acces ist tabelle1.

Danke für die Hilfe.

MfG

Peter


Bild


Betrifft: AW: Hab folgenden Code aus der Recherche... von: Tom
Geschrieben am: 11.03.2005 20:56:10

Hallo Peter,

probier es mal so:

Private Sub CommandButton7_Click()
Dim ADOC As New ADODB.Connection
Dim DBS As New ADODB.Recordset
Dim Datei As String
Dim i As Long
Datei = "C:\Dokumente und Einstellungen\H. Muster\Desktop\Excel Anwendungen\Kunden.mdb"
ADOC.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Datei & ";"
DBS.Open "Tabelle1", ADOC, adOpenKeyset, _
adLockOptimistic
i = 2
DBS.AddNew
DBS!Kundennummer = Sheets("DB2").Cells(i, 1)
DBS!Firma = Sheets("DB2").Cells(i, 2)
DBS!Straße = Sheets("DB2").Cells(i, 3)
DBS!Hausnummer = Sheets("DB2").Cells(i, 4)
DBS!PLZ = Sheets("DB2").Cells(i, 5)
DBS!Ort = Sheets("DB2").Cells(i, 6)
DBS!Telefon_gesch = Sheets("DB2").Cells(i, 7)
DBS!Fax_gesch = Sheets("DB2").Cells(i, 8)
DBS!E_Mail_gesch = Sheets("DB2").Cells(i, 9)
DBS!Vorname = Sheets("DB2").Cells(i, 10)
DBS!Name = Sheets("DB2").Cells(i, 11)
DBS!Straße_privat = Sheets("DB2").Cells(i, 12)
DBS!Hausnummer_privat = Sheets("DB2").Cells(i, 13)
DBS!PLZ_privat = Sheets("DB2").Cells(i, 14)
DBS!Ort_privat = Sheets("DB2").Cells(i, 15)
DBS!Telefon = Sheets("DB2").Cells(i, 16)
DBS!Fax = Sheets("DB2").Cells(i, 17)
DBS!E_Mail = Sheets("DB2").Cells(i, 18)
DBS!Übernachtungen = Sheets("DB2").Cells(i, 19)
DBS!Umsatz_Hotel = Sheets("DB2").Cells(i, 20)
DBS!letztes_Zimmer = Sheets("DB2").Cells(i, 21)
DBS!Umsatz_Gaststätte = Sheets("DB2").Cells(i, 22)
DBS!Gegessen = Sheets("DB2").Cells(i, 23)
DBS!Getrunken = Sheets("DB2").Cells(i, 24)
DBS!Sonstiges = Sheets("DB2").Cells(i, 25)
DBS.Update
DBS.Close
ADOC.Close
End Sub


Im VBA-Editor musst du noch einen Verweis setzen:
Gehe in die Menüleiste unter Extras dann Verweise und setze bei
Microsoft ActiveX Data Objects 2.1 Library
einen Haken !

Wenn deine Spaltenbezeichnungen in Access stimmen, müsste es gehen !

MfG
Tom


Bild


Betrifft: Funktioniert perfekt.... von: Peter W
Geschrieben am: 11.03.2005 21:17:25

ein rießen Dankeschön an euch,
hätte ich alleine nie rausbekommen, nochmals Danke.

MfG

Peter


Bild


Betrifft: @Tom von: Peter W
Geschrieben am: 12.03.2005 12:43:33

Servus,

ich darf dich nochmal kurz nerven, ist auch nur ne kurze Nachfrage.
Wie schaff ich es das er wenn es mehrere Zeilen (Datensätze) sind, das alle in acces eingetragen werden ?
Hab folgende Zeilen versucht hinzuzufügen:
i = i + 1
.MoveNext
Loop

Aber schließt mit einem Fehler, hast ne Idee ?
Vorab Danke

MfG

Peter


Bild


Betrifft: AW: @Tom von: Peter W
Geschrieben am: 13.03.2005 12:58:23

Sry leider nicht als offene Frage deklariert.

Vieleicht weis noch jemand Rat, find dazu nichts, danke.

MfG

Peter


Bild


Betrifft: wurde neuer Thread eröffnet von: P@ulchen
Geschrieben am: 15.03.2005 15:06:04




Bild


Betrifft: AW: Hab folgenden Code aus der Recherche... von: bst
Geschrieben am: 11.03.2005 20:20:58

Auch Hallo,

Geh im VBA ins Menue Extras-Verweise. Dort bekommst Du ein 'ewig lange' Liste angezeigt.

Such Dir dort "Microsoft ActiveX Data Objects x.y Library" raus und aktiviere die.

Wenns mehrere davon geben sollte, nimm einfach mal die mit der höchsten Versionsnummer.

HTH, Bernd


Bild


Betrifft: Vers. 2.8 funzt leider auch nicht o.w.t von: Peter W
Geschrieben am: 11.03.2005 20:27:58

.


Bild


Betrifft: AW: Vers. 2.8 funzt leider auch nicht o.w.t von: bst
Geschrieben am: 11.03.2005 20:47:10

Hi Peter,

schau mal im Einzelschrittmodus (F8) nach was er jetzt anmeckert.

Bei mir mit xl2000 und ADO Version 2.5 scheint das zu gehen.

Sonst schick mal Deine xls & Deine mdb (10 Datensätze reichen !!) gezipped hierher.

cu, Bernd


Bild


Betrifft: AW: Vers. 2.8 funzt leider auch nicht o.w.t von: Peter W
Geschrieben am: 11.03.2005 20:56:50

Servus,

er meckert immer noch das selbe Benutzerdefinierter Typ nicht definiert.

Anbei die Daten. Danke.

MfG

Peter

https://www.herber.de/bbs/user/19536.zip


Bild


Betrifft: AW: Vers. 2.8 funzt leider auch nicht o.w.t von: bst
Geschrieben am: 11.03.2005 21:22:21

Hi Peter,

Ist das auch das richtige xls-Beispiel ?

Du hast dort DAO drinne, nicht ADO. Hierfür brauchst Du einen anderen Verweis:
Microsoft DAO x.y Object Library.

Übrigens, ich habe hier natürlich die Version 2.EINS nicht 2.5.

cu, Bernd


Bild


Betrifft: AW: Vers. 2.8 funzt leider auch nicht o.w.t von: Peter W
Geschrieben am: 11.03.2005 22:16:36

Servus,

hat sich erledigt, (siehe Post weiter oben) aber vielen herzlichen Dank für die Hilfe :)

MfG

Peter


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Spreadsheet auf UF: Formate einlesen"