Jeg har en tabel med flg. indhold (i feltet VareTekst) 'vare 1','vare 2','vare 3','andet', osv.
Og så har jeg en form med et Dbgrid der viser ovenstående, samt en knap der hedder 'Find' og en tekstboks. Når jeg så skriver 'vare' i tekstboksen og trykker på 'Find' finder den 'vare 1', det kan jeg gøre med 'locate('VareTekst',tekstboks.text,[loCaseInsensitive,loPartialKey]), det er fint nok, men hvordan får jeg den til at finde den næste vare når jeg trykker på 'Find' igen?
Kapitel 9, har jeg læst, men som sagt synes jeg ikke det gi'r et svar, Hvor er det du mener at svaret står, er det afsnittet med Seek du mener.
Jeg har ikke prøvet Seek metoden, da der ikke står noget om at man kan lave en 'Findnext', med mindre 'soAfterEQ' eller 'soAfter', kan bruges til det, men det fremgår ikke af teksten.
Jeg bruger selv ADOquery selvom det "rigtige" er at bruge ADOdataset. Grunden til at ADOquery og ADOtable findes er at Borland mente det ville gøre det nemmer at omskrive/rekompilere eksisterende BDE applicationer til ADO
Hvad opnår jeg ved at bruge ADOquery i stedet for, de har da heller ikke en funktion til at finde den næste forekomst af 'vare', eller mener du at jeg skal ændre Where delen i query. Det jeg vil er at alle vare skal være vist i 'griddet', og når jeg så trykker på find skal den blot stille sig på den næste record der starter med 'vare'.
Jeg er godt klar over at jeg selvfølgelig kan gøre det 'manuel' med while not tabel.eof and p=0 do begin P := pos('vare',tabel.FieldValues['varetekst']); if p=0 then tabel.next; end;
UPS, forkert brugernavn, det er altså ikke for at snyde jeg har 2 navne, jeg var bare træt af navnet wmkurt, da det henviser til min tidligere arbejdsplads. Så det var ikke meningen at jeg nogensinde mere ville bruge det navn, men det smuttede altså. Nu har jeg afmeldt det, så nu smutter det ikke mere :-)
Ellers skulle du lave en parameter forespørgsel 'QryVare':
SELECT * FROM tabel WHERE VareTekst LIKE * :Pvare *
Så sætter du parameteren således (uden * stjerner) with QryVare do begin close; Parameters.ParamByName('Pvare').Value := edtBox.text; open; end;
Niels
Synes godt om
Ny brugerNybegynder
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.