Entwickler-Ecke

Datenbanken - Daten einfügen per DBGrid!


peppi - Mi 04.12.02 12:15
Titel: Daten einfügen per DBGrid!
Hallo,

ich möchte in meine Tabelle durch ein DBGrid Daten einfügen lassen. Dabei gibt es eine kleine Schwierigkeit. In dem Grid lasse ich nicht alle Spalten aus der Tabelle anzeigen sondern nur ausgewählte (über die Eigenschaft Columns) ... auf meiner Form habe ich allerdings weitere DBEdit-Felder die die restlichen Daten anzeigen. Über den DBNavigator will ich über INSERT nun Daten einfügen ...im Grid kommt dann auch eine neue Zeile ... allerdings ja nur mit den 3 Spalten ... die restlichen aus der Tabelle dürfen aber nicht NULL sein. Hier will ich die Inhalte aus den DBEdit Feldern eintragen lassen. Aber sobald ich auf die neue Zeile im Grid springe werden die DBEdit-Felder leer ... verständlich aber kann ich das verhindern?

Ich kann die Daten aus dem Grid ja nicht so übernehmen ...da ja wie gesagt die anderen Spalten nicht Null sein dürfen!

Hoffentlich war das jetzt einigermaßen verständlich! :lol:

Vielen Dank schonmal!


UGrohne - Mi 04.12.02 12:21

Ich hab sowas noch nie gemacht, aber ich würde versuchen, mal in der Datenbank bei den Feldern, die Du in die Edits lädst einen Default-Wert reinzumachen.

Oder DU arbeitest mit dem entsprechenden Ereignis ders Navigators (OnInsert vielleicht?) und schreibst dann den gewünschten inhalt in die Edits.

Nur mal son Vorschlag, alles ohne Gewähr. Ich arbeite schon lange nicht mehr mit dem Navigator, weil ich finde, dass er meine Freiheiten einschränkt.

Gruß


peppi - Mi 04.12.02 12:33

Hallo,

erstmal danke für deine Antwort, aber...

mit Default-Werten kann ich nicht arbeiten .. die Werte sind immer verschieden, dafür sollen die DBEdit-Felder genommen werden.

Und eine OnInsert-Funktion gibt es leider beim DBNavigator nicht! :(

Es ist so .. der Nutzer wählte eine Tabelle aus und dann werden die Daten in den DBEdit-Feldern und im Grid angezeigt. Nun soll der Nutzer zu einzelnen Datensätzen noch Ergänzungen hinzufügen können ... aber eben nur zu den 3 im Grid. Die anderen sollen so bleiben wie es in den DBEdit-Feldern steht.


UGrohne - Mi 04.12.02 13:49

Also, ich hab mir das vorher angeschaut und auf dem Weg zur Arbeit Folgendes überlegt (kanns leider net testen):
Es gibt das Event BeforeAction, da überprüfste, ob der Button=nbInsert ist (if). Wenn ja, dann speicherst Du die werte der Edits in Variablen und setzt eine Boolean-Variable auf True; Das letzte ist notwendig, weil es kein AfterAction gibt.

Dann nimmste das Event OnChange der Edit-Felder und wenn die Boolean-Variable True ist, füllste die Edits mit den Variablen-Werten und setzt die Boolean-Var. wieder auf False.

Vll. nur ein Wrkaround aber könnte funktionieren.

Gruß, Uwe


peppi - Mi 04.12.02 14:26

Puh... also das muss ich jetzt erstmal in Ruhe ausprobieren :lol:

Ich melde mich dann vielleicht wieder!!

Dank dir erstmal!!