Avatar billede webhelpers Praktikant
25. september 2001 - 13:08 Der er 11 kommentarer og
1 løsning

Dynamisk sortering

Hej,
Jah, mine problemer er ikke overstået endnu - der opstår altid nye.

Jeg har en søgning, der åbner en valgt rapport(10 forskellige at vælge ml.)på baggrund af between kriterie (som der også er 10 forskellige af). Det skal være muligt at angive hvad resultatet af rapporten skal sorteres efter, og det sjove er så, at det skal brugeren selv vælge efter han har indtastet kriterie/kriterier. Fx. vælger han at se en \"emnerapport\" på alle kunder som har postnr 2000-2400. Når dette er sket, skal der dukke en formular op med 10 forskellige knapper - en for hver sortering (fx. sortering efter \"NAvn\" \"Nummer\" osv.) Når brugeren så trykker på knappen \"Navn\" kommer resultatet frem i den rapport han har valgt, og sorteret efter \"NAvn\".
Smart, men jeg kan bare ikke lige gennemskue, hvad vba-koden skal være, for den skal være dynamisk på den måde, at sorteringen som brugeren vælger kan være forskellig fra gang til gang. Håber der er hjælp at hente
25. september 2001 - 13:13 #1
Du kan angive sorteringsrækkefølge efter at rapporten er åbnet således:

  DoCmd.OpenReport \"MinRapport\", acViewPreview
  Reports!rptBOG.OrderBy = \"Felt3\"
  Reports!rptBOG.OrderByOn = True


/Thomas
Avatar billede terry Ekspert
25. september 2001 - 14:01 #2
Hi numsi and Thomas!
I have had a bit to do with this program so perhaps I can make some suggestions.
On the form where you enter the intervals, for example 2000-2400 you could place checkbox beside each one. Then when you build your WHERE clause for opening the report you can also build a SORT clause. If it is only one field then you can do it as its done with the VIS button.
Then you place the last two lines as Thomas says, after the docmd.openreport line.
NOTE: SortOrder is a variable you use for the chosen sort field

Reports(stDocName).OrderBy = SortOrder
Reports(stDocName).OrderByOn = True

I think it spossible to refrence a report like this.
Oh something else numsi. I havent looked so much at the report form before, but you could simplify this quite a lot. You have almost the same code for each button. Place this in a function and send the name of the report and the sort order to the function. If you alter somethng there will only be one place to make the alteration, now you have ten!

terry
Avatar billede webhelpers Praktikant
25. september 2001 - 14:15 #3
Ok, jeg vil forsøge. Jeg har først tid til at kigge på det i aften, så jeg vender lige tilbage.

Men kan det så ikke lade sig gøre at sende navnet på rapporten til sorterings-formularen, så hvis brugeren trykker på sorteringen \"Navn\", så åbnes den pågældende rapport sorteret efter \"NAvn\"...?
Avatar billede webhelpers Praktikant
25. september 2001 - 14:23 #4
terry
jeg prøver din checkbox-løsning, den lyder fornuftig.
Avatar billede terry Ekspert
25. september 2001 - 14:25 #5
OK!
25. september 2001 - 14:36 #6
Numsi-> mht at lave en funktion, så kunne den se således ud:

Public Function Udskriv(Rapportnavn as string, Sortering as String)
  docmd.Openreport Rapportnavn,acviewpreview
  Reports(Rapportnavn).OrderBy = SortOrder
  Reports(Rapportnavn).OrderByOn = True
end sub

Denne funktion kalder du så bare fra hver af dine knapper.

/Thomas
Avatar billede webhelpers Praktikant
26. september 2001 - 01:09 #7
Hej med jer, jeg har tænkt lidt over jeres forslag, men ang. terrys forslag, så vil han ikke bruge checkbokse, fordi han vil bruge musen så lidt som muligt. Derfor vil jeg holde fast i en løsning som skal være følgende:
Brugeren indtaster kriterie, herefter vælger han en rapport og derefter popper der en formular op der spørger hvilke muligheder han vil sortere efter. Formularen der popper op skal se således ud:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim sOrder As String

If KeyCode = vbKey1 Then
    sOrder = \"Nummer\"
End If

Jeg har brugt autokeys, så han fx bare kan taste 1 for at sortere resultatet efter \"Nummer\". Men hvordan skal koden være for at sortering ved hvilken rapport brugeren har valgt at ville se, og derved skal åbne efter valgt sortering??
Avatar billede webhelpers Praktikant
26. september 2001 - 01:10 #8
og når jeg skriver \"han\" så mener jeg ham der skal have databasen.
Avatar billede webhelpers Praktikant
26. september 2001 - 01:38 #9
Det handler vel om at få mine 10 forskellige rapporter og formularen \"sortering\" til at spille sammen på en eller anden dynamisk måde.
Avatar billede webhelpers Praktikant
27. september 2001 - 18:57 #10
halloo 8o)
er der slet ingen til at hjælpe??
Avatar billede terry Ekspert
27. september 2001 - 20:05 #11
you can send me the newest version and I will take a look - you have my address I think!

terry
Avatar billede webhelpers Praktikant
28. september 2001 - 18:39 #12
thanks terry!
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