# In Access neue Datensätze in verschiedene Tabellen gleichzeitig einfügen!



## danisan (10. April 2004)

Hallo Leute,

ich habe da ein kleines Problem mit meiner SQL-Abfrage in Access.
Ich möchte in meine relationale DB neue Datensätze anlegen.
Dafür brauche ich den INSERT INTO Befehl.
Allerdings sollen die neuen Datensätze in verschiedene Tabellen gleichzeitig
eingefügt werden.
Ich bekomme den Code einfach net gebacken.  
Ständig erhalte ich eine Fehlermeldung bei folgendem Code:


```
INSERT INTO Artikel (Artikelname) 
VALUES (Kekse); 
INSERT INTO Wareneingang (Stückzahl) 
VALUES (1000);
```

Entweder kommt die Fehlermeldung über ein fehlendes Simikolon oder es ist eins zuviel.
Wäre schön, wenn mir jemand helfen könnte.
Die richtige Reihenfolge der verknüpften Tabellen halte ich dabei schon ein.

Danke im Voraus


----------



## vop (13. April 2004)

Es fehlen dir nur ein paar Anführungszeichen:
Probier mal

INSERT INTO Artikel (Artikelname) 
VALUES ('Kekse'); 

Der Spaltenname Stückzahl enthält Umlaute. Daher kann es sein, dass du auch den in Anführungszeichen setzen mußt.
INSERT INTO Wareneingang ('Stückzahl') 
VALUES (1000);

vop


----------



## danisan (13. April 2004)

@vop

Hallo,
oh Mann, du hast mich auf eine Idee gebracht.
Das hatte ich noch net ausprobiert,
aber leider besteht das Problem immer noch.
Nun setze ich schon die Hochkommas und verwende
mehrere INSERTS, aber dennoch wird über die
Semikola gemeckert.

Wenn ich ein Semikolon nach der ersten Insert-Anweisung
setze, kommt die Fehlermeldung: "Zeichen nach Ende der
SQL-Anweisung gefunden!"

Das ist doch sehr merkwürdig. Oder?
Aber ohne die Semikolon kann ich die Befehle doch net
voneinander trennen oder?

LG
Dani


----------



## stpimi (13. April 2004)

Wenn Du mit Access arbeitest, musst Du den SQL-String mittels Execute-Methode übergeben:

strSQL = "INSERT INTO ...."
DbEngine(0)(0).Execute (strSQL)

Mfg, Michael


----------



## danisan (13. April 2004)

Hi Michael,

Ja, das habe ich zunächst auch gedacht.
Aber da wird dann ein gültiger INSERT Befehl erwartet.
strSQL müsste ich vorher deklarieren.
Das mache ich in VB.net.

Du musst wissen, wenn ich die Abfrage erstelle, nehme ich
die ganz normale Entwurfsansicht und wechsel dann in SQL-Ansicht.
Dort kann ich nur mit:

```
Insert into table1(spaltenname).....
```

beginnen, sonst ist es net zulässig.
Kannst du mir vielleicht sagen, warum dann der Fehler mit dem
Semikolon auftritt?

LG
Dani


----------



## uwebaer (19. April 2004)

Hi,
versuche es doch mal mit einen "go" twischen den Anweisungen.

INSERT INTO Artikel (Artikelname) 
VALUES (Kekse); 
go;
INSERT INTO Wareneingang (Stückzahl) 
VALUES (1000);

MfG Uwe


----------



## danisan (22. April 2004)

@uwebaer

Danke, das hat schon geholfen.
Aber bei mir klappt das alles net.
Werde morgen nochmal meinen Dozenten fragen,
weil wir dort über SQL-Befehle reden werden.
Vielleicht kann er mir das sagen.
Weiss langsam net mehr weiter.
Aber vielleicht hat er noch einen Tip.

Also, vielen Dank für die Müh.
LG
Dani


----------

