Avatar billede sigyn Seniormester
04. oktober 2010 - 13:53 Der er 23 kommentarer og
2 løsninger

Vælge bestemt rapport ud af tre (eller flere for den sags skyld)

Hvis man nu har tre lidt forskellige rapporter bygget op over tre forskellige forespørgsler, over f.eks. en gruppe varenumre, men således at et varenummer KUN forekommer i én af rapporterne, kan man så ud fra én komboboks med varenumre i en formular, få valgt den rigtige rapport?
Avatar billede Slettet bruger
04. oktober 2010 - 13:59 #1
ja!~)
Avatar billede Slettet bruger
04. oktober 2010 - 14:00 #2
...du kan f.eks. lave flere kolonner i din komboboks, som indeholder information, der kan bruges til at vælge eller filtrere dine rapporter...
Avatar billede sigyn Seniormester
04. oktober 2010 - 14:20 #3
Filtrere ja, det ved jeg, jeg vil i hver af forespørgslerne bl.a.
have dette kriterie [Forms]![MinFormular]![cboVareNr)]
Men hvordan får jeg den til at vælge den rigtige rapport, altså den rapport hvor varenummeret er ? Forespørgslerne er ikke ens bygget op, og det er rapporterne heller ikke.
Avatar billede mugs Novice
04. oktober 2010 - 14:27 #4
Hvor kombinationsboks7 indeholder dine rapportnavne:

Dim VARa As String
VARa = Me.Kombinationsboks7
DoCmd.OpenReport VARa, acViewPreview, "", "", acNormal
Avatar billede Slettet bruger
04. oktober 2010 - 14:28 #5
vil det sige at et varenr kun tilhører en bestemt rapport?~)
Avatar billede mugs Novice
04. oktober 2010 - 14:58 #6
Det er vel ligegyldigt i hvilken eller hvilke rapporter varenr befinder sig. Blot kriteriet er sat, og der vælges en rapport i
comboen vil den valgte rapport blive udskrevet.
Avatar billede Slettet bruger
04. oktober 2010 - 15:08 #7
ja, men det skal åbenbart være en komboboks, som styrer det hele.. der vides nok ikke på forhånd hvilken rapport, som indeholder hit på varenr.

...en løsning kunne måske være at lave en DCount på hver postkilde og så åbner man den tilhørende rapport, til den DCount, som gav et "hit"!~)
Avatar billede mugs Novice
04. oktober 2010 - 15:35 #8
spg > Du har nok ret, mne lad os få en kommentar fra spørgeren, det plejer at hjælpe.
Avatar billede Slettet bruger
04. oktober 2010 - 15:42 #9
..han er nok gået hjem!~)
Avatar billede Slettet bruger
04. oktober 2010 - 15:42 #10
...det tror jeg også jeg gør om ganske kort tid!~)
Avatar billede Slettet bruger
04. oktober 2010 - 15:44 #11
mugs>er der ikke noget med at du også snart holder "sidste" arbejdsdag?~)
Avatar billede mugs Novice
04. oktober 2010 - 16:20 #12
Har haft :o)
Avatar billede sigyn Seniormester
04. oktober 2010 - 17:12 #13
Hun ;-) var gået hjem, og sidder nu hjemme og funderer videre.
Det er sådan at forespørgsel1 og rapport1 f.eks indeholder varenr 1,2 og 3, nr 2 indeholder 4,5 og 6 og nr 3 indeholder så 7,8 og 9. Og i komboboksen skal man så kunne vælge mellem 1-9

Normalt laver jeg en tabel med rapporterne, hvis der er flere, så kan jeg også tilføje et ekstra felt med en lidt mere brugervenlig tekst end mine til tider tricky forkortelser, men det er ikke helt nok her.

Lige nu er jeg nået frem til, at en løsning måske kunne være, at lave en forespørgsel på hver forespørgsel, hvor felt1 er varenr, og felt2 Rapport:Rapport1 (2 eller 3), og så lave en union på dem og bruge den til min komboboks.
Avatar billede mugs Novice
04. oktober 2010 - 17:30 #14
En union mener jeg vil være at skyde over målet.

Du må kunne bruge en Select Case.

Select Case Me.combo
Case 1 To 3
Udskriv rapport 1
Case 4 To 6
Udskriv rapport 2
Case 7 To 9
Udskriv rapport 3
End Select
Avatar billede sigyn Seniormester
04. oktober 2010 - 18:28 #15
Nu er varenumrene desværre ikke helt så simple, som 1-9, og de ligger heller ikke i nummerorden, således at de laveste er i den første rapport etc., og for at gøre det endnu mere kompliceret, kan et nummer godt flytte sig fra en rapport til en anden, og selv om det er numre, er det tekstfelter.
Jeg tror du har ret i, at jeg kan bruge en Select Case, men så skal den på en eller anden måde kunne gå ned i mine forespørgsler, og se om det valgte varenummer ligger i den forespørgsel.
Avatar billede mugs Novice
04. oktober 2010 - 18:40 #16
Så må du kunne bruge en DCount som sgp var inde på:S

If DCount("*", "din forespørgsel", "[Varenr]= '" & Me.varenr & "'") >0 then
udskriv rapport 1
End If

og så fremdeles med dine forespørgsler og tilhørende rapporter.
Avatar billede Slettet bruger
04. oktober 2010 - 22:05 #17
#12>!~)
Avatar billede sigyn Seniormester
05. oktober 2010 - 11:13 #18
Jeg kan ikke få det til at virke :-S
Det er if-sætningen der er et eller andet galt med, jeg får heller ikke min msgboks frem. Kan man ikke finde forespørgler på denne måde ? Jeg har en næsten tilsvarende i brug andet steds, den spørger bare ned i en tabel (kan ikke bruges her) og det virker fint.

Private Sub cmdVisRapport_Click()
On Error GoTo Err_cmdVisRapport_Click
 
  Dim VARa As String
  VARa = Me.cboVareNr
 
If DCount("*", "Forespørgsel1", "[Varenr]=' " & VARa & "'") > 0 Then
   
    MsgBox "test"
    'DoCmd.OpenReport "Rapport1", acViewPreview

End If


Exit_cmdVisRapport_Click:
    Exit Sub

Err_cmdVisRapport_Click:
    MsgBox Err.Description
    Resume Exit_cmdVisRapport_Click
   
End Sub
Avatar billede Slettet bruger
05. oktober 2010 - 11:18 #19
Prøv:

Dim VARa
VARa = Me.cboVareNr

If DCount("*", "Forespørgsel1", "[Varenr]=" & VARa) > 0 Then
Avatar billede Slettet bruger
05. oktober 2010 - 11:19 #20
...ellers er du velkommen til at sende din db til spg.eksperten@gmail.com
Avatar billede sigyn Seniormester
05. oktober 2010 - 11:21 #21
Har fundet fejlen, et mellemrum mellem ' og ", men jeg fik ikke nogen besked om syntaksfelj
Avatar billede sigyn Seniormester
05. oktober 2010 - 11:32 #22
Så virker det :-)

Private Sub cmdVisRapport_Click()
On Error GoTo Err_cmdVisRapport_Click
 
  Dim VARa As String
  VARa = Me.cboVareNr
 
If DCount("*", "Forespørgsel1", "[Varenr]='" & VARa & "'") > 0 Then
    DoCmd.OpenReport "Rapport1", acViewPreview
End If

If DCount("*", "Forespørgsel2", "[Varenr]='" & VARa & "'") > 0 Then
    DoCmd.OpenReport "Rapport2", acViewPreview
End If

If DCount("*", "Forespørgsel3", "[Varenr]='" & VARa & "'") > 0 Then
    DoCmd.OpenReport "Rapport3", acViewPreview
End If

Exit_cmdVisRapport_Click:
    Exit Sub

Err_cmdVisRapport_Click:
    MsgBox Err.Description
    Resume Exit_cmdVisRapport_Click
   
End Sub

Jeg vil gerne have lov til at dele points mellem jer med flest til spg, da han var først inde på det rigtige, så spg, kan du ikke også lægge et svar.
Og tusind tak for hjælpen til jer begge
Avatar billede Slettet bruger
05. oktober 2010 - 12:15 #23
takker!~)
Avatar billede sigyn Seniormester
05. oktober 2010 - 12:25 #24
Selv tak :-)

Mugs, det var egentlig #16 der skulle have været grøn, men points til dig under alle omstændigheder
Avatar billede mugs Novice
05. oktober 2010 - 13:28 #25
Tak for point.
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