12. december 2003 - 21:31Der 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!
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.
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?
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!
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
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.
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.
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 :-(
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?
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.