Excel Tabelle an Access Tabelle anfügen

starbug

Erfahrenes Mitglied
Hallo,

mal wieder ne Frage. Wie kann ich eine Excel Tabelle an eine bestehende Access Tabelle anfügen. Ich weiss das es diese Insert Into Anweisung gibt aber ich hab die jetzt Immer nur mit einzelnen Datensätzen gesehen und nich mit einer ganzen Tabelle. Und man muss ja auch die Transferspreadsheet Methode nutzen oder?
 
Mit Transferspreadsheet in eine Temporäre Tabelle schreiben und dann mittels Append-Query an die andere hinzufügen
Append-Query: Eine Abfrage zusammenstellen und dann den Type Append-Query Auswählen (Ist das Icon mit dem +!). Dann noch die Zeiltabelle Auswählen und bei jedem Feld das Zielfeld angeben.
Dieses kann man dann speichern und aus dem Script aufrufen

Visual Basic:
tempTableName = "temp"
'Import
DoCmd.Transferspreadsheet(...)
'Kopieren
CurrentDb.execute("MyAppendQuery")
'Bereinigen
CurrentDb.Execute("DROP TABLE " & tempTableName)
 
Moin,

ich hatte mich oben falsch ausgedrückt. Ich lade eine Excel Tabelle in die DB und nenne die die Tabelle dann Upload. Jetzt möchte ich die Upload Tabelle an eine andere bestehende Access Tabelle anfügen. Sowas kann man doch auch irgendwie mit SQL machen oder? z.B:

Code:
INSERT INTO bestehende Tabelle
SLECT * FROM Upload
 
Append-Query: Eine Abfrage zusammenstellen und dann den Type Append-Query Auswählen (Ist das Icon mit dem +!). Dann noch die Zeiltabelle Auswählen und bei jedem Feld das Zielfeld angeben.
Dieses kann man dann speichern und aus dem Script aufrufen

Das ergibt dann ein SQL in der Art
SQL:
INSERT INTO [myTabelle] ([Feld 1], [Feld 2])
SELECT [Feld A], [Feld B]
FROM Uploud
 
Zuletzt bearbeitet von einem Moderator:
He he da haste recht stimmt. Das finktioniert auch soweit ganz gut aber jetzt würde ich gerne noch Datensätze suchen und ersetzen. Also ich hab in meiner Access Tabelle z.B. Städtenamen. Ich würde gerne sowas machen wie z.B. suche alle Datensätze in denen Berlin steht und ersetze diese mit den neuen in denen Berlin steht also in etwa so:
Code:
INSERT INTO Tabelle
SELSCT * FROM Upload
WHERE Stadt = Berlin

Allerdings kommt dann bei mir immer ein Eingabefenster dem ich einen Parameter übergeben muss also in diesem Fall Berlin. Aber dann werden die neuen Datensätze nicht ersetzt sondern nur angefügt.
 
Klar, er kennt das Feld Berlin nicht Berlin muss in "" gesetzt werden.
Zudem ersetzt ein INSERT nie, der fügt hinzu. Ersetzen geht mit Update. Oder mit einem DELETE zuerst und dann ein INSERT.
 
Hmm da haste recht. Hier ist mal mein Code zum anfügen:

Code:
Sub DatenAnfuegen()

    Dim sql As String
    
    sql = "INSERT INTO Tabelle SELECT * FROM Upload WHERE Stadt= 'Berlin'"
    DoCmd.RunSQL sql

End Sub

Das geht jetzt.

Hier der Update Code:

Code:
Sub Update()

    Dim sql As String
    sql = UPDATE TabelleSELECT * FROM Uplload WHERE Stadt= 'Berlin'"

End Sub

Hier kommt aber immer die Fehlermeldung: Fehler beim kompilieren. Erwartet Anweisungsende.

Kann ich den Code überhaupt so verwenden?
 
item: Musst du das SQL in "" setzen.

item: Muss nach Tabelle eh ein Leerzeichen, egal ob das dahinter völlig falsch ist oder nicht.

item: Bitte mach mir den Gefallen und informiere dich mal wie ein UPDATE-Query aussehen soll. Einfach den Befehl INSERT durch UPDATE ersetzen ist nicht. Access bietet dir sogar ein Query-Editor an mit dem du ein Updatequery zusammenklicken kannst und Anschliessend in der SQL-Ansicht den Code Rauskopieren kannst.
 
Hallo,

klingt ganz gut was du mir das sagt. Hab jetzt aber noch ne andere Lösung angewendet.
Kann einfach eine bestimmte Tabelle löschen und die andere dann anfügen, das reicht für mich
schon aus
 

Neue Beiträge

Zurück