Office: (Office 2010) Excel to Access Import: Probleme bei der Spaltenzuweisung

Helfe beim Thema Excel to Access Import: Probleme bei der Spaltenzuweisung in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Ich habe bisher eine Import-Funktion von Excel nach Access geschrieben. Das funktioniert mit folgendem Code auch schon ganz gut: Code: Private Sub... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Ulrich_G, 26. März 2013.

  1. Excel to Access Import: Probleme bei der Spaltenzuweisung


    Ich habe bisher eine Import-Funktion von Excel nach Access geschrieben. Das funktioniert mit folgendem Code auch schon ganz gut:

    Code:
    Es werden in beiden Spalten (11 und 12) alle eingetragenen Werte übernommen. Bei den Zeilen bin ich flexibel. Ich schaue von Zeile 8 bis 100 ob Werte vorhanden sind und importiere diese. Nun würde ich auch gerne flexibler bei den Spalten sein. Hier gibt es alleine schon Probleme bei der Zuweisung einer Spaltenbezeichnung der Access Tabelle. Mein Gedanke war:

    Code:
    Klappt so aber leider nicht. Er findet natürlich die Spalte intSpalte nicht. Was mache ich falsch? Und hat meine Idee überhaupt einen möglichen Lösungsansatz?

    Gruß
    Ulrich

    :)
     
    Ulrich_G, 26. März 2013
    #1
  2. Hallo,
    wenn deine Access-Tabelle ausreichend Spalten hat:
    statt
    Code:
    probiere:
    Code:
    Beachte aber, dass der Datentyp in der Excel- und Accesstabellenspalte übereinstimmen sollte!
     
    Marsu65, 27. März 2013
    #2
  3. Hallo,

    ein Problem bei deinem Gedanken ist, dass Access den Feldnamen "rs!IntSpalte" nicht kennt. Du musst dich gedanklich von Excel lösen. In Access sind die "Spalten" mit Namen benannt und nicht mit Spalten- oder Zeilennummern, wie in Excel.

    In Deinem ersten Beispiel weist Du die beiden Zellen 11 und 12 ganz genau der Access Tabelle zu mit rs!name und rs! Strasse.

    Du musst Access schon sagen in welche Felder du die 92 (For intZeile = 8 To 100) Daten schreiben willst.
    Willst Du wirklich 92 mal einen neuen Datensatz in deiner Access Tabelle anlegen und dann das Ganze 19 mal (For intSpalte = 11 To 30) wiederholen, also 1748 Datensätze anlegen?*entsetzt
     
    tracknine, 27. März 2013
    #3
  4. Excel to Access Import: Probleme bei der Spaltenzuweisung

    \@ tracknine
    mir wird nichts anderes übrig bleiben. ich muss eine immer unterschiedliche Datenmenge importieren können. diese kann unterschiedliche viele zeilen und unterschiedlich viele spalten besitzen. ich kenne nur ein maximum. der import ist nur einmalig pro excel tabelle notwendig. danach wird ausschließlich mit der access datenbank gearbeitet. der import kann also ruhig einige zeit in anspruch nehmen. momentan sind es einige sekunden.

    @ Marsu65
    danke dir ... sieht gleich viel besser aus ... hab aber noch einen anderen fehler in der schleife, aber ich denke das krieg ich wieder alleine hin. könnte ich auch als beschriftung der spalten die beschriftung der excel tabelle nutzen? das wäre dann pro spalte jeweils die zeile 7. nur wie passt das in meinem code?

    Gruß
    Ulrich
     
    Ulrich_G, 27. März 2013
    #4
  5. Eine Variante:

    Ich bin Freund der Massendatenverarbeitung, also davon, dass es schnell und einfach geht. Daher probiere ich immer, ob ich die Importdaten als Tabelle zu fassen bekomme (und nicht nur als Masse von Einzelkoordinaten).
    Eine Tabelle kann man dann in geeigneter Form verknüpfen und in Abfragen einbinden zum Anfügen und/oder Aktualisieren der Zieltabelle(n).

    Als Ansatz dazu:
    Code:
    Das rot gekennzeichnete ist sichtbar der Bereich des Arbeitsblattes, den ich als Tabelle nutzen will. Dafür müsste man die passenden Koordinaten finden.
    Habe ich keine nutzbaren Spaltennamen in Excel, setze ich hdr=no (hdr ... Header = Titelzeile) und beschränke den Bereich auf die reinen Daten. In meiner SQL-Anweisung ergeben sich für diese Spalten Ersatzbezeichnungen (F1, F2, F3, ...), so dass dann wieder eine Zuordnung von Excelspalte und Datenbanktabellenfeld über einen Namen möglich ist.
    Wenn man den Bereich per TransferSpreadsheet verknüpft, hat man übrigens die gleichen Effekte.

    So, ist das Verknüpfen gelungen, kann man nun Daten übertragen und da in der Abfrage noch einige Verarbeitungslogik einbringen (Fehlerprüfung, Umformungen, Umgang mit leeren werten u.a.). Da müsste man noch einen Plan haben, was wohin soll.
     
  6. Wenn die Spaltenbezeichnungen im Excel-Tabellenblatt / Spalte 7 mit denen in der Access-Tabelle zu 100% übereinstimmen, kann man auch damit arbeiten.

    Prinzip:
    Code:
    @Eberhard
    aufgrund der Anforderung hinsichtl. der "Spaltenflexibilität" nehme ich an,
    dass die Excel-Tabellen nicht immer den gleichen (Spalten-)Aufbau haben.
     
    Marsu65, 27. März 2013
    #6
  7. \@ Marsu65
    Wir stehen kurz vor dem Durchbruch ;-) . Nun fehlt mir einfach noch eine entscheidente Information. Er liest jetz den Feldnamen aus .... dieser ist z.B. "Max_Wert". Ja und jetz soll er alle Werte dieser Spalte importieren. Nun sagt er natürlich "Element in dieser Auflistung nicht gefunden"

    Meine Spalten in der Tabelle sind momentan SP1 , SP2 usw benannt ... klar weil ich ja nicht weiß was für Bezeichnungen auf mich zukommen.

    Wie schaffe ich nun die richtige Zuordnung?
     
    Ulrich_G, 27. März 2013
    #7
  8. Excel to Access Import: Probleme bei der Spaltenzuweisung

    \@Marsu: Klar. Eine feste Zuordnung einer Excelspalte zu einem Tabellenfeld (inkl. dem Vertrauen, dass die Reihenfolge verlässlich ist) findet aber laut verwendetem Code in beiden Fällen statt. Bei der Abfragelösung würde man diese Zuordnung (bzw. ein Weglassen) nur einmal pro Tabellenblatt vornehmen müssen.

    Eine Lösung würde ich aber auch weniger von einem gezeigten Code ableiten wollen, sondern von einer realen Ausgangssituation (Excelsheet in extremen Varianten) und die Wunschzielsituation (welche Werte in welchen Tabellenfeld).
    @Ulrich_G: Vielleicht könntest Du zwei solche Excelsheets und die Zieltabelle zeigen (als Tabellen, nicht als Bild).
     
  9. Daher schrieb ich ja auch
    Irgendwie muss du Assess schon sagen, welche Excel-Spalte in welcher Access-Spalte landen soll.

    ist etwas Erklärungsbedürftig. *wink.gif*
    Das sind doch nicht grundsätzlich verschiedene Inhalte, die in einer Accesstabelle landen sollen?

    Möglich wäre z.B. eine Zuordnungstabelle mit den Accessspaltennamen anzulegen, denen dann ein Excel-Spaltenname zugeordnet wird.

    So geht's natürlich auch.
     
    Marsu65, 27. März 2013
    #9
  10. Ok ich habe jetzt eine entsprechende Excel Tabelle hochgeladen. Ich will erklären wie andere Varianten aussehen könnte. Die Excel Tabelle wurde bisher als Paradox-Datenbank für Prüfwerte einer Prüfanlage verwendet. Die Prüfanlage verwaltet Prüfrschritte und Messwerte. Der Anwender erstellst sich vollkommen frei einen produktspezifischen Ablauf zusammen.

    Jetz kommen wir zur unbekannten Excel Tabelle. Tsp(1-x) steht für die Teststeps. Die Anzahl ist flexibel.
    Jeder Step besteht auf max. 5 Messungen M(1-x).

    Kurz gesagt .... werden mehr Daten gespeichert, wächst die Tabelle nach rechts um entsprechend mehr Spalten.

    Die Zeilen geben die verschiedenen Prüflinge oder Wiederholungen an.

    Wie der Anwender seinen Prüfschritt bezeichnet ist ihm frei überlassen und kann nicht mehr geändert werden. Eine einheitliche Darstellung gibt es nicht.
    Seine Bezeichnungen wäre in dieser Excel Tabelle z.b. Strom Sensor (LED EIN)

    Diese Werten sollen nun alle in eine Access DB

    Soweit alles klar ?
     
    Ulrich_G, 28. März 2013
    #10
  11. Nein. Eine Zielsituation muss doch auch definiert werden.

    Irgendwelche Daten irgendwie in irgendwelchen Tabellen mit unbekannten Feldnamen ist doch kein Fortschritt, auch wenn diese "Gebilde" sich dann in einer DB befinden. Bösartig könnte man sagen: Importiere ein Bild (Bitmap) von den Daten, dann sind sie auch in der DB.

    Ein Import (nach meiner Definition) hat dann stattgefunden, wenn die Daten unmittelbar (d.h. ohne Umbau des Frontends oder des Backends) durch vorhandene Abfragen, Formulare, Berichte und Codes verarbeitet werden können. Dazu müssen regelmäßig die Daten in ein vorhandenes und geplantes Datenmodell und dessen Tabellen übertragen werden
    Dazu wiederum müsste das Datenmodell vorhanden und vorzeigbar sein.

    Mehr Messungen mögen in einem Excelsheet zu mehr Spalten führen. In einer normalisierten Datenbanktabelle werden sie aber besser als zusätzliche Datensätze mit einigen Rahmeninformationen in zusätzlichen Feldern der Meßwerttabelle erscheinen.
    Und erst dann, wenn die Zielsituation bekannt und festgezurrt ist, kann man sich über Codes zu einem Import (= Überführung von Daten) unterhalten.
     
  12. Das Prüfsystem soll weiterhin mit der Excel Tabelle (Datenbank) arbeiten. Ziel ist es aber anhand der bereits ermittelten Daten verschiedenste Auswertungen erstellen zu können. Klar geht das auch in Excel ... ich will es aber im Access machen, weil es dort wesentlich komfortabler ist.

    Ziel: Bestehende Exceldaten in Access zu importieren und statistische Werkzeuge anwenden. Ich nenne das ein Statistikmodul. Die Werzeuge hierzu sind bereits programmiert und warte nur noch auf eine Datenmenge.

    Zusaztinformationen: Es gibt zu jedem Prüfling eine solche Excel Datei ... von Import zu Import können die Daten ruhig überschrieben werden. Hier werden und sollen keine Daten zusätzlich zur bestehenden Lösung gespeichert werden
     
    Ulrich_G, 28. März 2013
    #12
  13. Excel to Access Import: Probleme bei der Spaltenzuweisung

    Wie gesagt: Dann kannst Du das Datenmodell zeigen, und so etwas wie "Feld nicht gefunden" dürfte dann nicht auftreten.
     
  14. Das Datenmodell beruht auf einer modernen SQL Datenbank und dort ist der Import über ODBC kein Problem gewesen.

    Ich muss nur noch schaffen .... wie bereits geschildert .... die unbekannten Datenmengen und Bezeichnungen in eine Access Tabelle zu importieren. Ich kenne die Ausgangszelle und das Maximum ... der Rest ist variabel
     
    Ulrich_G, 28. März 2013
    #14
  15. Hi,

    die Frage läuft doch darauf hinaus:
    wenn du die Struktur der Zieltabelle zeigen würdest, dann könnte man evtl. einen Vorschlag machen oder dir sagen, dass der Entwurf nicht passt.
    Aber ohne derart wesentliche Details preiszugeben, was erwartest du da?
     
    Anne Berg, 28. März 2013
    #15
Thema:

Excel to Access Import: Probleme bei der Spaltenzuweisung

Die Seite wird geladen...
  1. Excel to Access Import: Probleme bei der Spaltenzuweisung - Similar Threads - Excel Access Import

  2. Import Daten aus Access Abfrage klappt nicht

    in Microsoft Excel Hilfe
    Import Daten aus Access Abfrage klappt nicht: Moin, ich habe ein Problem. Ich habe eine Datenbank in Access mit diversen Tabellen und Abfragen. Jetzt habe ich eine neue Abfrage erstellt und muß das Ergebnis täglich in eine Exceldatei...
  3. Doppelkopf Spielplan (jeder gegen jeden) VBA / Excel / Access

    in Microsoft Excel Hilfe
    Doppelkopf Spielplan (jeder gegen jeden) VBA / Excel / Access: Hallo zusammen *:)* in diesem Forum habe ich bereits zwei Beiträge gefunden, die in die Richtung meines Anliegens gehen - beides passt letzten Endes dann aber leider doch nicht auf meinen...
  4. Access Tabelle mit Excel Daten updaten

    in Microsoft Access Hilfe
    Access Tabelle mit Excel Daten updaten: Hallo zusammen, ich habe eine Excel Arbeitsmappe die ständig aktualisiert wird. Die Spaltennamen stimmen mit den Spaltennamen der Tabelle in Access überein. Jetzt möchte ich gerne einen VBA Code...
  5. Import von Excel-Daten in Access-Tabelle

    in Microsoft Access Hilfe
    Import von Excel-Daten in Access-Tabelle: Hallo, um es gleich vorwegzunehmen, ich bin absoluter Amateur und hänge an folgendem Punkt: Ausgangspunkt: Ich muss einmalig (von Hand, es geht also nicht zwingend um ein VBA-Modul o.Ä., obwohl...
  6. Import Postleitzahl aus Excel in Access Textfeld ohne führende Nullen zu verlieren

    in Microsoft Access Hilfe
    Import Postleitzahl aus Excel in Access Textfeld ohne führende Nullen zu verlieren: Ich habe eine Exceltabelle, in welcher eine Spalte mit Datentyp Postleitzahl (Deutschland) definiert ist. Sie enthält führende Nullen (5 Stellen). Diese Spalte, unter anderen, muss ich in Access...
  7. Unnötige Leerzeichen beim Import aus Excel in Access entfern

    in Microsoft Access Hilfe
    Unnötige Leerzeichen beim Import aus Excel in Access entfern: Hallo, wie kann ich einen Filter setzen um beim Importieren aus einer Excel Datei unnötige Leerzeichen in allen Spalten zu enfernen`? MFG Robby
  8. Import von Zahlen aus Access nach Excel - Problem mit Nullen

    in Microsoft Excel Hilfe
    Import von Zahlen aus Access nach Excel - Problem mit Nullen: Hallo zusammen, ich möchte viele Dateien (also komplette Exceltiefe - 65000 Stück) aus Access importieren. Das funktioniert auch. Die Zahlen werden angezeigt, das Problem ist nur, dass...
  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