![]() |
Datenbank: Access-Datenbank • Zugriff über: Access
Wert in Datenbank schreiben
Liste der Anhänge anzeigen (Anzahl: 1)
Servus Leute!
Gerade bin ich damit beschäftigt, ein kleines Delphi-Schulprojekt zu erstellen. Es handelt sich hier um einen Vokabeltrainer. Wenn man eine Vokabel richtig bzw. falsch hat, sollte dies in einer Datenbank vom Programm aus, vermerkt werden. Ich habe eine Prodezur erstellt, welche mir sagt, ob die eingegeben Vokabel richtig oder falsch sind, wie ihr hier sehen könnt:
Delphi-Quellcode:
procedure TForm1.Loesungpruefen();
var Faktor : integer; begin if edit1.text = Adoquery1.fieldvalues['Fremdsprache'] then begin img_true.visible := true; img_false.visible := false; Faktor := 1; AdoQuery1.Edit; Adoquery1.fieldvalues['Bewertung'] := Adoquery1.fieldvalues['Bewertung'] + Faktor; adoquery1.Post; adoquery1.Next; deutsch(); end else begin If Messagedlg(adoquery1.fieldvalues['Deutsch'] + ' heißt auf Englisch ' + adoquery1.fieldvalues['Fremdsprache'], mtConfirmation,[mbok], 0) = mrok then begin img_true.visible := false;; img_false.visible := true; Faktor := -3; AdoQuery1.Edit; Adoquery1.fieldvalues['Bewertung'] := Adoquery1.fieldvalues['Bewertung'] +Faktor; adoquery1.Post; adoquery1.Next; deutsch(); end; Ich habe diese Funktion mehrmals kontrolliert und konnte den Fehler nicht ausfindig machen. Die Funktion will mir einfach nichts in die Datenbank schreiben. Ich hoffe, dass ihr mir hier weiterhelfen könnt. Danke schonmal im Voraus für eure Mühen Christoph [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: Wert in Datenbank schreiben
Das sieht soweit richtig aus.
Du solltest FieldByName benutzen...
Delphi-Quellcode:
Wie sehen deine Connection-Einstellungen aus?
procedure TForm.Loesungpruefen;
var Faktor : integer; Save : boolean; begin Save:=false; if Edit1.Text = AdoQuery.FieldByName('Fremdsprache').AsString then begin img_true.visible := true; img_false.visible := false; Faktor := 1; Save := true; end else begin if Messagedlg(AdoQuery.FieldByName('Deutsch').AsString + ' heißt auf Englisch ' + AdoQuery.FieldByName('Fremdsprache').AsString, mtConfirmation, [mbOK], 0) = mrok then begin img_true.visible := false;; img_false.visible := true; Faktor := -3; Save := true; end; end; if Save then begin AdoQuery.Edit; AdoQuery.FieldByName('Bewertung').AsInteger := AdoQuery.FieldByName('Bewertung').AsInteger + Faktor; AdoQuery.Post; AdoQuery.Next; deutsch; end; end; |
Re: Wert in Datenbank schreiben
Servus Omata!
Danke für die rasche Antwort. - Nun geht's :-D :-D :-D Anbei noch für dich der Delphi-Code meiner Connection-Einstellungen:
Delphi-Quellcode:
Danke nochmals für die rasche unkomplizierte Hilfe
function tform1.DatenverbindungHerstellen(): boolean;
var Provider, DataProvider, DataSource: string; begin Provider := 'MSDataShape.1'; DataProvider := 'Microsoft.Jet.OLEDB.4.0'; DataSource := extractfilepath(application.ExeName) + 'vokabel.mdb'; if fileexists(DataSource) then begin if ADOConnection1.Connected then ADOConnection1.Close; ADOConnection1.ConnectionString := 'Provider=' + Provider + ';Data Provider=' + DataProvider + ';Data Source=' + DataSource; try ADOConnection1.Connected := true; result := true; except result := false; end; end else begin result := false; end; end; Grüße Christoph |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz