Einzelnen Beitrag anzeigen

shmia

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

Re: EVariantError! - Kann mir mal ganz schnell einer helfen?

  Alt 19. Sep 2005, 10:55
Das Feld ART_NUM wird wohl ein numerisches Feld sein.
Du gibst bei Locate aber einen String ein.
Normalerweise ist dies zulässig; die VCL wandelt intern von String nach Integer.
Sollte die Variable s2 allerdings nicht umgewandelt werden, kommt es zu einem Fehler.
Besser so:
Delphi-Quellcode:
procedure Tdatasearch.Button1Click(Sender: TObject);
var s1: String;
artnum : integer;
begin
s1 := Edit1.Text;
try
  artnum := StrToInt(Edit2.Text);
except
  on E:Exception do
  begin
     Edit2.Setfocus; // Focus auf fehlerhaftes Feld
     // aussagekräftige Fehlermeldung bilden
     // und zwar ohne die orginale Message zu zerstören
     E.Message := 'Artikelnummer ist falsch'#13#10+E.Message;
     raise;
  end;
end;

if CheckBox1.Checked = true then
begin
  if CheckBox2.Checked = true then
  begin
   if DataModule4.Tabelle.Locate('ART_NAME;ART_NUM', VarArrayOf([s1, artnum]), [loPartialKey]) then
Andreas
  Mit Zitat antworten Zitat