Avatar billede scifo Nybegynder
14. april 2006 - 18:14 Der er 9 kommentarer og
1 løsning

Søgning i database igen

Hej Eksperter.
Jeg starter lige med at sige at jeg bruger en Paradox7 database på en TTable.

Jeg skal så kunne søge i den, forstået på den måde
at jeg har en Edit i toppen og 3 RadioButtons.

De 3 radiobuttons er fornavn, efternavn og by

Det skal så være sådan at når man taster i editen, (OnKeyPress) Skal den lave en Jump To Nearest i en DBGrid.

Mvh
Scifo
Avatar billede scifo Nybegynder
15. april 2006 - 00:48 #1
skal lige sige at de attributter der er hedder det samme som radiobuttons
Avatar billede pjotre Praktikant
15. april 2006 - 10:48 #2
tabelnavn.setkey;
tabelnavn.fieldbyname('feltnavn').asstring := edit1.text;
--> Har du flere felter du vil possitionere på, gentager du ovennævnte linie
tabelnavn.gotonearest;
--> Så har du fat i den record, som er tættest på edit1.text
Resultat = tabelnavn.fieldbynbame('felt du vil vise').asstring;
Avatar billede scifo Nybegynder
15. april 2006 - 22:36 #3
Hmm... får denne fejl:
Project Project1.exe raised exception class EDBEngineError with message 'No associated index.'

Hvad har jeg gjort galt?
Avatar billede pjotre Praktikant
16. april 2006 - 10:41 #4
Har du et index på?
Når man bruger setkey, skal index indeholde de felter, som man vil possitionere på.
Du kan oprette 3 sekundære indexer på dine søgefelter.
Når du så vil søge, skal du skifte til det rigtige index:

tabelnavn.active := false;
if Radiobuttons.Fornavn = true then
begin
  tabelnavn.IndexName := 'FornavnIx';
  tabelnavn.setkey;
  tabelnavn.fieldbyname(Fornavn).asstring := edit1.text;
  tabelnavn.gotonearest;
  Resultat = tabelnavn.fieldbynbame('felt du vil vise').asstring;
end;
Avatar billede pjotre Praktikant
16. april 2006 - 10:42 #5
Tabellen skal lige gøres aktive igen:

tabelnavn.active := false;
if Radiobuttons.Fornavn = true then
begin
  tabelnavn.IndexName := 'FornavnIx';
  tabelnavn.active := true;
  tabelnavn.setkey;
  tabelnavn.fieldbyname(Fornavn).asstring := edit1.text;
  tabelnavn.gotonearest;
  Resultat = tabelnavn.fieldbynbame('felt du vil vise').asstring;
end;
Avatar billede scifo Nybegynder
16. april 2006 - 20:29 #6
hvad mener du med felt du vil vise?

Mvh
Scifo
Avatar billede pjotre Praktikant
17. april 2006 - 09:47 #7
Du vil vel vise et eller andet felt som resultat af din søgning
- eller -
hvis du har en dbgrid, eller db-felter på din form, vises recorden automatisk der, så behøver du ikke "Resultat"-linien.
Avatar billede scifo Nybegynder
20. april 2006 - 22:59 #8
Kan stadigvæk ikke få det til at virke :-(
Kunne jeg logge dig til at lave et program eksempel og sende det til mig, så tror jeg bedre jeg vil kunne forstå det, bare pakket som zip eller rar.
sci-design@tele2adsl.dk

Mvh
Scifo
Avatar billede scifo Nybegynder
20. april 2006 - 22:59 #9
P.S. Jeg skal gerne give nogle ekstra points for dit besværd med dette hvis det er :-)
Avatar billede scifo Nybegynder
01. maj 2006 - 14:59 #10
Lukker spørgsmålet...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester