ausgeblendete spalten nicht importieren
hallo miteinander,
hätte da mal eine frage.
ich hab eine exceltabelle mit werten
die überschriften zu den spalten steht erst in zeile 7, die zeilen 1-6 sind ausgeblendet.
ich würde jetzt gern die ersten 4 spalten nach access exportieren. ich hab also in access ein begrüßungsformular das mit hilfe eines Buttons jeweils diese Excel Tabelle importieren soll. Jetzt hab ich das Problem, dass mir die ausgeblendeten Spalten mit Importiert werden und dadurch die Spaltenüberschriften leer bleiben.
Gibt es eine Möglichkeit, dass beim Import die ausgeblendeten Spalten überganzen werden und der Text in der 7 also ersten sichtbaren Zeile als Spaltenüberschrift verwenden wird?
danke für eure hilfe
gruß
morpheus
Antwort schreiben
Antwort 1 von Teddy7 vom 24.07.2019, 12:19 Options
Das geht meiner Meinung nach nur, wenn Du den Import mit VBA-Programmierung machst.
Gruß
Teddy
Hallo Teddy
das mach ich auch.
ich importier mir die excel tabelle per vba.... hab den code bei nem button hinterlegt.
wie muss ich das ganze denn schreiben das er mir ausgeblendete spalten nicht mitübernimmt?
danke und gruß
morpheus
Antwort 3 von Teddy7 vom 24.07.2019, 13:26 Options
Wie sieht der Code denn aus ? Ich meine nämlich nicht, einer Transfer-Befehl per VBA abzusetzen, sondern die ExcelDatei direkt anzusprechen und Zelle für Zelle zu übernehmen.
Ist nicht so ganz trivial. Da sollte man schon wissen, was man tut.
Jedenfalls ist es dabei natürlich einfach mit Zeile 8 anzufangen.
DoCmd.TransferSpreadsheet acImport, 5, "tblAnwendungsliste", "D:\Lokale Daten\Anwendungsliste2.xls", True
Ich möchte das ganze in die Tabelle Anwendungsliste importieren. Die Ausgangsdatei heißt Anwendungsliste2.
gruß
morpheus
Antwort 5 von Teddy7 vom 24.07.2019, 15:11 Options
ich glaube nicht, dass Du so die ersten Zeilen überspringen kannst.
Möglich ist natürlich auch, auf diesem Wege die ganze Datei in eine Zwischentabelle zu bringen und erst mit einer Tabellenerstellungsabfrage daraus (ab der gewünschten Zeile) die echte Tabelle aufzubauen.
Ansonsten macht man das so, dass man im Access ein Excel-Objekt definiert, die Exceldatei zuordnet und öffnet und dann jede einzelne Zelle ansprechen und übernehmen kann.
Insbesondere macht man das so, wenn man erst mal prüfen will, ob der Schlüssel schon in der Tabelle existiert und ggf. nur einzelne Felder aus diesem datensatz ändern will.
Antwort 6 von Marie vom 25.07.2019, 05:51 Options
Ich würde vorschlagen eine Importspezifikation zu erstellen, dann kannst Du beliebige Felder überspringen
Gruß marie
danke euch 2.
habs jetzt so gelöst, dass ich eine neue tabelle anhand der tabellenerstellungsabfrage gestaltet habe.
vielen danke nochmal
@marie so früh schon so fleißig am helfen :-) echt klasse
gruß
morpheus
hätte noch kurz eine frage...
ich hab in der excel tabelle manche wörter verlinkt.
kann ich das irgendwie hinkriegen das die links mit importiert werden?
gruß
morpheus
Antwort 9 von Teddy7 vom 25.07.2019, 10:34 Options
wie meinst Du das ? Als hyperlink ?
Dann mußt Du die Spalte als hyperlink definieren.
Alles andere ist nur bei Übernahme per VBA-Programmierung (s.o.) machbar.
naja wenn dann muss ich das wohl über ein makro lösen, ich lese ja nach wie vor die datei über ein makro aus und bastel dann die ausgelesene tabelle anhand einer tabellenerstellungsabfrage so um, dass sie richtig aussieht.
gruß
morpheus
als anmerkung:
die links stehen grundsätzlich in spalte A,
in spalte A steht immer der Name einer Anwendung
Das Problem: Nicht jeder Name ist verlinkt.
Jetzt wär es schön, wenn dann nur die Namen, welche in Excel einen Link hinterlegt haben in Access auch als Link angezeigt werden und der entsprechende Link mit übernommen wird.
Namen, welche in Excel keine Link hinterlegt haben, sollten dann nur als Text dargestellt werden.
gruß
morpheus
ich hab mir jetzt folgendes überlegt.
ich würde gern ein makro über die exceltabelle laufen lassen, dass mir dann in der 5 spalte den jeweiligen hyperlink ausliest fals einer vorhanden is.
for i = 1 to 65536
Worksheets(1).Cells(i, 5).Value = Worksheets(1).Cells(i,1).Hyperlinks(1).Address
Next i
alles schön und gut...
aber wie muss ich die abbruchbedingung schreiben, wenn eben kein hyperlink enthalten ist also z.b. nur ein text drin steht? weil bei meiner variante da bricht er mir ab, sobald er eine zelle erreicht hat, in der kein hyperlink enthalten ist.
wäre dankbar für eine hilfe
gruß
morpheus