Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Einzelne Excelfelder an Access-Tabelle anfügen
#1
Hallo liebes Forum,

ich würde gerne einzelne Excel-Datenfelder per VBA nach Access übertragen.
Dabei habe ich schon sehr viele Internet-Beispiele durchforstet, aber leider hat nichts geklappt.
Wobei das aber auch an meinen mäßigen VBA-Kenntnissen liegen wird.

Ich habe bereits ein sehr einfach gehaltenes Tutorial-Beispiel, welches  manuell geschriebene Daten nach Access überträgt.

Sieht so aus (Verweis auf ActiveX Data Objects 6.1 gesetzt):

Code:
Sub Aktionsabfrage()

Dim cn As ADODB.Connection
Dim sql As String
Dim Anzahl As Integer


On Error GoTo Fehler
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\firma.accdb"
cn.Open


sql = "INSERT INTO personen (name,vorname,personalnummer,gehalt,geburtstag) VALUES ('Müller','Gerd',4711,2900,'12.08.1976')"


MsgBox sql
cn.Execute sql, Anzahl

cn.Close

MsgBox "Anzahl geändert: " & Anzahl

Exit Sub

Fehler:
   MsgBox Err.Description


End Sub

...und ich würde jetzt ganz gerne, einzelne Felder aus der Exceltabelle nach Access übertragen.
Also quasi VALUES (range("A2:F2")) --> Access-Tabelle.

 Kann mir da vielleicht jemand weiterhelfen?

Gruß
Alex
Antworten Top
#2
Ich habe Dir hier mal eine Beispiel-Excelmappe eingestellt.

Versuche mal den Code nazuvollziehen und baue eine Access-Datei auf in der es eine Tabelle mit dem Namen "PERSON" gibt und in der es diese 5 Felder mit den entsprechenden Feldtypen gibt:

1. Die Felder Name,Vorname,PNR sind vom Feldtyp varchar bzw. nvarchar 'habe ich jetzt einfach mal so angenommen
2. Das Feld GEHALT ist vom Feldtyp FLOAT, bzw. Double
3. Das Feld GEBURTSDAUM ist vom Feldtyp DATUM

Zudem muss diese Access-Datei in einem Verzeichnis abgespeichert werden und diesen Pfad inkl. Dateinamen musst Du im Code

PfadZurAccessDatei =

angeben. Befindet sich diese Datei z.B. auf dem laufwerk C: und dort im Unterordner "Daten" und heißt die AccessDatei "PERSONENDB.ACCDB", dann würde der Pfad so lauten:

PfadZurAccessDatei ="C:\DATEN\PERSONENDB.ACCDB"

Leider kann ich den Code nicht testen in Ermangelung von Access auf diesem Rechner an dem ich gerade sitzen. Evtl. könntest Du eine Access-Datei erstellen und diese hier hochladen, dann könnte man das ganze noch etwas testen.

Excel_ueber_ADO_in_Access_Daten_speichern-002.xlsm ist die korrigierte Fassung. Da war noch ein Fehler im Code...


Angehängte Dateien
.xlsm   Excel_ueber_ADO_in_Access_Daten_speichern.xlsm (Größe: 20,09 KB / Downloads: 1)
.xlsm   Excel_ueber_ADO_in_Access_Daten_speichern-002.xlsm (Größe: 20,1 KB / Downloads: 3)
---           Seid nett und helft einander :100:           ---
---   denn die Liebe ist die größte Kraft im Universum    ---
- Lest die Werke von Jakob Lorber und Gottfried Mayerhofer -
Antworten Top
#3
Thumbs Up 
Danke für die prompte Antwort JereMaia.
Ich werde mir das reinziehn, sobald ich etwas Luft hab.
Vielen Dank und LG!!!
Antworten Top
#4
Ich habe ein paar Flüchtigkeitsfehler ausgebessert, dann hatt's funktioniert.
!!!BESTEN DANK NOCHMAL!!!  :05:
Antworten Top
#5
Super!
---           Seid nett und helft einander :100:           ---
---   denn die Liebe ist die größte Kraft im Universum    ---
- Lest die Werke von Jakob Lorber und Gottfried Mayerhofer -
Antworten Top
#6
Oder:


PHP-Code:
Sub M_snb()
    sn Sheet1.Cells(6,1).Resize(, 5)
    c00 "INSERT INTO personen (name,vorname,personalnummer,gehalt,geburtstag) VALUES ('"

    With CreateObject("ADODB.Connection")
        .Provider "Microsoft.ACE.OLEDB.12.0"
        .connectionstring ThisWorkbook.Path "\firma.accdb"
        .Open
        
.Execute c00 Join(Application.Index(sn0), "','") & "')"
    End With
End Sub 
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste