Søge efter bestemt felt i Database

Tags:    delphi

Jeghar en monthcalendar og et DBMemo og når man så trykker på en dato i kalenderen skal DBMemo søge efter den dato man klikkede på i min Access Database (altså min Datasource).

Datoen står i en bestemt tabel i min database kaldet Kalender og feltet datoen står i hedder Dato.
Hvis den så finder datoen i databasen skal DBMemo blive til det felt som ligger ved siden af dato (feltets navn er Note) og så loade det der står der.

Det skal siges at Dato er min primære nøgle i databasen.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



10 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
OK, jeg har tilføjet flg. til Form1
1) en Listbox og
2) en procedure "Add2ListBox"
Add2ListBox kaldes dels i FormCreate og dels i MonthCalendar1Click
Her er hele unit'en
Fold kodeboks ind/udKode 


NB! Det er OK med de 50 UP...

mvh
hsv



Lidt flere oplysninger...

Koden jeg bruger til at loade databasen er denne:

Fold kodeboks ind/udKode 



Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



Er der virkelig ingen der kan hjælpe her??
Kan godt hæve antal point hvis det er nødvendigt?
Kunne nemlig godt forestille mig det var noget besværligt noget jeg spørger om.
Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



Jeg har listet et eksempel hvad du kan gøre nedenfor. For at få noten til en given dato anvender jeg propertyen "Filter" på TADOTable.
Jeg har lavet to events:
1. MonthCalendar1Click: Sørger for at opdatere Filteret ved ændring af datoen. Dette medfører evt. at Noten skal opdateres (hvis brugeren har ændret denne) og
2. DataSource1UpdateData: Sørger for at sætte Dato (primær nøgle) ved opdatering af Note.

Fold kodeboks ind/udKode 


mvh
hsv


[Redigeret d. 06/12-04 10:29:25 af HSV]



Wee det virker helt perfekt! Mange tak skal du ha' :)

Men tænkte på.. Hvis nu jeg skal have den til at gøre næsten det samme med en listbox.
Det skal virke på den måde at når man trykker på datoen skal listboxen loade alle felter hvor datoen passer. Der er bare en ting mere. Der er flere felter så den linje der bliver tilføjet til listboxen skal se således ud:

felt 1, felt 2, felt 3

altså felternes indhold skal være komma sepereret.

Hvis du ønsker flere point for det synes jeg det er helt iorden.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------

[Redigeret d. 06/12-04 22:48:28 af Rune Jensen (RoZ)]



Arh det virker sørme også! Mange tak. Men der er et lille problem? Foran den linje der bliver tilføjet til min listbox står der en dato: 30-12-1899. Har du nogen ide om hvorfor det kommer frem??
:S

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



I mit eksempel indsættes Dato-feltet (dit nøglefelt) som felt 1 i listboksen. Værdien (31-12-1899) kunne tyde på en "tom" dato-værdi (= nil). Prøv at checke din tabel (med Access) og se om der i forb. med test af dette er blevet indsat en "tom" record i starten af din tabel. Dette er den ene mulighed. En anden kunne være din implementation af koden (idet jeg går ud fra, at du har tilføjet anden kode). I så fald skal jeg se koden for evt. at kunne finde årsagen...

mvh
hsv




Kan det have noget at gøre med at det første felt jeg loader er et Dato /klokkeslet felt? og der står jo kun et klokkeslet i den..

Dette er koden jeg bruger:
Fold kodeboks ind/udKode 


Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



Jeps. det er forklaringen. Delphi repræsenterer et dato/klokkeslet som en Double (se evt. hjælpen under TDateTime Type). Heltalsdelen er datoen og decimaldelen er tidspunktet. Indeholder et felt kun et klokkeslet er heltalsdelen 0 som giver datoen 30-12-1899.
Du bliver nødt til at formattere tidspunktet:
Fold kodeboks ind/udKode 


mvh
hsv



Mange tak for hjælpen :) Det var rigtigt dejligt du gad at hjælpe mig.
Så nu skal jeg nok lade være med at forstyrre dig mere og give dig dine UP ;)
Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



t