05. februar 2006 - 17:48Der er
9 kommentarer og 1 løsning
Søgning på kun en del af navnet - Hvordan?
Hejsa :)
Jeg har en lille database (Paradox 7) med navn, efternavn og tlf.nr.
Jeg har forsøgt at lave en søg funktion ved hjælp af en knap og et edit felt, det er også lykkedes mig men, der skal man søge på hele For Navnet, ellers finder den ikke noget.
Eks.: Hvis jeg nu skriver Ma i mit Edit felt, så vil jeg gerne have den til at finde det første navn der starter med Ma og alle de andre navne der starter med Ma skal så vises i en DBGrid.
Den skal søge på Navnet lige meget om man skriver med store eller små bogsataver.
Hvordan får man den til det? :)
Indtil videre har jeg nedenstående kode på min knap :
*****KODE START*****
procedure TForm4.BitBtn1Click(Sender: TObject); begin if Form4.Table1.Locate('Navn på opskrift',Edit1.Text,[]) then begin // Fundet showmessage('Fundet'); end else begin // Ikke fundet showmessage('Ikke Fundet'); end;
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Glemte lige at nævne at % tegnet efter Edit1.Text gør at du vil finde alt der starter med f.eks. Ma, du kan også sætte % foran og så finde alt hvad der slutter med teksten eller både foran og bagved hvis teksten bare skal være et eller andet sted i navnet. Kan ikke huske om man i paradox 7 er nød til at bruge UPPER for at finde alt uanset om det er med store eller små bogstaver, således:
var temp : string; begin Temp:=AnsiUpperCase(Edit1.Text); Query.SQL.Text:='SELECT * from dinbase WHERE UPPER(Navn) LIKE "'+Temp+'%"'; Query.Open; end;
Ok, det vil jeg også lige teste :) Det første virkede fint, men hvordan laver man så en : Showmessage('Findes') Hvis der er et navn der starter med Ma? :)
Du linker din Query til din DBGrid så hvis den ikke er tom efter Query.open så blev der nogen fundet, men du kan også bruge Query.RecordCount:
var temp : string; begin Temp:=AnsiUpperCase(Edit1.Text); Query.SQL.Text:='SELECT * from dinbase WHERE UPPER(Navn) LIKE "'+Temp+'%"'; Query.Open; if Query.RecordCount>0 then showmessage('Fundet') else showmessage('Ikke Fundet');
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.