Avatar billede billeschou Nybegynder
30. november 2000 - 11:15 Der er 15 kommentarer og
1 løsning

kriterie i forespørgsel

Er det muligt at oprette et kriterie i en forespørgsel der sammenligner en dato i forespørgslen med et felt i en formular. Jeg har tidligere benyttet følgende udtryk:
>=([Forms]![frmSearchActivityFromJournalist]![txtLastDay])
med det resultat at den listbox, der skulle vise de fundne værdier, var tom (gætter på at det er fordi at checket udføres så snart formularen åbnes - og der er feltet jo så tomt. Det kunne man så løse ved at sætte en standardværdi for txtLastDay, men det er ikke tilfredsstillende).
Jeg prøvede, i stedet for kriteriet i forespørgslen, at lave følgende kode:

Dim strSQL As String
   
strSQL = \"SELECT * from qselSearchActivityFromJournalist WHERE AC_START <= #\" _
            & txtFirstDay & \"#\"
DoCmd.RunSQL strSQL

Det virkede dog heller ikke, da SQL-strengen ikke er lovlig, set i forhold til RunSQL.

Hvad kan jeg gøre?   
Avatar billede region Nybegynder
30. november 2000 - 11:40 #1
eks.
query = q1
form = f1
felt i form = combo2

i din query skal du under kriterie skrive flg.

Like [Forms]![f1]![Combo0]

så slår din query den værdi op der er angivet i din formular.
Avatar billede region Nybegynder
30. november 2000 - 11:42 #2
det du ydeligere skal kontrollere er at dine bundne kolonner i dit felt i formularen er korrekte anført. Se evt. det SQL statement der er rlateret til dit opslag i feltet samt hvordan feltet vises fysisk ( bredden 0;2,54cm)

Avatar billede billeschou Nybegynder
30. november 2000 - 11:48 #3
Den overvejede jeg selv, men Like på en dato kan vel kun resultere i en eksakt værdi? Jeg har nemlig oprettet en inputmaske for det tekstfelt der bruges til indtastning af dato.

Når tekstfeltet er opdateret, køres en Me.requery på formularen (som også indeholder en listbox, der afspejler min forespørgsel - qselSearchActivityFromJournalist)
Avatar billede region Nybegynder
30. november 2000 - 11:50 #4
der har for nylig været et lign. spørgsmål besvaret af moses på at vælge flere værdier fra eks en listbox ...prøver lige at finde det...


ØJEBLIK..!!!
Avatar billede region Nybegynder
30. november 2000 - 11:52 #5
Avatar billede billeschou Nybegynder
30. november 2000 - 12:09 #6
Jeg vil lige være 100% sikker på at vi forstår hinanden :) så jeg skærer lige situationen helt ud i pap:

Jeg har en formular frmSearchActivityFromJournalist, som indeholder 6 kontrolelementer: 2 tekstfelter til indtastning af hhv. start- og slutdato for den periode der skal søges i, 1 combobox til at vælge en aktivitetstype, 1 tekstfelt til titlen på aktiviteten, 1 tekstfelt til navnet på aktiviteten og 1 tekstfelt til stedet hvor aktiviteten fandt sted. Derudover har jeg en listbox, hvis datakilde er forespørgslen qselSearchActivityFromJournalist. Når indholdet af tekstfelterne eller comboboxen er opdateret, kaldes Me!lstHits.Requery (lstHits = listboxen).

I qselSearchActivityFromJournalist har jeg følgende kriterier:
Type: Like Nz([Forms]![frmSearchActivityFromJournalist]![cboActivityType]+\"*\";\"*\")

Titel: Like Nz([Forms]![frmSearchActivityFromJournalist]![txtTitle]+\"*\";\"*\")

Sted: Like Nz([Forms]![frmSearchActivityFromJournalist]![txtPlace]+\"*\";\"*\")

Disse 3 virker glimrende og jeg mangler så bare et få nogle kriterier der sammenligner med felterne txtFirstDay og txtLastDay i frmSearchActivityFromJournalist.
Avatar billede billeschou Nybegynder
30. november 2000 - 12:11 #7
kriterier der altså finder alle de værdier af nøglen AC_START i qselSearchActivityFromJournalist som er en nyere dato end den der er indtastet i txtFirstDay. Tilsvarende for txtLastDay
Avatar billede region Nybegynder
30. november 2000 - 12:18 #8
Det kan godt være jeg er dum ( eget udsagn ), men du ønsker altså at et kriterie søger mellem datostart og datoslut... eller hvad...???

Hvis dette er tilfældet bruger du bare between komandoen.

Har jeg totalt misforstået dit spørgsmål ud fra denne kommentar...!!!!
Avatar billede billeschou Nybegynder
30. november 2000 - 12:51 #9
nej det er rigtigt forstået men der vil vel stadig være et problem med at listboxen er tom fra start af, da tekstfelterne for startdato og slutdato er tomme når formularen åbnes. Between kan vel ikke håndtere tomme værdier (kunne jeg forestille mig)
Avatar billede billeschou Nybegynder
30. november 2000 - 12:53 #10
Og desuden indeholder datakilden én nøgle til lagring af startdato og en anden nøgle til lagring af slutdato.
Avatar billede billeschou Nybegynder
30. november 2000 - 12:58 #11
men between er nok det nærmeste jeg kommer på en løsning :)
Avatar billede region Nybegynder
30. november 2000 - 13:53 #12
det du kan gøre ( bruger det selv ) er at du bruger en OR kommando.

enten skal den være between x;y OR is null.

Jeg anvender denne i forbindelse med combo boxe for at se alle værdier inden et opslag foretages.

nu kan jeg se at du giver 60 point for dette svar... Jeg takker fordi det jo ikke løser dit problem.!!! sig endelig til såfremt jeg kan hjælpe ydeligere.
Avatar billede billeschou Nybegynder
01. december 2000 - 11:52 #13
nej det løser det ikke men det kommer nok tæt på. Hvis jeg ikke kan bruge det til noget, har jeg imidlertid en helt anden ide som jeg ved virker, men nu ville jeg prøve dette først.
Avatar billede billeschou Nybegynder
01. december 2000 - 12:26 #14
Hurra det virkede!! :)
Avatar billede region Nybegynder
01. december 2000 - 17:13 #15
hvad virkede...

between x;y OR is null.

eller en du selv kendte.???

Tillykke
Avatar billede billeschou Nybegynder
04. december 2000 - 10:05 #16
between x;y kombineret med en værdi angivet ved formLoad
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