Hi schon wieder^^,
Ich hab jetzt mehrere Ufos in meinem Hauptformular. Also man kann zu jedem Song mehrere Genres, Künstler, Sprachen und CDs auf denen das Lied drauf ist auswählen. So jetzt sagen wir hab ich paar Songs eingtragen und will in einem anderen Formular z.B. alle Lieder haben die auf deutsch sind und das Genre Hip Hop haben auswählen. Oder alle Songs die auf der CD „Dis is wo ich herkomme“ ist. Oder alle Songs die von Sido sind usw. Bekomme ich das irgendwie in einem Formular hin? Ich denke dass es irgendwas mit Abfragen zu tun haben wird, aber ich hab noch nicht gefunden wie ich eine Abfrage so Variabel machen kann, dass ich im Formular etwas eintippe bzw. auswähle und dann wird es mir angezeigt.
Ich danke auch schonmal im Vorraus
Hallo,
Ich hab jetzt mehrere Ufos in meinem Hauptformular. Also man
kann zu jedem Song mehrere Genres, Künstler, Sprachen und CDs
auf denen das Lied drauf ist auswählen.
ok, gut
So jetzt sagen wir hab
ich paar Songs eingtragen und will in einem anderen Formular
in einem anderen Formular?
d.h. du willst keinen Filter anwenden, sondern eine „gefilterte“ Abfrage für das neue Formular entwerfen?
oder soll im neuen Formular die Filterung erfolgen?
z.B. alle Lieder haben die auf deutsch sind und das Genre Hip
Hop haben auswählen. Oder alle Songs die auf der CD „Dis is wo
ich herkomme“ ist. Oder alle Songs die von Sido sind usw.
Bekomme ich das irgendwie in einem Formular hin?
ja
Ich denke dass es irgendwas mit Abfragen zu tun haben wird,
richtig
aber ich hab noch nicht gefunden wie ich eine Abfrage so Variabel machen
kann, dass ich im Formular etwas eintippe bzw. auswähle und
dann wird es mir angezeigt.
dann fange erst mal mit dem Formular an:
- Endlosformular
- im Kopf des Formulars die Kombi-Felder für die Suche erstellen
- Datenbasis ist eine Abfrage, die alle deine Tabellen enthält
- in der Abfrage gibst du als Kriterium das entsprechende Suchfeld deines Formulars an.
Beispiel: du suchst nach Genre
- Dann ziehe das Feld Genre in eine Spalte der Abfrage
- als Kriterium dann das Suchfeld deines Formulars eintragen ->
Forms!MeinForm.Meinsuchfeld_für_genre
nun hast du nur noch das Problem, wenn einige Suchfelder ohne Inhalt (leer) sind!
Dafür musst du den Platzhalter „*“ mit in dein Kriterium aufnehmen und in der Abfrage entsprechend ändern in ->
WIE „*“ & Forms!MeinForm.Meinsuchfeld_für_genre
Dir ist klar, dass du für jedes Feld, dass du als Kriterium nutzen willst, ein entsprechendes Suchfeld erzeugen musst!?
!Wichtig!
Da du hier deine Feld- und Formularbezeichnungen nicht mitgeteilt hast, solltest du die im Beispiel genannten Bezeichnungen entsprechend deiner Benennung ändern.
Grüße aus Rostock
Wolfgang
(Netwolf)
Hey vielen dank, dass hat mir schon mal etwas weiter geholfen. Aber ich muss doch sicher ein aktualisieren ereignis ausführen oder? weil bei mir kommen alle daten im Formular wenn ich es öffne. Nur sobald ich z.B. eine sprache auswähle, dann wird alles leer. Bei Kriterium hab ich Wie „*“ & [Formulare]![Songs suchen]![Kombinationsfeld17] & „*“ & „*“ eingegeben. Und sobald ich in dem Kombi feld etwas auswähle ist alles weg. Danke noch mal im Vorraus
HAllo,
schreib zunächst im Abfragekriterium:
Wie „*“ & [Forms]![Songs suchen]![Kombinationsfeld17] & „*“
Das allein reicht aber nicht zur Aktualisierung der Anzeige der Daten im Formular.
Dort muß ein „Requery“ auf das Form beim Kombifeld-Ereignis „Nach Aktualisierung“ erfolgen:
Sub Kombi1_Afterupdate()
Me.Requery
End Sub
Solche Verweise auf Formularfelder in Abfragekriterien sind zwar recht einfach und schnell erledigt, haben aber unverhältnismäßig viele Nachteile, bzw. sind fehlerträchtig.
Alternative Methoden sind:
-
Kombi mit Hilfe des Assistenten erstellen und dabei die Suchfunktion auswählen. Dadurch wird der gefundene Datensatz im Formular „angesprungen“ (das Form positioniert).
-
Per Ereignisprozedur filtern:
Sub cmdSongTitelSuchen_Afterupdate()
Me.Filter= „SongTitel like '*“ & Me!cmdSongTitelSuchen & „*’“
Me.Filteron=true
End Sub
- „Abfrage“ (SQL-String) neu der Datenherkunft des Forms zuweisen:
Sub cmdSongTitelSuchen_Afterupdate()
Me.Recordsource=" Select * from tblSongs where SongTitel like ‚*" & Me!cmdSongTitelSuchen & "*‘"
(btw: vernünftige Benamsung verwenden und auf Leerzeichen und reservierte Wörter in Namen verzichten!)
Viele Grüße vom Bodensee
Franz , DF6GL
PS: Feedback erwünscht!
Ich hab jetzt das suchkriterium:Wie „*“ & [Forms]![Sprache1] & „*“
Und die Ereignisprozedur:
Private Sub Sprache1_AfterUpdate()
Me.Requery
End Sub
So und wenn ich jetzt in dem Kombifeld, das Sprache1 heist, zum Beispiel Deutsch auswähle, dann kommen alle Songs. Oder auch wenn ich englisch auswähle kommen auch alle. Also es wird nix gefiltert. Hab ich irgendwas falsch gemacht?
Hallo,
Ich hab jetzt das suchkriterium:Wie „*“ & [Forms]![Sprache1] &
„*“
so heißt der Verweis auf das Formualrfeld sicher nicht. Es mußß so heißen:
[Forms]![DeinFormularName]![Sprache1]
Und die Ereignisprozedur:
Private Sub Sprache1_AfterUpdate()
Me.Requery
End SubSo und wenn ich jetzt in dem Kombifeld, das Sprache1 heist,
zum Beispiel Deutsch auswähle, dann kommen alle Songs. Oder
auch wenn ich englisch auswähle kommen auch alle. Also es wird
nix gefiltert. Hab ich irgendwas falsch gemacht?
offensichtlich…
Wie heißen die Einstellungen für die Kombi-Eigenschaften:
Steuerelelentinhalt
Datensatzherkunft
Gebundenene Spalte
Spaltenanzahl
Spaltenbreiten
?
Weiterhin: wie heißt die Tabellenspalte, für die das Kriterium gelten soll und welchen Datentyp hat die? Welche Werte stehen dort drinnen?
Viele Grüße vom Bodensee
Franz , DF6GL
PS: Feedback erwünscht!
Guten Tag,
Hallo,
Ich hab jetzt das suchkriterium:Wie „*“ & [Forms]![Sprache1] &
„*“so heißt der Verweis auf das Formualrfeld sicher nicht. Es
mußß so heißen:[Forms]![DeinFormularName]![Sprache1]
Und die Ereignisprozedur:
Private Sub Sprache1_AfterUpdate()
Me.Requery
End SubSo und wenn ich jetzt in dem Kombifeld, das Sprache1 heist,
zum Beispiel Deutsch auswähle, dann kommen alle Songs. Oder
auch wenn ich englisch auswähle kommen auch alle. Also es wird
nix gefiltert. Hab ich irgendwas falsch gemacht?offensichtlich…
Wie heißen die Einstellungen für die Kombi-Eigenschaften:
Steuerelelentinhalt: leer
Datensatzherkunft: SELECT [Sprache].[SprachNr], [Sprache].[Sprache] FROM Sprache;
Gebundenene Spalte:1
Spaltenanzahl:2
Spaltenbreiten:0cm;2,54cm
?
Weiterhin: wie heißt die Tabellenspalte, für die das Kriterium
gelten soll und welchen Datentyp hat die? Welche Werte stehen
dort drinnen?
Die Spalte heist Sprache und der Datentyp ist Text
Viele Grüße vom Bodensee
Franz , DF6GLPS: Feedback erwünscht!
Wäre Toll wenn ich schnell ne Antwort kriege, oder mir auch jemand über msn,icq oder skype helfen könnte, da ich das Projekt schon am Mittwoch fertig haben muss^^
Vielen Dank noch mal für die Hilfe bisher
Hallo,
Ich hab jetzt das suchkriterium:Wie „*“ & [Forms]![Sprache1] &
„*“so heißt der Verweis auf das Formualrfeld sicher nicht. Es
mußß so heißen:[Forms]![DeinFormularName]![Sprache1]
Und die Ereignisprozedur:
Private Sub Sprache1_AfterUpdate()
Me.Requery
End SubSo und wenn ich jetzt in dem Kombifeld, das Sprache1 heist,
zum Beispiel Deutsch auswähle, dann kommen alle Songs. Oder
auch wenn ich englisch auswähle kommen auch alle. Also es wird
nix gefiltert. Hab ich irgendwas falsch gemacht?offensichtlich…
Wie heißen die Einstellungen für die Kombi-Eigenschaften:
Steuerelelentinhalt: leer
Datensatzherkunft: SELECT [Sprache].[SprachNr],
[Sprache].[Sprache] FROM Sprache;
Gebundenene Spalte:1
Spaltenanzahl:2
Spaltenbreiten:0cm;2,54cm?
Weiterhin: wie heißt die Tabellenspalte, für die das Kriterium
gelten soll und welchen Datentyp hat die? Welche Werte stehen
dort drinnen?Die Spalte heist Sprache und der Datentyp ist Text
dann nimm für das Kriterium (den Verweis auf das Kombifeld) die Spalte „SprachNr“ und nicht „Sprache“ , weil die erste Kombifeld-Listenspalte (die auch die gebundene ist) als Referenzziel dient.
Wäre Toll wenn ich schnell ne Antwort kriege, oder mir auch
jemand über msn,icq oder skype helfen könnte, da ich das
Projekt schon am Mittwoch fertig haben muss^^
Vielen Dank noch mal für die Hilfe bisher
Denke mal, dass Skype nicht unbedingt nötig ist, wenn doch, dann
Ercons
bzw.
erconsult
(bin aber nicht dauernd erreichbar.)
Viele Grüße vom Bodensee
Franz , DF6GL
PS: Feedback erwünscht!