Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Listenfeld mittels Kombifeld filtern

Begonnen von claudia2324, September 18, 2012, 17:01:04

⏪ vorheriges - nächstes ⏩

claudia2324

Hallo,

ich habe eine Frage an die Spezialisten als Anfänger.  

Über ein Kombifeld 'KKursraum' (enthält Raumnummer 1,2,3,4 als Werteliste) in einem Listenfeld 'Filterliste' Daten aus einer Abfrage filtern.

Vor der Filterung sollen alle Datensätze im Listenfeld stehen. Über einen Button "Filter zurücksetzen" sollen die Datensätze wieder ungefiltert angezeigt werden. (Später..... sollen die DS in der gefilterten Liste an einen Bericht übergeben werden.)

Eigenschaften des Listenfelder 'Filterliste':

SELECT Kurs.Raumnr Kurs.Datum Kurs.Uhrzeit Kurs.Teilnehmer_ID Kurs.Teilnehmer_Nachname Kurs.Teilnehmer_Vorname
FROM Kurs WHERE (((Kurs.Raumnr) Like [KKursraum]));;;

VBA:

- Beim Öffnen des Formulars für die Filterung ,,Orga_Kurs"

Private Sub Form_Open(Cancel As Integer)
Me!KKursraum,.SetFocus
End Sub


Private Sub Filterliste_Click()
Me.Filter = "Raumnr =  " & Me!lFilterliste.Column(0)  ' & "'"
Me.FilterOn = True
End Sub

Private Sub KKursraum_AfterUpdate()

Wie muss hier der Code lauten?

Ich hab da schon vieles probiert, aber mir fehlt einfach der richtige Einstieg....

Über Hilfe würde ich mich riesig freuen.

Viele Grüße

Claudia

DF6GL

#1
HAllo,


etwa so (unter der Voraussetzung, dass "Raumnr" den Datentyp Zahl,Long in der Tabelle hat):

Private Sub KKursraum_AfterUpdate()
Me!Filterliste.Rowsource = "SELECT Kurs.Raumnr Kurs.Datum Kurs.Uhrzeit Kurs.Teilnehmer_ID Kurs.Teilnehmer_Nachname Kurs.Teilnehmer_Vorname
FROM Kurs WHERE Raumnr = " & Me!KKursraum
End Sub


/edit/  im folgenden SQL-String fehlten natürlich die Kommata als Trennzeichen in der Select-Feldliste  ...

Private Sub Filterzurücksetzen_Click()
Me!Filterliste.Rowsource = "SELECT Kurs.Raumnr  ,     Kurs.Datum  Kurs.Uhrzeit  ,    Kurs.Teilnehmer_ID    Kurs.Teilnehmer_Nachname   ,   Kurs.Teilnehmer_Vorname
FROM Kurs"
End Sub

claudia2324

#2
Hallo,

und vielen Dank.

Ich hab den Code angepasst für Private Sub KKursraum_AfterUpdate() und Private Sub Filterzurücksetzen_Click() und eingefügt. Den Button "Filterzurücksetzen" habe ich ebenfalls erstellt.

Leider funktioniert es nicht. Die Liste erscheint nicht beim Öffen des Formulars und nach dem Filtern mittels den Kombifeldes KKursraum tut sich auch nichts.

Ja, "Raumnr" hat den Datentyp Zahl,Long.

Was läuft falsche?!  :-\

claudia2324

#3
Weitere Effekte sind mir gerade aufgefallen.

Wenn ich das Formular zum Filter öffne "Orga_Kurs" stehen in dem Listenfeld "Filterliste" die Feldnamen korrekt in den Spalten (also Raumnr, Urzeit ....)

Wenn ich dann mittels KKursraum (Kombibox) filtere verschwindet alles. Gehe ich dann in die Entwurfsansicht und wieder zurück in die Formularansicht stehen die Daten wie gewünscht im Listenfeld. Klicke ich dann auf "Filter zurücksetzen"  wird das Listenfeld gelöscht wie gewünscht samt der "Spaltenüberschriften" bzw. Feldnamen. Wenn die Feldnamen als Spaltenüberschriften so zu sagen fix sein könnten wäre das klasse.

Über hilfreiche Tipps bei der Fehlersuche wäre ich sehr dankbar.

VG

DF6GL

Hallo,

lad die Db hier hoch (gezippt und datenreduziert), dann kann besser nachgesehen werden.



claudia2324

Würde ich gerne, aber das darf ich unter keinen Umständen. Schade.... :'(

Gibt es noch eine andere Möglichkeit?

MzKlMu

Hallo,
ZitatWürde ich gerne, aber das darf ich unter keinen Umständen.
man kann eine DB auch anonymisieren. Alle Datensätze löschen und in jede Tabelle 2-3 Speildatensätze anlegen. Zusätzlich kann die DB noch auf die Objekte verkleinert werden, die zur Darstellkung des Problems notwendig sind. Das wäre der übliche Weg für eine Beispieldb.
Gruß Klaus

claudia2324

Es ist nicht meine DB. Ich soll lediglich um die beschriebenen Funktionen erweitern. Das mit den Daten löschen und Test-DS einfügen verstehe ich. Ich bin nicht der Urheber und die DB gehört meinem Arbeitgeber der diese ggf auf höhere Systeme umstellen will und ggf auch vertrieben. Ich denke da ist kein Spielraum für mich, oder?

Schade...  >:( Dann gibt es wohl keine Möglichkeit die Ursache der Probleme auf eine andere Art zu finden.

Ich bedanke mich für die sehr gute Hilfe bis hierhin.

MzKlMu

Hallo,
Du musst doch für eine Beispieldb an der ursprünglichen DB gar nichts ändern. Erstelle eine neue DB und importiere die Objekte die für die Nachstellung des Problems notwendig sind.
2-3 Spieldatensätze erstellen > komprimieren >Zippen > hochladen
Gruß Klaus

claudia2324

Ach so, ok, ja dann versuche ich mal den relevanten Teil in einer neuen DB so abzuändern, dass "Ursprüngliches" nicht mehr erkennbar ist...

Hoffe es gelingt, dann lade ich hier hoch.

Danke nochmal.... :)

claudia2324

Hallo,

ich habe die Datenbank nun in reduzierter Form angehängt.

Wie schon gesagt, die Filterung klappt nur, wenn man nach der Auswahl mit dem Kombifeld "KKursraum" in den Entwurdmodus geht und dann wieder zurück ?!  :-\

Ich habe noch zwei weitere Anliegen/Probleme:

--> Die Kursgebühr soll an den Bericht übergeben werden. Dieser Gebühr wird 'manuell' eingegeben. Wie funktieniert das?

--> Ich finde es unschön, dass die Berichtsnamen so wie die Raumnummer benannt sind. Wie kann ich den Berichten eindeutigere Namen geben, sodass die Anzeige der Daten aus dem gefilterten Listenfeld trotzdem funktieniert?

Hoffe nun, dass das jemand in meine DB rei nschat und mit helfen kann.  :)

LG

Claudi


[Anhang gelöscht durch Administrator]


claudia2324

Hallo und großes Dankeschön! :) Klappt alles in der Version von DF6GL!

Ich hab nun die Bestandteile in die bestehende DB übernommen. Leider ist es nun wieder so, dass die Filterung erst nach dem Wechsel in den Entwurfsmodus funktioniert. Was ist das für ein Problem? Wo liegt die Ursache?

LG

claudia2324

Ach ja...

beim Kompilieren des VBA-Codes bekomme ich an folgender Stelle beim Aufruf zu den Berichte eine Fehlermeldung:

Private Sub Kursliste_Click()
.....

Err_Befehl_Kursliste:

    MsgBox Err.Description
    Resume Exit_Befehl_Kursliste ---> Fehlermeldung: "Sprungmarke nicht definiert"

Woran liegt das?

Ich hoffe ihr könnt mir nochmal helfen.

LG

Beaker s.a.

Hallo Claudia,
Da fehlt wohl vor der Error-Sprungmarke noch ein Schnipsel Code,
etwa so:
.
.
Exit_Befehl_Kursliste:
     'Code für einen kontrollierten Ausstieg
     Exit Sub
Err_Befehl_Kursliste:

hth
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)