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

Hab folgenden Code aus der Recherche...

Hab folgenden Code aus der Recherche...
11.03.2005 16:44:59
Peter
... ü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

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hab folgenden Code aus der Recherche...
11.03.2005 17:20:42
Hajo_Zi
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.


AW: Hab folgenden Code aus der Recherche...
11.03.2005 17:29:43
Peter
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
Anzeige
AW: Hab folgenden Code aus der Recherche...
11.03.2005 18:37:58
Peter
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
Anzeige
AW: Hab folgenden Code aus der Recherche...
11.03.2005 19:48:47
Tom
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
AW: Hab folgenden Code aus der Recherche...
11.03.2005 20:10:53
Peter
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
AW: Hab folgenden Code aus der Recherche...
11.03.2005 20:56:10
Tom
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
Anzeige
Funktioniert perfekt....
11.03.2005 21:17:25
Peter
ein rießen Dankeschön an euch,
hätte ich alleine nie rausbekommen, nochmals Danke.
MfG
Peter
@Tom
12.03.2005 12:43:33
Peter
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
AW: @Tom
13.03.2005 12:58:23
Peter
Sry leider nicht als offene Frage deklariert.
Vieleicht weis noch jemand Rat, find dazu nichts, danke.
MfG
Peter
Anzeige
wurde neuer Thread eröffnet
15.03.2005 15:06:04
P@ulchen
AW: Hab folgenden Code aus der Recherche...
11.03.2005 20:20:58
bst
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
Vers. 2.8 funzt leider auch nicht o.w.t
11.03.2005 20:27:58
Peter
.
AW: Vers. 2.8 funzt leider auch nicht o.w.t
11.03.2005 20:47:10
bst
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
AW: Vers. 2.8 funzt leider auch nicht o.w.t
11.03.2005 20:56:50
Peter
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
Anzeige
AW: Vers. 2.8 funzt leider auch nicht o.w.t
11.03.2005 21:22:21
bst
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
AW: Vers. 2.8 funzt leider auch nicht o.w.t
11.03.2005 22:16:36
Peter
Servus,
hat sich erledigt, (siehe Post weiter oben) aber vielen herzlichen Dank für die Hilfe :)
MfG
Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige