Avatar billede cgleerup Nybegynder
10. juli 2002 - 12:27 Der er 30 kommentarer og
2 løsninger

formular til at udvælge kriterier

I en database har jeg en formulaer til at indtaste data omkring en række medlemmer, bl.a. definere man under indtastningen om medlemmerne er a, b eller c medlemmer. I en anden formular vil jeg så gerne kunne definere om jeg vil sortere efter a,b eller c medlemmer.

Hvordan gør jeg det ?
Avatar billede nih Novice
10. juli 2002 - 12:31 #1
En nem måde er at anvende 'dataarkvisning', så kan brugeren bare klikke på kolloneoverskriften for at sortere den kollone han ønsker.

Niels
Avatar billede nih Novice
10. juli 2002 - 12:34 #2
hvis du vil udvælge bestemte medlemmer kan du indsætte en combobox, og lade guiden lave et filter til dig.

Niels
Avatar billede nih Novice
10. juli 2002 - 12:39 #3
eller:
Sub Kombinationsboks18_AfterUpdate()
    Me.Filter = "feltNavn = " & Me![Kombinationsboks18]
    Me.FilterOn = True
End Sub
Avatar billede cgleerup Nybegynder
10. juli 2002 - 12:41 #4
det er nærmere en filtrering jeg har brug for - altså, ekspemelvis skal jeg kunne udskrive labels til alle b-medlemmer uden at medtage andre, det kan jeg godt få til at lykkes, men hvis jeg så ønsker at udskrive både b og c men ikke a-medlemmer så skal det enkelte medlem være registreret som både b og c.
Avatar billede nih Novice
10. juli 2002 - 12:58 #5
Sub Liste20_AfterUpdate()
    Dim varItm As Variant
    Dim strFilter As String

    strFilter = ""
    For Each varItm In Liste20.ItemsSelected
      strFilter = strFilter & " OR feltnavn = " & Liste20.ItemData(varItm)
    Next
    strFilter = Mid(strFilter, 4)
     
    Me.FilterOn = False
    Me.Filter = strFilter
    Me.FilterOn = True
End Sub

liste20 er en listbox med flermarkering sat til 'Sammensat markering'

Niels
Avatar billede cgleerup Nybegynder
10. juli 2002 - 13:11 #6
kriteriet for hvilke medlemmer der skal udskrives skal kunne vælges af brugeren i en formular kaldet "krit" - og dataene indtastes i en anden formular.
Jeg benytter så følgende kode:
=(DLookUp("felt";"[tabel]")<>0)
til at tjekke om der er valgt en "sand/falsk" knap i begge formularer i det samme felt. Altså er b valgt i begge ? hvis felterne er ligmed hinanden er udtrykket sandt, eksempelvis er -1 = -1.

Men hvis et medlem er medlem af såvel a som b duer denne funktion ikke, da den så også vil have at dine kriterer skal være sat til såvel a som b
Avatar billede nih Novice
10. juli 2002 - 13:17 #7
er der 3 kolloner i tabellen (a,b,c) som kan sættes sand/falsk ??
Avatar billede cgleerup Nybegynder
10. juli 2002 - 13:19 #8
der er ektra point for et perfekt svar
Avatar billede cgleerup Nybegynder
10. juli 2002 - 13:20 #9
faktisk er det blot et eksempel på mit problem, i realiteten er der 15 forskellige medlemsniveauer der derfineres med et niveau 1, ja/nej niveau 2 ja/nej osv.
Avatar billede nih Novice
10. juli 2002 - 13:40 #10
lav en ny tabel med 2 felter
det første skal indeholde alle feltoverskrifterne fra din oprindeligetabel (niveau1......osv) evt i []
det andet felt er dit alias, det der skal stå i listen.

fyld en listbox med de data du nu har indtastet i tabellen
sæt flermarkering til 'Sammensat markering'
indsæt følgende i en event
Private Sub Liste14_Click()
Dim varItm As Variant
    Dim strFilter As String

    strFilter = ""
    For Each varItm In Liste14.ItemsSelected
      strFilter = strFilter & " OR " & Liste14.ItemData(varItm) & "= true"
    Next
    strFilter = Mid(strFilter, 4)
    DoCmd.OpenReport "dinRapport", acViewPreview
   
    Reports("dinRapport").FilterOn = False
    Reports("dinRapport").Filter = ""
    Reports("dinRapport").FilterOn = true
End Sub
Avatar billede nih Novice
10. juli 2002 - 13:45 #11
Reports("dinRapport").Filter = ""     
SKAL selvfølgelig ændres til
Reports("dinRapport").Filter = strFilter
Avatar billede terry Ekspert
10. juli 2002 - 14:01 #12
are you getting there Niels?
Avatar billede cgleerup Nybegynder
10. juli 2002 - 14:03 #13
vil det virke på alternativ knapper ?
Avatar billede cgleerup Nybegynder
10. juli 2002 - 14:05 #14
jeg er forholdsvis grøn på området !
Avatar billede terry Ekspert
10. juli 2002 - 14:27 #15
Niels what is wrong with using the wherecondition parameter?


DoCmd.OpenReport stDocName, acPreview, , WhereCondition
Avatar billede nih Novice
10. juli 2002 - 14:27 #16
mit forslag er OK - tror jeg nok ;-)

eller hvad siger du cgleerup ????

din rapportSQL skal IKKE indeholde kriterier dem filtrer du jo fra.

Jeg har kun Access97, hvis du vil have en til at se på kan du spørge Terry - Det har jeg intet imod :o)

Niels
Avatar billede nih Novice
10. juli 2002 - 14:31 #17
alternativknapper ?? - mener du 14 under hinanden

Niels
Avatar billede cgleerup Nybegynder
10. juli 2002 - 14:32 #18
kan jeg ikke blot benytte en ganske alm. forespørgsel og sige hvis = feltet i den pågældende tabel osv.
Avatar billede cgleerup Nybegynder
10. juli 2002 - 14:37 #19
lige nu har jeg 15 knapper der kan slåes til eller fra, og med disse sættes de kriterier som man nu en gang vælge - er det helt hen i vejret
Avatar billede cgleerup Nybegynder
10. juli 2002 - 15:01 #20
er der mere hjælp at hendte
Avatar billede nih Novice
10. juli 2002 - 17:20 #21
ja - har bare ikke tid lige nu :(

Niels
Avatar billede nih Novice
11. juli 2002 - 04:27 #22
Private Sub Kommandoknap26_Click()
Dim strWhere
If alternativ1 Then strWhere = strWhere & " OR [Niveau 1] = true"
If alternativ2 Then strWhere = strWhere & " OR [Niveau 2] = true"
If alternativ3 Then strWhere = strWhere & " OR [Niveau 3] = true"

strWhere = Mid(strWhere, 4)
DoCmd.OpenReport "dinRapport", acPreview, , strWhere
end sub

Her er en vist med 3 aternativ knapper og en alm knap til at åbne rapporten.
Din rapport skal bygge på en foresp uden kriterier.

Niels
Avatar billede cgleerup Nybegynder
11. juli 2002 - 09:33 #23
jeg tror det kan løses på en anden og bedre måde - hvis ellers du ved en måde til at tjekke på data, det vil sige, "hvis feltet q er = b then add 1 i feltet c" eller noget i den stil
Avatar billede nih Novice
11. juli 2002 - 10:04 #24
Før vi snakker helt forbi hinanden.

Du har en database med en rapport til etiketter
Du har en foresp som rapporten bygger på
Du ønsker en form (krit), hvor du kan vælge hvilke poster fra foresp. der skal med i rapporten.

Hvis det er korrekt skal du IKKE tænke på din indtastningsformular - om et medlem er 'a' eller 'b' skulle gerne være gemt i en tabel, og dermed med i førnævnte foresp.

Er det korrekt forstået ???

Niels
Avatar billede cgleerup Nybegynder
11. juli 2002 - 10:12 #25
Ja, der er det på sin vis - problemet er bare at det er lidt mere komplekst en som så, og at de omtalte kriterier derfor skal udvælges på en anden måde - faktisk virker det allerede, det eneste problem er i realiteten at jeg har 1 kriterie på hvert felt i forespørgelsen - og skal have lavet så det er nok hvis blot et af felterne stemmer overens med kriteriet - ok ?
Avatar billede nih Novice
11. juli 2002 - 10:42 #26
ja, men det kan du ikke få til at virke. Så skal du have et hav af kriterier. Uden at være soecialist i statestikberegninger bliver det noget med 14 * 13 * 12 * 11 ******* 1 'OR' dele i dit foresp.gitter.

Det korrekte er enten at opbygge et filter, som jeg har gjort, eller bygge en SQL dynamisk via VBA (meget lig et filter) og anvende rapportens 'RecordSource'

Niels

jeg går ud fra at hvis en person er registreret som både 'a' og 'b' skal han med selvom der KUN søges på 'a'.
Avatar billede cgleerup Nybegynder
11. juli 2002 - 10:46 #27
præcis der ligger mit problem
Avatar billede cgleerup Nybegynder
11. juli 2002 - 10:47 #28
da dette spørgsmål efterhånden er drejet over på samme emne som en nyere jeg har oprettet som er mere konkret, tror jeg at det vil være rigtigst at lukke dette - jeg giver dig en spand point for din assistance og tager resten selv det andet spørgsmål holder jeg så åbent
Avatar billede nih Novice
11. juli 2002 - 10:48 #29
du kan prøve at slette ALLE de kriterier der skal være dynamiske fra din foresp.
I din rapport er en egenskab filter, skriv her et kriterie eks a = sand or b = sand  (på dansk)
så skulle den gerne sortere alt andet fra.
Avatar billede nih Novice
11. juli 2002 - 10:57 #30
takker for pts - ked af at du ikke fik det til at virke.

Niels
Avatar billede cgleerup Nybegynder
11. juli 2002 - 10:59 #31
som sagt er der gang i et andet spørgsmål omkring emnet, derfor jeg lukkede!
Avatar billede cgleerup Nybegynder
11. juli 2002 - 12:13 #32
prøver med din løsning lige nu, den med:
If Alternativknap1049 Then strWhere = strWhere & " OR [Niveau 3] = true"
men det vil ikke rigtigt spille maks!
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