Office: Excel-Tabelle per VBA auslesen und in Access Tabelle übertragen

Helfe beim Thema Excel-Tabelle per VBA auslesen und in Access Tabelle übertragen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, habe folgende Frage: ich habe ein Access-Formular "Importformular". In dieses habe ich eine Excel-Tabelle eingefügt. In dieser Tabelle sind... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Markus_Figge, 9. November 2008.

  1. Excel-Tabelle per VBA auslesen und in Access Tabelle übertragen


    Hallo,

    habe folgende Frage:

    ich habe ein Access-Formular "Importformular". In dieses habe ich eine Excel-Tabelle eingefügt. In dieser Tabelle sind die folgenden Felder: Position, Menge, Text, Einheitspreis, Gesamtpreis. In der ersten Zeile der Tabelle steht "Import_Anfang", in der letzten Zeile "Import_Ende".

    Jetzt möchte ich gerne mit einem Button (btn_Import) die Daten auslesen und in einer Tabelle "Import_Test" schreiben. Dabei soll in einer Schleife von "Import_Anfang" bis "Import_Ende" alles ausgelesen werden.

    Ich habe keine Ahnung von Excel bzw. einer gezielten Ansprache der Felder, daher diese Frage. Kann mir jemand helfen?

    :)
     
    Markus_Figge, 9. November 2008
    #1
  2. Moin,

    reicht dir das hier als Ansatz? Oder brauchst du noch mehr Hilfe?
     
    J_Eilers, 10. November 2008
    #2
  3. Hallo,

    probier es einmal mit dieser Anweisung:

    DoCmd.TransferSpreadsheet acImport, 8,"Bestelldaten", "D:\Daten\Bestelldaten", True, ""

    Wobei das erste "Bestelldaten" die Zieltabelle in Access und der Beispielpfad die Angabe zur Quelldatei(Excel) ist.

    Gruß EW
     
  4. Excel-Tabelle per VBA auslesen und in Access Tabelle übertragen

    Moin Jan,

    habe probiert, diesen Code einzubauen und anzupassen, funktioniert leider nicht. Kann ich auch eine Excel-Tabelle, welche direkt in meinem Formular als Objekt eingefügt ist, benutzen? Irgendwas passiert bei der Ausführung des Codes auch, aber die Tabelle "Test" wird nicht angelegt bzw. beschrieben.

    Hier der Code:
    Private Sub btn_import_Click()
    Dim appXLS As Excel.Application
    Dim wbkXLS As Excel.Workbook
    Dim wksXLS As Excel.Worksheet
    Dim rs As DAO.Recordset
    Dim Spalte As Long
    Dim SpalteAkt As Long
    Dim Zeile As Long
    Dim ZeileAkt As Long
    Dim i As Long


    '//Excelinstanz öffnen
    Set appXLS = New Excel.Application
    Set wbkXLS = appXLS.Workbooks.Open("E:\Offerte20054953.XLS")
    Set wksXLS = wbkXLS.Worksheets("Angebot")

    '//Recordset öffnen
    Set rs = DBEngine(0)(0).OpenRecordset("Test", dbOpenDynaset)

    Zeile = 1
    Spalte = 1

    '//Zeilenanzahl ermitteln
    While Len(Nz(wksXLS.Cells(Zeile, 1), "")) > 0
    Zeile = Zeile + 1
    Wend

    '//Spaltenanzahl ermitteln
    '//Zeilenanzahl ermitteln
    While Len(Nz(wksXLS.Cells(1, Spalte), "")) > 0
    Spalte = Spalte + 1
    Wend

    ZeileAkt = 1

    '//Daten an das Recorset übergeben
    While ZeileAkt < Zeile
    SpalteAkt = 1
    rs.AddNew
    For i = SpalteAkt To Spalte
    rs.Fields(SpalteAkt - 1) = wksXLS.Cells(ZeileAkt, SpalteAkt)
    SpalteAkt = SpalteAkt + 1
    Next i
    rs.Update
    ZeileAkt = ZeileAkt + 1
    Wend

    wbkXLS.Close
    appXLS.Quit
    rs.Close
    Set wksXLS = Nothing
    Set wbkXLS = Nothing
    Set appXLS = Nothing
    Set rs = Nothing

    End Sub

    Darüber hinaus ist nach Starten des Codes die Excel-Tabelle (Offerte...) schreibgeschützt, was mache ich falsch?
     
    Markus_Figge, 11. November 2008
    #4
  5. Die Schreibschutz kommt, weil der Code nicht richtig beendet wird. Dazu einfach mal den Taskmanager öffnen und Excel dort abschiessen.

    Und hier musst du nach deiner Anfangs- und Endzeile suchen, damit du weißt, welchen Bereich du importieren willst:

    Code:
     
    J_Eilers, 11. November 2008
    #5
  6. Geht immer noch nicht. Frage: die Anzahl der Spalten muss ja nicht abgefragt werden, da fix...sollte ich diese Schleife rausnehmen oder ggf. manuell eingeben, wieviele es sind? Warum werden keine Daten in die Tabelle "Test" geschrieben? Muss ich den Pfad anders deklarieren?
     
    Markus_Figge, 11. November 2008
    #6
  7. Wenn du weißt um welche Zeilen und Spalten es sich handelt, kannst du die beiden Schleifen davor rausnehmen und folgendes verwenden:

    Code:
    Die Spalten in Excel müssen mit den Spalten in Access übereinstimmen.
     
    J_Eilers, 11. November 2008
    #7
  8. Excel-Tabelle per VBA auslesen und in Access Tabelle übertragen

    Die Methode mit DoCmd.TransferSpreadsheet acImport, 8,"Bestelldaten", "D:\Daten\Bestelldaten", True, "" funktioniert grundsätzlich (danke dafür an EW), jetzt noch eine Frage:
    Kann ich auch Daten aus einem ungebundenen OLE-Feld, in welches ich die entsprechenden Zeilen und Spalten mittels Copy und Paste einfüge, auslesen bzw. wie müsste ich dieses ansprechen (analog zu D:\Daten\Bestelldaten), das würde mein Problem endgültig und vor allem benutzerfreundlich lösen. Danke im Voraus für die schnelle Hilfe !!!
     
    Markus_Figge, 11. November 2008
    #8
Thema:

Excel-Tabelle per VBA auslesen und in Access Tabelle übertragen

Die Seite wird geladen...
  1. Excel-Tabelle per VBA auslesen und in Access Tabelle übertragen - Similar Threads - Excel Tabelle VBA

  2. Array aus Excel Tabelle einlesen Word VBA

    in Microsoft Excel Hilfe
    Array aus Excel Tabelle einlesen Word VBA: Hallo, ich benötige in einer Word Datei die Werte einer Excel Datei. Ich würde gerne eine Spalte als Array einlesen. Wie das Array ein lesen in Excel geht weiß ich, aber wie schaffe ich den...
  3. Dynamische Tabellen mit automatischer Aktualisierung

    in Microsoft Excel Hilfe
    Dynamische Tabellen mit automatischer Aktualisierung: Hallo in die Runde! Vorab schon mal vielen Dank für alle Mühen und die Hilfe! Ich habe folgendes Anliegen: Ich habe eine Geräteliste als Excel Datei mit einigen verschiedenen Tabellenblättern...
  4. (Excel) Dynamische Tabelle, VBA, fehlende Formatierung?

    in Microsoft Excel Hilfe
    (Excel) Dynamische Tabelle, VBA, fehlende Formatierung?: Liebe Experten, Gefilterte Daten sollen in ein Listobject übertragen werden. Für das Listobject habe ich ein Template angelegt, dass alle Formatierungen (u.a. bedingte Formatierung etc.) enthält....
  5. Dynamische Excel-Tabelle nach Word übertragen mit VBA

    in Microsoft Excel Hilfe
    Dynamische Excel-Tabelle nach Word übertragen mit VBA: Hallo Zusammen, ich bin neu hier und habe folgende Problemstellung: Ich bekomme quartalsweise eine (dynamische) EXCEL-datei mit folgendem Aufbau: Überschriften: Name Vorname PersNr spalte4...
  6. [VBA] Excel Tabelle via Bookmark nach Word + Größe an Fenster anpassen

    in Microsoft Excel Hilfe
    [VBA] Excel Tabelle via Bookmark nach Word + Größe an Fenster anpassen: Hallo zusammen, kennt jemand einen Kniff, wie ich eine aus Excel kopierte Range (inkl. Formatierung, jedoch ohne Verknüpfung) an die Stelle eines Bookmarks in einem Word-Dokument als neue Tabelle...
  7. [Excel, VBA] Daten aus Excel-Bereich in Word Tabelle einfügen

    in Microsoft Excel Hilfe
    [Excel, VBA] Daten aus Excel-Bereich in Word Tabelle einfügen: Hallo zusammen, ich stehe im Augenblick vor folgendem Problem. Habe in einem Excelsheet einen Bereich (5 Spalten, 2 Zeilen) mit Daten, dessen Inhalt ich gerne in ein Word-Dokument in eine...
  8. VBA Excel in mehrere teilen nach Kostenstelle

    in Microsoft Excel Hilfe
    VBA Excel in mehrere teilen nach Kostenstelle: Hallo liebe Office Community, ich bin mit VBA nicht so bewandert und habe folgenden "Auftrag"... Eine Excel Datei aus SAP soll aufgeteilt werden nach Kostenstelle. Sprich für jede Kostenstelle...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden