Gå til innhold

Access: Lage et bra skjema til søk i databasen


Anbefalte innlegg

Hei!

 

Jeg har en rimelig enkel Access-database som bl.a. inneholder en tabell over prosjekter og en tabell over oppdragsgivere, med en kobling mellom disse.

 

Jeg har laget en spørring og et skjema hvor utvalgt informasjon (som prosjektnavn, prosjektbeskrivelse og firmanavn) kommer ut fortløpende. I "toppteksten" på skjemaet har jeg noen tekstbokser. Det jeg prøver å få til er å kunne bruke disse tekstboksene til å anngi kriterier til spørringen.

 

Eksempel: Hvis jeg skriver ">3000" i tekstboksen for ProsjektNr så dukker alle prosjektene med nummer høyere enn 3000 opp. Hvis jeg så setter "*statoil*" i firmanavn-tekstboksen, så kommer alle prosjekter med prosjektnummer høyere enn 3000 og med statoil som oppdragsgiver.

 

Er dette mulig på et vis?

 

Jeg har allerede prøvd å sette "Criteria" i spørringen til f.eks. "[Forms]![Finn prosjekt]![ProsjektNr_Input]", men da kan jeg kun bruke "likhetssøk" (ikke > eller <) og det fungerer dårlig når jeg skal sette kriterier på flere felt.

Lenke til kommentar
Videoannonse
Annonse
Jeg har allerede prøvd å sette "Criteria" i spørringen til f.eks. "[Forms]![Finn prosjekt]![ProsjektNr_Input]", men da kan jeg kun bruke "likhetssøk" (ikke > eller <) og det fungerer dårlig når jeg skal sette kriterier på flere felt.

5645747[/snapback]

 

I ditt tilfelle er en grei løsning er å spørre etter prosjekter som ligger i ett område

eks:

Between [forms]![frm_søkeskjema]![Tekst1] And [Forms]![frm_søkeskjema]![Tekst2]

 

Dette vil returnere alle som ligger innenfor det området du angir

i tekstboksene...

Lenke til kommentar

Men hva hvis jeg skal gjøre søket uavhengig av f.eks. ProsjektNr?

5667203[/snapback]

 

Med denne løsningen må spørringen få ett område.

Det du kan gjøre er å legge inn Standarverdier i tekstboksene.

 

eventuellt klippoglim inn flere spørringer som du har forskjellige kriterier på.

Disse kan startes fra samme skjema.

 

Mvh

L Vik

Lenke til kommentar
Ja, riktig. :)

 

Men er det mulig å kanskje bygge en SQL-spørringen til underskjemaet dynamisk? Det hadde jo vært det enkleste for brukeren... ;)

5670464[/snapback]

 

Litt usikker på hva du er ute etter her.

Kan du forklare litt mere?

 

Hvis du ikke har veldig mange prosjekter, kan du bytte ut tekstbokser for område med combobokser.

Disse kan fylles dynamisk med spørring som henter ut alle prosjektnr.

 

mvh

L Vik

Lenke til kommentar

Hehe! Det er over 5000 prosjekter, så det blir litt uoversiktelig.

 

Hvis jeg setter ">3000" i prosjektnummer-feltet i en spørring, så bygger Access automatisk SQL-strengen med dette kriteriet. Hvis jeg setter ">3000" i en tekstboks vil jeg at Access skal bygge den samme SQL-strengen som om jeg redigerte selve spørringen...

 

Håper dette var fornuftig forklart. :)

Lenke til kommentar

Det jeg ville gjort er følgende:

i skjema ligger to tekstbokser [tekst1] [tekst2].

Disse boksene gis en standarverdi under egenskaper-data-standarverdi. [tekst1=0] [tekst2=7000]

I den underliggende spørringen legges det ett kriterie under prosjektnr feltet.

Dette kriteriet ser slik ut:

Between [forms]![frm_søkeskjema]![Tekst1] And [Forms]![frm_søkeskjema]![Tekst2]

 

Når du ønsker å kjøre spørringen uten prosjnr som kriterie gjør du ingenting, men vil du snevre inn

forandrer du bare på teksten i boksene.

På denne måten vil resultatet i skjema være dynamisk, og du kan kjøre spørringen flere ganger med å legge

en knapp på skjema som kjører makro for å oppdatere spørringen hvis du endrer tekstboksene.

 

Du vil også legge ett kriterie under oppdragsgiver, her tror jeg du kan gjøre slik:

 

kriterie i spørring under oppdragsgiver: [forms]![frm_søkeskjema]![Tekst3]

I skjema kan du kan angi standarverdi [tekst3]="is not null"

Da vil du alltid få med alle.

Senere kan du begrense med å legge "stato*" som tekst i boksen.

Og trykke på knappen for å kjøre spørring på ny..

 

Tror dette er det du ønsker?

 

mvh

L Vik

Lenke til kommentar
Gjest Slettet-IHWlGMJn

Kan noen hjelpe meg med dette.. har ca samme sak.

Laget en test av det ghjens skrev i sin post, men får det ikke til å funke.

 

Har én tabell med to kolonner: autonummer og tekst.

Én spørring det kriteriet for "autonummer" er: Between [Forms]![sk]![input] And [Forms]![sk]![input2]

Og ett skjema som er basert på spørringen. i toppteksten har jeg [input] og [input2] med standardverdiene 1 og 1000

Endret av Slettet-IHWlGMJn
Lenke til kommentar
Kan noen hjelpe meg med dette.. har ca samme sak.

Laget en test av det ghjens skrev i sin post, men får det ikke til å funke.

 

5696928[/snapback]

 

OK, men hva skjer? Hvis du tester spørringen med tallene som kriterie

(between "1" and "1000")

Hva skjer da?

 

ghjens...

Lenke til kommentar
Gjest Slettet-IHWlGMJn

Om jeg kjører spørringa og fyller inn between z and y så går det helt greit.. men når jeg åpner skjema får jeg ikke opp noen linjer

Lenke til kommentar

Jeg la ut svar uten å ha testet det ut.

Men det har jeg nå...

Spørringen klarer ikke å returnere noe med tekstboksene som vilkår.

Det skjønner jeg ikke, da spørringen ellers kan jobbe med disse tallene som tekstverdier.

 

Ser ut som løsningen er å legge dette under vilkår i spørringen:

Between [fra:] And [til:]

Når man da kjører spørringen fra skjema, vil det sprette opp bokser man kan angi

området i.!

 

Beklager at jeg ikke hadde testet ut svaret mitt!.. :blush:

 

edit: klart dette skal kunne gjøres med tekstboksene, men har prøvd en del og

sett i hjelpefila. Finner ikke ut hva som skjer...

Ser ut som spørringen ikke får noen verdier fra tekstboksene ( format?)

 

Dette går helt greit hvis man bruker dato som verdi, og man bruker det som kriterie i ett datofelt i spørringen.

 

mvh

ghjens

Endret av ghjens
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...