Avatar billede Kim Neesgaard Seniormester
10. november 2001 - 09:50 Der er 15 kommentarer og
1 løsning

Syntax for FindRecord

Det har ikke været mig muligt at finde et eksempel på syntaxen for FindRecord i hverken Access eller Eksperten, så derfor:

En tabel indeholder bl. a. feltet Dato - hvordan skrives FindRecord for at find en record, der fx. har Dato = Date?
Avatar billede terry Ekspert
10. november 2001 - 10:13 #1
http://msdn.microsoft.com/library/default.asp

then eneter findrecord in the search box
Avatar billede terry Ekspert
10. november 2001 - 10:15 #2
before you enter findrecord you will also see a sub-menu (Data Access) you should find usefull stuff here too
Avatar billede mugs Novice
10. november 2001 - 19:55 #3
DoCmd.GoToControl \"dato\"
DoCmd.FindRecord \"10-11-01\", acEntire, False, , True, , True

Finder datoen hvis formateringen i feltet er kort datoformat, idet søgningen søger \"som formateret\".
Avatar billede Kim Neesgaard Seniormester
10. november 2001 - 23:42 #4
mugs: hvis tabellen hedder tblÅret2001 og et af felterne i denne tabel er \'Dato\' og man ønsker at finde den 10-11-01, hvordan ser dit eksempel så ud?
Avatar billede mugs Novice
11. november 2001 - 05:27 #5
DoCmd.GoToControl \"Dato\"
DoCmd.FindRecord \"10-11-01\", acEntire, False, , True, , True

Avatar billede mugs Novice
11. november 2001 - 06:58 #6
Jeg er på vej til arbejde, og har ikke ret meget tid. En ulempe ved mit eksempel er, at det leder efter \"10-11-01\", som det er formatteret i formularen. Det kan give forkert resultat, hvis du har et datofelt af et endet format.

Så hellere gå en anden vej, og søg i forespørgslen ved at indsætte et kriterie i datofeltet. Hvis du sætter [] i kriteriefeltet, vil du få en inputbox, der beder dig indtaste den ønskede dato. Teksten inde i [] vil blive til inputboxens overskrift f.eks.:

[Indtast dato]

Hvis du vil søge efter alle poster i f.eks NOV måned kan du benytte funktionen DatePart som et udtryk i forespørgslen. Hvis du i kriteriefeltet indsætter [Indtast dato] og taster 11, vil du se de poster med dato  mellem 2001-11-01 og 2001-11-30:

DatePart(\"m\";[Dato1])
Avatar billede mugs Novice
16. november 2001 - 15:48 #7
Hvordan går det - Har du fået det til at fungere?
Avatar billede Kim Neesgaard Seniormester
16. november 2001 - 18:28 #8
Ikke godt!! For det første vil jeg gerne overføre søgedato programmæssigt, dvs. ikke med en inputbox og for det andet er jeg i tvivl om der skal være et recordset åbent, så Access ved, hvilken tabel, der skal søges i.
Avatar billede terry Ekspert
16. november 2001 - 19:34 #9
neesgaard>Your original question was an example of the syntax to findrecord, but now it seems its another question. Try and explain what it is you want to do then lets see if we can find an answer to the actual problem :o)
Avatar billede Kim Neesgaard Seniormester
17. november 2001 - 22:14 #10
Ok - jeg har udvidet spørgsmålet!!

Mit spørgmål er:

----kode
----kode danner en dato=Dato
FindRecord i tabel tblÅret2001
----gør noget med den record
----kode
Avatar billede mugs Novice
18. november 2001 - 00:27 #11
neesgaard > Jeg må være lidt tungnem om natten, for jef forstår stadig ikke dit spørgsmål.
- Min kode finder datoen 10. NOV år 2001
- Når den er funbdet hvad skal der så ske?

Du må på en eller anden måde fortælle din db, hvilken dato den skal lede efter. Det gør jeg ved hjælp af en inputbox - Hvilke anden måde har du i tankerne?

Hvad forstår du ved dit udtryk \"kode danner en dato\" der skal være = Formularens felt Dato?
Avatar billede Kim Neesgaard Seniormester
18. november 2001 - 11:40 #12
Eller også spørger jeg på en sær måde, fordi jeg ikke helt forstår mig på Access!!
Med \"kode danner dato\" mener jeg blot, at programmet måske danner Dato med Date-7, men en dato kan jo selvfølgelig også komme fra en inputbox.
Men der hvor jeg helt konkret ikke forstår er, hvordan Access \'ved\', at den skal søge Dato i tabellen tblÅret2001 - den oplysning synes jeg ikke bliver givet i ovenstående eller også kan jeg bare ikke se det.
Avatar billede mugs Novice
18. november 2001 - 12:40 #13
Access ved at den skal søge i tabellen fordi vi sender markøren til feltet \"Dato\" med kommandoen:

DoCmd.GoToControl \"Dato\".

Da feltet jo kommer fra Tabellen, søger Access i den rigtige tabel.

Kode danner dato:

Her er det ikke nødvendigt med en VBA-kode. det kan du gøre i en forespørgsel og lade programmets indbyggede udtryksgenerator hjælpe dig:

Lav en forespørgsel og træk Dato-feltet ned i designgitteret. Luk forespørgslen og lagre den. Åbn forespørgslen igen i designvisning og sæt din markør i et tomt felt, og tryk på tryllestaven på din værktøjslinie.
Vælg Udtryksgenerator. I venstre vindue vælger du typen af databaseobjekter du vil arbejde i, i dette tilfælde forespørgslen, find den rigtige forespørgsel. I det midterste vindue ser du de felter der er i den valgte forespørgsel. Tryk på feltet Dato så det er fremhævet, og tryk på \"Sæt ind\". Feltet bliver nu flyttet op i det øverste vindue og efter feltet skriver du -1. Værdien i feltet vil nu være indholdet af Dato-feltet -1, altså igår.

Er du interesseret i en lille testdb, skal du blot lægge din email.

 
Avatar billede Kim Neesgaard Seniormester
24. november 2001 - 09:14 #14
Ja tak - meget gerne! Når man ser det i praksis, går der tit et og andet op for en: neesgaard@get2net.dk.
Avatar billede mugs Novice
28. november 2001 - 21:10 #15
Et tænkt eksempel:

Du står i en formular der kun viser få oplysninger om en post. Du ønsker at se flere oplysninger om samme post, der ses i Form2:

DoCmd.Openform \"Form2\"
Forms!Form2!NAVN PÅ NØGLEFELT.SetFocus
DoCmd.FindRecord Me!NAVN PÅ NØGLEFELT

Håber det bringer dig et lille stykke videre.


Avatar billede Kim Neesgaard Seniormester
15. januar 2003 - 23:02 #16
Jeg har ikke afprøvet dette, da jeg benytter en anden måde at søge på.
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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