ich habe eine vielleicht etwas ungewöhnliche Frage:
In eine Datenbank können von den Anwendern zusätzliche Excel-Tabellen
importiert werden. Diese haben eine festgelegte Spaltenzahl (Anzahl der
Spalten = 2). Ich bin aber leider nicht in der Lage, die Spaltennamen fest
vorzugeben, da diese Tabellen in anderen Arbeitsbereichen des Unternehmens
erzeugt werden.
Im weiteren Verlauf soll nun diese importierte Excel-Liste in eine leere
Acess-Tabelle (mit von mir fest definierten Feldbezeichnungen) kopiert
werden.
Nun hätte ich zwei Ansätze, zu denen mir aber jeweils die Lösung fehlt:
a) Kopieren der Tabelle spaltenweise - also irgendwie unabhängig von den
Spalten- / Feldnamen. "Spalte 1 ist immer Spalte 1, egal wie diese in Excel
benannt ist".
b) Umbenennen der Spalten in der importieren Excel-Liste, so dass die
Bezeichnungen beim anschließenden Kopiervorgang identisch sind.
Wie kann ich per VBA die Feldnamen einer Tabelle in Access umbenennen???
Ich kenne den alten Spaltennamen (der Excel-Tabelle) nicht, weiß nur, dass
in meiner Access-Anwendung nach dem Importvorgang z.B. Spalte 1 immer S1 und
Spalte 2 immer S2 heißen soll.
Danke für jeden Tipp.
Gruß
Andreas
b) = Umbenennen geht z.B. per DAO:
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = CurrentDb
Set tdf = db!DeineTabelle
tdf.Fields(0).Name = "S1"
tdf.Fields(1).Name = "S2"
oder du lässt das Umbenennen bleiben, d.h. lässt die letzten zwei Zeilen
hier im Bsp weg, und veranstaltest a) = führst eine Anfügeabfrage
mit egal welchen Feldnamen aus:
CurrentDb.Execute _
"INSERT INTO Zieltabelle ( S1, S2 )" & _
" SELECT " & tdf.Fields(0).Name & ", " & tdf.Fields(1).Name & _
" FROM " & tdf.Name
--
Servus
Karl
****************
Access-FAQ: http://www.donkarl.com /// http://www.donkarl.com?NEK
.NET-Entwickler-Konferenz für Accessler 20./21.3.2010