AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Feldwert in DBGrid prüfen
Thema durchsuchen
Ansicht
Themen-Optionen

Feldwert in DBGrid prüfen

Ein Thema von FrankBrin · begonnen am 21. Jul 2009 · letzter Beitrag vom 21. Jul 2009
Antwort Antwort
FrankBrin

Registriert seit: 8. Mär 2005
Ort: Oppenweiler
105 Beiträge
 
Delphi 2007 Enterprise
 
#1

Feldwert in DBGrid prüfen

  Alt 21. Jul 2009, 08:57
Datenbank: MDB • Zugriff über: ADO
Hallo zusammen,
habe ein ganz profanes Problemchen.
Habe eine kleine AdressenDB in MSAccess. Zeige nun über TADOQuery, DataSource und einem DBGrid die Daten an. In der letzten Spalte steht das Geschlecht (m/f). Diese Spalte prüfe ich beim ColExit auf Inhalt = f oder m.
Nun ist es so, daß immer wieder der Wert '' zurückgegeben wird.

Meine Frage: Warum?

Habe hier ein bischen Codefragmente:

Delphi-Quellcode:
procedure TFrmAddrList.DGdAddrListColExit(Sender: TObject);
var myDate : TDate;
    myStr : String;
begin
  if (DSrcAddrList.State = dsEdit) or (DSrcAddrList.State = dsInsert) then begin
    //Geschlecht prüfen
    if (DGdAddrList.SelectedIndex = 6) then begin
      myStr := LowerCase( DSrcAddrList.DataSet.FieldByName( 'Gender').AsString);
      if (myStr = 'f') or (myStr = 'm') then begin
        DSrcAddrList.DataSet.FieldByName( 'Gender').AsString := MyStr;
      end else begin
        Application.MessageBox( 'Ein Mensch kann nur (m)ann oder (f)rau sein. Bitte korrigieren!', 'He Du', MB_OK);
      end;
    end;
  end;
end;

Gruß
Frank

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
Frank Brinschwitz
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Feldwert in DBGrid prüfen

  Alt 21. Jul 2009, 09:37
Hallo,

1. benutze bitte die Delphi-Code-Formatierung.
2. Du benutzt das falsche Event.
Schau mal in der Hilfe unter TDataSet.BeforePost nach


Heiko
Heiko
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Feldwert in DBGrid prüfen

  Alt 21. Jul 2009, 09:43
Du solltest das etwas anderst machen.
Die Prüfung muss am Dataset ansetzen, nicht am DBGrid.
Delphi-Quellcode:
TForm1.Table1BeforePost(Dataset:TDataset);
var
  gender: string;
begin
  gender := AnsiUpperCase(DataSet.FieldByName('Gender').AsString);
  if (gender = '') or not (gender[1]='Mor gender[1]='F') then
    raise Exception.Create('Ein Mensch kann nur (M)ann oder (F)rau sein.'); // oder (Z)witter :-)

  // hier wäre auch die Gelegenheit das M/F als Großbuchstaben zurück aufs Feld zu schreiben
  DataSet.FieldByName('Gender').AsString := gender;
end;
Andreas
  Mit Zitat antworten Zitat
FrankBrin

Registriert seit: 8. Mär 2005
Ort: Oppenweiler
105 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Feldwert in DBGrid prüfen

  Alt 21. Jul 2009, 09:57
Hey vielen Dank für die prompte Hilfe.

War mir ja fast schon klar, das ich mal wieder an der falschen Stelle agiere.

Auf jedenfall tut es jetzt im BeforePost.

Danke nochmals

Frank
Frank Brinschwitz
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz