Avatar billede h_s Forsker
12. december 2003 - 21:31 Der er 19 kommentarer og
1 løsning

Forespørgsel sorteret på flere felter ad gangen

Jeg har en database, der i hver post indeholder 4 datoer:
- Opstartsdato
- Korrekturdato
- Produktionsdato
- Leveringsdato

Ud for hver dato udregnes et uge nummer med formlen:
Uge: DatePart("ww";[Dato];2;2)

Og nu til mit spørgsmål: Ofte har jeg behov for at se alle de poster, der indeholder en dato/uge, som jeg nu skal tage action på. Derfor vil jeg gerne kunne vælge en bestemt dato eller uge, som skal komme op i min forespørgsel. Hvis der i den enkelte post bare er en af datoerne/uge der passer i min søgning, så skal den komme frem - Gerne sorteret i rækkefølgen:
- Opstartsdato
- Korrekturdato
- Produktionsdato
- Leveringsdato

Det er også vigtigt, at når jeg ønsker at få f.eks. uge 50 op i 2003, at så posterne i uge 50 i 2004 ikke kommer med.

Jeg forestiller mig at der skal laves to "formler"; en hvis jeg vil søge på dato og en når jeg vil søge på uge i det enkelte år.
Det kunne være dejligt at der kom en pop-up op når jeg klikkede på forespørgslen der spurgte hvilken uge henholdsvis dato jeg ønskede at søge på, og efter udfyldelsen at jeg så fik resultatet.

Jeg håber der er nogen, der vil tage udfordringen op!

Glemte jeg at skrive, at jeg har en 97-version!!
Avatar billede mugs Novice
12. december 2003 - 21:35 #1
Hvis du indtaster [] i forespørgslens kriteriefelt, vil du få en POP-UP der beder dig indtaste paramatrer, der herefter vil blive indsat på kriterier.
Avatar billede mugs Novice
12. december 2003 - 21:36 #2
Inde i [] kan du f.eks skrive en ledende tekst:

[Indtast ugenr.:] og [Indtast år:]

Det er ligegyldigt hvilken version du benytter.
Avatar billede h_s Forsker
12. december 2003 - 21:54 #3
Mugs jeg tror nok jeg behøver noget mere hjælp. Jeg ved faktisk ike hvor jeg skal begynde og ende.

Det må kræve noget mere end det du skriver, for at få alt det her til at virke!?
Avatar billede mugs Novice
12. december 2003 - 22:08 #4
I din formular laver du 2 ubundne tekstbokse. Navngiv dem "Uge" og "År". Derefter en kommandoknap, i hvis Vedklik event du indsætter flg.:

Uge = InputBox(Prompt:="Indtast uge.", Title:="Søg uge", Default:="")
År = InputBox(Prompt:="Indtast år.", Title:="Søg år", Default:="")

De indtastede værdier vil nu blive overført til tekstboksene. Nu skal du have disse værdier indsat i forespørgslen som kriterier.

Åbn forespørgslen i designvisning. I det udtryk der indeholder feltet "Opstartsdato" udtryk for uge skriver du:

=[Forms]![Formularens navn]![Uge]

I kriteriefeltet for udtrykket "År" skriver du:

=[Forms]![Formularens navn]![År]

Start med det.

Når du skal have korrekturdatoen, skal du indtaste de samme kriterier i de 2 udtryk for korrekturdatoen's udtryk for henholdsvis Uge og År, blot skal du nu forskyde kriterierne en linie ned. Hvis kriterierne står på samme linie betyder det OG, hvis du forskyder en linie ned betyder det ELLER.

Og sådan bliver du bare ved med altid at indsætte kriterier een linie ned.  Dog skal kriteierne for hvert enkelt udtryk stå på samme linie:

Kriterierne for Opstartsdato på samme linie.
Derefter kriterier for Korrekturdato forskudt een linie ned.
Avatar billede h_s Forsker
12. december 2003 - 22:45 #5
Ser på det - Det var nok nogle dage, men skal nok vende tilbage!
Avatar billede h_s Forsker
16. december 2003 - 11:57 #6
Mugs> Jeg har nogle problemer. Jeg får at vide at syntaksen til komandoknappen er forkert.
Samtidig vil jeg lige sige, at de forskellige uger hedder:
- Opstartsdato = uge
- Korrekturdato = Kuge
- Produktionsdato = Puge
- Leveringsdato = Luge

Jeg tror ikke der er taget højde for det i din formel - eller er det mig der ikke kan læse det ordentligt?
Avatar billede mugs Novice
16. december 2003 - 12:09 #7
h_s -> Jeg er på vej til arbejde, og har ikke tid nu. Jeg er hjemme ca. 19:00, og kan lave et eksempel. Blot læg din e-mail.
Avatar billede h_s Forsker
16. december 2003 - 14:07 #8
Det vil godt nok være dejligt - henrik@southfarm.dk
Jeg kunne også sende den til dig ;-)
Avatar billede h_s Forsker
16. december 2003 - 16:53 #9
Jeg er først hjemme kl. 21.30!
Avatar billede mugs Novice
16. december 2003 - 19:35 #10
Du må meget gerne sende: mugs@mail.dk
Avatar billede h_s Forsker
18. december 2003 - 10:22 #11
Mugs> Jeg har fået lavet forspørgslen men har en del problemer med formularen. Jeg forstår ikke helt dine forklaringer i formular! Jeg forstår heller ikke hvorfor der skal være 2 formularer!
Avatar billede h_s Forsker
18. december 2003 - 12:51 #12
Mugs> Nu har jeg prøvet at arbejde videre med det og så vidt jeg kan se har jeg følgende problemer:
- Kørselsfejl 2450: (Kan ikke finde Formular1)
Private Sub Form_Current()
Me.Tekst34 = [Forms]![Formular1]![Tekst17]<------ Fejlen opstår her
Me.Filter = "opstartsår = " & Me.Tekst34
Me.FilterOn = True
End Sub

Der er en formular1!! Det sker når jeg prøver at køre Formular2 uden om Formular1. Når jeg køre Formular1 kommer der ingen "hits". Det gør der, når jeg køre forespørgslen!

Jeg kan ikke finde feltet VedAktuel (Current) i formularen1

Hvad gør jeg galt?
Avatar billede mugs Novice
18. december 2003 - 20:12 #13
Forespørgslen skal have nogle kriterier for at finde de poster du ønsker. Disse kriterier er indtastet i forespørgslen på den måde, at forespørgslen henter data fra Formular1, som har 5 ubundne tekstbokse som du kan indtaste i. Når du har gjort det trykker du på kommendoknappen som åbner Formular2. Denne formular får sine data fra forespørgslen undtagen året. Året skriver du i Formular1 i den nederste felt. Årstallet i formular2 står i Tekst34 som refererer til Formular1, som du ser nedenfor:

Me.Tekst34 = [Forms]![Formular1]![Tekst17]<------ Fejlen opstår her

Du kan ikke køre Formular2 uden at du har formular åben. Netop fordi formular2 skal bruge data fra Formular1. Hvis du gør det, får du fejlen, at formular ikke findes. Og det er fuldstændig korrekt, for du kan ikke referere til an formular der ikke er åben.

Jeg kan ikke finde feltet VedAktuel (Current) i formularen1
VedAkruel er intet felt, men en status formular opnår når du enten pbner formularen eller skifter post. Koden skal indsættes i formular2 vedAktuel. Du finder VedAktuel således:

Åbn databasen  > Åbn formular2 i Designvisning > Højreklik et sted i det MØRKEGRÅ område > Egenskaber > Fanen Hændelser > Sær markøren på linien VedAktuel (Current i engelske versioner) > Tryk på de 3 små ... i højre side.

Du kommer nu ind i VBA-editoren og du sætter koden ind der hvor markøren står og blinker mellem 2 linier:

Private Sub o.s.b.
Her er markøren og her indsætter du koden
End Sub

Håber det gav lidt meer uddybende forklaring ellers må du vende tilbage.
Avatar billede mugs Novice
18. december 2003 - 21:17 #14
Efter at have postet ovenstående ser jeg, at have modtaget en mail fra spørgeren med en vedhæftet db. Db er rettet og returneret.
Fejlen var at spørgeren i en forespørgsel havde refereret til 4 felter i en formular, hvor felterne ikke eksisterede. Efter at have givet forespørgslen de rette referencer fungerer det.
Avatar billede h_s Forsker
19. december 2003 - 15:25 #15
mugs du har været en stor hjælp - Tak, men for at du kan få dine velfortjente point, så kræver det at du laver et "svar" :-)
Avatar billede mugs Novice
20. december 2003 - 00:51 #16
Selv tak. Men det er længe siden du har giver mig point.
Avatar billede h_s Forsker
23. december 2003 - 12:07 #17
mugs> nu er jeg forviret på højere plan: Når jeg har indtastet mine værdier i formular1 og åbner formular2 beder den om parameterværdi: test.Opstart. Jeg har kigget både i forespørgslen Test og Formularen Formular2 uden at finde værditen Opstart. Har du nogle gode forslag - Jeg må have ødelagt noget :-(
Avatar billede mugs Novice
26. december 2003 - 15:44 #18
h_s -> Vil du sende din db: mugs@mail.dk
Avatar billede h_s Forsker
30. december 2003 - 18:46 #19
mugs> sender den når jeg kommer på arbejde den 5. januar 2004 - Godt Nytår :-)
Avatar billede mugs Novice
31. december 2003 - 00:44 #20
OK - Også Godt Nytår fra det Sønderjyske. Er du venlig at referere til dette spørgsmål når du mailer din db?
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