mit einer Abfrage Datensätze einfügen

03/01/2009 - 10:29 von Jürgen Körbler | Report spam
Hallo miteinander


Wenn ich 'per Hand' Datensàtze in eine Tabelle einfügen möchte
bekomme ich von A03 eine Zusammenstellung der Fehlermeldungen:
Also 3 Datensàtze konnten wegen Indexverletzungen nicht eingefügt werden.
5 DS konnten wegen Schlüsselverletzungen ...
7 wegen Gültigkeitsverletzung .

(btw: Weiß jemand wie man das genauer bekommt? In welchen Feld?)

Wenn ich nun die Datensàtze mit einer vba-Abfrage einfüge
bekomme ich diese Aussage nicht hin. Nur wie viele DS
eingefügt wurden (q.recordsAffected)
Kann mir jemand sagen wie das besser geht?
Oder wie fügt Ihr DS in eine Tabelle ein wenn mit
Regel Verstößen gerechnet werden muss und ein Index vorhanden ist.





PS
Ich glaube vor einiger Zeit gab es hier schon mal die Frage
wie man den neuen Indexwert von den eingefügten DS zurück erhàlt.
Aber ich finde den Artikel nicht mehr.
Gruss von Jürgen
aus dem kalten Süden
 

Lesen sie die antworten

#1 Thomas Möller
03/01/2009 - 10:46 | Warnen spam
Hallo Jürgen,

Jürgen Körbler schrieb:
Wenn ich 'per Hand' Datensàtze in eine Tabelle einfügen möchte
bekomme ich von A03 eine Zusammenstellung der Fehlermeldungen:
Also 3 Datensàtze konnten wegen Indexverletzungen nicht eingefügt werden.
5 DS konnten wegen Schlüsselverletzungen ...
7 wegen Gültigkeitsverletzung .
(btw: Weiß jemand wie man das genauer bekommt? In welchen Feld?)



in einem solchen Fall erstelle ich mir immer eine oder mehrere Abfragen
um die entsprechenden Datensàtze ausfindig zu machen. Nach was ich dabei
suche ist abhàngig von der Art des Fehlers und von der Zieltabelle.

Die die einzufügenden Daten enthalten z.B. Datensàtze mit leeren
Feldern. Wenn für das entsprechende Feld in der Zieltabelle jetzt die
Eigenschaft "Eingabe erforderlich" auf "Ja" eingestellt ist kommt es zum
Problem.


Wenn ich nun die Datensàtze mit einer vba-Abfrage einfüge
bekomme ich diese Aussage nicht hin. Nur wie viele DS
eingefügt wurden (q.recordsAffected)
Kann mir jemand sagen wie das besser geht?



Wie führst Du die Anfügeabfrage per VBA aus?

Probier mal folgendes:

Dim strSQL As String

strSQL = "INSERT INTO "

CurrentDb.Execute strSQL, dbFailOnError


Wenn Du diesen Code ausführst und es sind nicht einfügbare DS vorhanden
erhàltst Du eine Fehlermeldung. Jetzt kannst Du die Abfrage manuell
ausführen und dann mit weiteren Abfragen nach den Fehlerhaften DS suchen.


Oder wie fügt Ihr DS in eine Tabelle ein wenn mit
Regel Verstößen gerechnet werden muss und ein Index vorhanden ist.



Wenn Du bereits vorher damit rechnest, dass es zum Problem kommt, dann
solltest Du im Vorfeld entsprechende Abfragen laufen lassen, die nach
den problematischen DS suchen. Erst wenn diese Abfragen keine DS finden
führst Du die Anfügeabfrage aus.


HTH
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen