PDA

Vollständige Version anzeigen : optionsfeld einrichten? geht das???


martiniz
17.10.2001, 11:55
hallo zusammen,

ich habe einen bericht generiert, der diverse daten wiedergibt. der bericht basiert auf einer abfrage.

ich habe folgendes im sinn:
wenn der user den bericht über das form öffnet (durch klicken auf einen button) soll zuerst eine optionsbox erscheinen, in der verschiedene möglichkeiten der sortierung vorgegeben sind. erst nach der auswahl soll dann der bericht ausgedruckt werden.

ich habe leider keinerlei erfahrungen wie so etwas gehen soll. kann mir hierbei jemand helfen?

im voraus schon mal vielen dank!!!

Speedy
17.10.2001, 12:45
Ich würde die Orderby gleich über das Formular anbieten,und am Schluß einen zusammengesetzten sqlstring übergeben. Nicht erst nachdem der Button zum drucken des Berichts ausgelöst wurde. Das verwirrt nur.

gruß

speedy

Res1999
17.10.2001, 13:26
Wenn du mit hilfe einer Abfrage arbeiten willst dann mußt du einfach die Werte des jeweiligen Optionsfelds im Kriterienfeld abfragen und deine Daten entsprechend filtern.

Christian

Stema
17.10.2001, 13:51
Hallo zusammen,

ich muß auch mal meinen Senf dazu geben. Es ist eigentlich total banal.

Im Formular kann man über das Menü Datensätze das Formlar sortieren und auch filtern. Man könnte dafür auch schon eine CommandBar für die User erstellen. Ansonsten kannst Du natürlich selbst mit Schaltflächen für eine Sortierung sorgen.
Wenn die User dazu in der Lage sind, dann:
folgendes in das OnOpen-Ereignis Deines Berichtes setzten:

Me.RecordSource = DeinForm.RecordSource
Me.Filter = DeinForm.Filter
Me.FilterOn = DeinForm.FilterOn
Me.OrderBy = DeinForm.OrderBy
Me.OrderByOn = DeinForm.OrderByOn

martiniz
17.10.2001, 13:54
@ speedy: ich habe es so ähnlich versucht wie du geschrieben hast; unabhängig von deinem posting. Nur bei mir wird nicht sortiert. kannst du mir das mal überprüfen?

mein code:

Private Sub cmbDruck_Click()
Dim rs As Recordset, db As Database, s As String, strX As Boolean

strX = True

If SArt = strX Then
Set db = CurrentDb
s = "select * from A_CrosslisteRpt where [Crossliste] = True order by [RIArtikelnummer];"
Set rs = db.OpenRecordset(s)

ElseIf SRM = strX Then
Set db = CurrentDb
s = "select * from A_CrosslisteRpt where [Crossliste] = True order by [Rastermaß];"
Set rs = db.OpenRecordset(s)

ElseIf SPlz = strX Then
Set db = CurrentDb
s = "select * from A_CrosslisteRpt where [Crossliste] = True order by [Pol];"
Set rs = db.OpenRecordset(s)

End If

DoCmd.RunMacro "aktualisieren"
DoCmd.OpenReport "B_Crossliste", acViewNormal

End Sub

das war's!

danke für deine (eure) antwort(en)!

Speedy
18.10.2001, 14:20
Ich hab mir erst jetzt Deinen Code angesehen.
Warum setzt Du den übergebenen Wert (string) auf einen Vergleich mit einem boolschen Wert?
Um auf Inhalt zu überprüfen?
Mir fehlt der Zusammenhang in dem Quellcode mit der Sortierung.
die Orderby ist in Ordnung. Nur wo findet die Auswahl statt´, nach der die Daten gefiltert werden?

Gruß

Speedy