Office: (Office 2010) TransferSpreadsheet: Feldnamen ändern sich

Helfe beim Thema TransferSpreadsheet: Feldnamen ändern sich in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, bisher habe ich mit TransferSpreadsheet ein Excel Worksheet nach Acress importiert. Dort habe ich es dann weiterverarbeitet. Die erste Zeile der... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von tschai, 21. August 2011.

  1. TransferSpreadsheet: Feldnamen ändern sich


    Hallo,
    bisher habe ich mit TransferSpreadsheet ein Excel Worksheet nach Acress importiert. Dort habe ich es dann weiterverarbeitet. Die erste Zeile der Excel Tabelle waren die Feldnamen...nun hat der Benutzer einfach mal eine Spaltenüberschrift geändert. Da ich das anscheinend nicht verhindern kann, würde ich gerne die Spaltenüberschriften bzw. in Access dann die Feldnamen für mich zum Weiterverarbeiten ändern.
    Wie kann ich das umsetzen?
    Meine Ideen sind:
    1. das Worksheet ohne die erste Zeile als Spaltenüberschriften nach Access zu importieren, in eine bestehende Tabelle in Access? Geht das? Wird in TransferSpreadsheet nicht immer eine neue Tabelle erzeugt? Oder kann man an eine bestehende was ranhängen? Also Spalte1 an Feld1 etc?
    oder
    2. ich habe eine Tabelle "Feldnamen", in der die Feldnamen stehen. Dann ersetze ich die Feldnamen der Tabelle "Importtabelle" mit dem Inhalt aus der Tabelle "Feldnamen". Wie kann ich das umsetzen?

    Was meint Ihr?
    DANKE!

    :)
     
  2. oder 3. einfach mit dem Spaltenindex arbeiten. Dann bist du vom Spaltennamen unabhängig.
     
    Thomas Braun, 22. August 2011
    #2
  3. Hi,

    du könntest die Quellfeldnamen in einer Abfrage mit deinen gewünschten Feldnamen als Alias bezeichnen:

    Code:
    Nebenbei: wenn der Benutzer die Feldnamen ändert, dann ist ja der Inhalt auch möglicherweise ein anderer. Beispiel: Nachname auf Zuname ist eine inhaltsgleiche Bezeichnung, aber Nachname und Straße sind nicht synonym. Da dürfte auch ein autoamtisches Umbenennen fehlschlagen. "Tannenweg 63" ist kein häufiger Nachname!

    Eine Importlösung, in der die Quellfelder mit den erwarteten Zielfeldern manuell (!) gematcht werden, ist womöglich die bessere Lösung.
     
    Atrus2711, 22. August 2011
    #3
  4. TransferSpreadsheet: Feldnamen ändern sich

    also der Inhalt bleibt gleich...nur hat der Benutzer einfach mal einer spalte, die bisher namenlos war, einen Namen gegeben....
     
  5. SELECT Excelfeld1 AS DeinNeuerFeldname FROM Excelverknüpfung


    das funktioniert doch nur, wenn Excelfeld1 immer den gleichen Namen hat...oder?
     
  6. Hi,

    wenn das eine regelmäßig wiederkehrende Aktion ist, wonach es sich anhört, solltest du dir Gedanken machen, ob du mit so unstrukturierten Daten weiterarbeiten willst.

    "Die Daten bleiben gleich": ja, dieses Mal. Und nächstes Mal?

    "Spaltenindex": ja, der Name ist dann egal. Aber wenn der User die Spaltenüberschriften ändert, dann trägt er da wohl auch andere Daten ein. Siehe Tannenweg-Problem.

    Für Datenimporte sollten Standards vereinbart und dann auch durchgehalten werden. Wenn alles fließen kann, dann ist jeder Import ein neues Abenteuer mit eigenen Tücken. Würde ich mir nicht zumuten.
     
    Atrus2711, 22. August 2011
    #6
  7. Du hast recht....aber leider lässt sich das nicht vermeiden, dass es passiert...
    Dann ist für mich das mit dem Spaltenindex am sichersten.
     
  8. TransferSpreadsheet: Feldnamen ändern sich

    Die Feldnamen könntest du auch durch VBA auslesen lassen, um eine passende SQL daraus zusammenzubauen:

    Code:
    Aber: Auch VBA wird nicht feststellen können, ob ein Feld Zuname, das in Nachname umbenannt wurde, noch dasselbe ist.

    Face it: Namen sind Schall und Rauch. Wer sie ändert, muss neu zuordnen. Wer sie jedesmal ändert, muss jedesmal neu zuordnen. Vereinbare einen Standard, und lehne alles ab, was nicht standardkonform ist. Alles andere ist Voodoo.
     
    Atrus2711, 22. August 2011
    #8
  9. \@tschai: Du könntest folgendes ausprobieren:
    Du verlinkst die Exceltabelle mit TransferSpreadsheet acLink. Dabei gibst Du an, dass keine Feldnamen verwendet werden, musst aber dafür den zu erfassenden Bereich angeben (erste Zeile auslassen wegen der nicht genutzten Feldnamen).

    Dadurch werden für die Exceltabelle Ersatznamen in der Form F1, F2, F3, ... gebildet. Jetzt bist Du in der Lage, aus der verlinkten Tabelle per Anfügeabfrage die Daten in Deine Zieltabelle zu schreiben.
    Dabei musst du natürlich darauf vertrauen, dass sich Reihenfolge und Inhalte der Excelspalten nicht ändern.
     
  10. Ich habe nun diese Idee:
    INSERT INTO Tabelle1
    SELECT Excelimporttabelle1.*
    FROM Excelimporttabelle;

    Nur leider geht das nur, wenn die Feldnamen beider Tabellen gleich sind????
     
  11. \@Eberhard: Verlinken geht...die Daten sollen eingelesen werden.
    Ich weiß immer noch nicht, wie ich die Feldnamen umwandeln soll?
    Ich dachte, es wäre am einfachsten in einem vorhandene Accesstabelle einfach die Daten der Importtabelle anzuhängen...nach dem Schema Feld1 an Feld1 etc...aber wie????
     
  12. Code:
    Die rote Konstante muss mit einer passenden für Deine Version ausgetauscht werden (habe ich nicht parat).
    Sichtbar: "Besitzt Feldnamen" auf False, dafür kann erst ab Zeile 2 gelesen werden.

    Nachtrag: Umgedreht könnte man auch per Automation das Excelblatt öffnen, die "richtigen" Spaltenbezeichner hineinschreiben und dann wie gewohnt importieren.
     
  13. TransferSpreadsheet: Feldnamen ändern sich

    danke! das klappt!
     
  14. Hallo,

    ich würde mich gerne an diese Frage anschließen, weil ich auch genau dieses Problem habe.

    Ich bekomme von einem Lieferanten eine Excel-Datei, die ich in Access importieren möchte. Das Excel enthält Überschriften, die aber einerseits nicht sonderlich aussagekräftig und andererseits auch problematisch/unmöglich als Feldnamen sind (enthalten Punkte, ...).
    Deshalb würde ich gerne entweder die Variante mit dem Spaltenindex verwenden oder - was mir eigentlich noch sympathischer wäre - eine Art Umsetzungstabelle für die Feldnamen und dann entweder beim Import oder vorab direkt im Excel umbenennen. Das wäre auch die angenehmere Lösung, da im Vorfeld nicht feststeht, wie viele Zeilen die Datei hat.

    Könnte mir da vielleicht jemand von euch behilflich sein.
    Damit wäre mir echt geholfen.

    LG Anna
     
  15. Hallo Anna,
    der notwendige Code steht direkt über Deinem Beitrag. Dort musst Du die Feldnamen F1, F2, etc gegen Deine konkreten Feldnamen austauschen. Am besten setzt du diese gleich in eckige Klammern ( [Dein.Feld Name] ).

    HTH
     
    Thomas Möller, 24. Juli 2012
    #15
Thema:

TransferSpreadsheet: Feldnamen ändern sich

Die Seite wird geladen...
  1. TransferSpreadsheet: Feldnamen ändern sich - Similar Threads - TransferSpreadsheet Feldnamen ändern

  2. Access - Listeneintrag per VBA einem Feldnamen zuweisen

    in Microsoft Access Hilfe
    Access - Listeneintrag per VBA einem Feldnamen zuweisen: Hallo, ich möchte die Einträge eines Listenfelds mit einem bestimmten Feldnamen innerhalb einer VBA-Routine verbinden, stosse da aber programmiertechnisch an meine Grenzen... Hintergrund: Für den...
  3. Feldname für Bedingung zusamensetzen

    in Microsoft Access Hilfe
    Feldname für Bedingung zusamensetzen: Hallo Leute Habe ein Formular mit: ungebundenes Textfeld: Text1 Ereignis: Nach Aktualisierung Wenn ich folgendes nutze funktioniert es: If Me!Text1 "" Then Und die funktionieren nicht: Dim...
  4. Bedingte Formatierung abhängig vom eigenen Feldnamen

    in Microsoft Access Hilfe
    Bedingte Formatierung abhängig vom eigenen Feldnamen: Hallo zusammen, ich habe ein Endlosformular für die monatsweise Anzeige von Mitarbeiter-Schichtmodellen. Das bedeutet 31 Textfelder für max. 31 Tage eines Monats, die von "T1" bis "T31" heißen....
  5. Effizienter Import/Export mit TransferSpreadSheet und FileDialog

    in Microsoft Access Hilfe
    Effizienter Import/Export mit TransferSpreadSheet und FileDialog: Hi Leute, das ist meine erste Anfrage hier im Forum, also weist mich bitte darauf hin, falls ich was vergessen habe. Ich nutze Ac2007. Ich habe für ein simples Fakturierungsprogramm in einem...
  6. Access kürzt Memo Datenfelder bei TransferSpreadSheet nach 255 Zeichen

    in Microsoft Access Hilfe
    Access kürzt Memo Datenfelder bei TransferSpreadSheet nach 255 Zeichen: Hallo zusammen, mich beschäftigt seit zwei Tagen ein Problem für das ich keine richtige Lösung finde. Vielleicht hat einer von euch gleiche Probleme oder sogar eine Lösung. Ich möchte über den...
  7. Laufzeitfehler 3125 bei TransferSpreadsheet

    in Microsoft Access Hilfe
    Laufzeitfehler 3125 bei TransferSpreadsheet: Hallo.... ich möchte bestimmte Arbeitsblätter aus Excel nach Access mit TransferSpreadsheet importieren..aber ich bekomme immer den Fehler 3125. Was ist falsch? DoCmd.TransferSpreadsheet acImport,...
  8. TransferSpreadsheet mit Rückfrage?

    in Microsoft Access Hilfe
    TransferSpreadsheet mit Rückfrage?: Hallo, im Forum habe ich schon viel darüber gefunden, aber keine Lösung für folgendes Problem: DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Auskopplung", "test.xls"...
  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