Hallo Experten,
In meinem Formular "Umsatzübersicht" kann ich entweder alle Kunden meines Gebietes auflisten oder per Schaltfläche nach den Städten in meinem Gebiet selektieren. Derzeit ist dies wie folgt gelöst:
Eine Schaltfläche beinhaltet folgenden Code:
Private Sub Befehl49_Click()
Bezeichnungsfeld42.Caption = "Ort"
Me.RecordSource = "SF Auswertung Ort"
End Sub
Die Abfrage "SF Auswertung Ort" beinhaltet das Kriterium
Wie ("*" & [Bitte Ort oder Namensfragment eingeben:] & "*")
bezogen auf den Wert Ort.
Dies klappt gut, nur muß ich hier immer den Ort in das Abfragefenster eintippen.
Habe versucht, ein Kombinationsfeld in das Formular einzusetzen. Bin soweit gekommen, dass ich die die in der Tabelle vorhandenen Städte im Kombinationsfeld anwählen kann. Habe dabei die Option
"Einen Datensatz im Formular basierend auf den im Kombinationsfeld gewählten Wert suchen" verwendet.
Es gelingt mir aber nicht, damit den Ort im Formular zu setzen. Würde mich über Euren Tipp freuen !
Danke und Gruß
Neutrino
Hallo,
zeige den zum Suchen erzeugten Code.
Sollte eigentlich gleich eine Selbstverständlichkeit sein.
Guten Morgen,
meinst Du den Code aus dem Kombinationsfeld ? Der lautet wie folgt:
Private Sub Kombinationsfeld138_AfterUpdate()
' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[Ort] = '" & Me![Kombinationsfeld138] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Ich kann im Kombinationsfeld auch den entsprechenden Ort anwählen, schaffe es aber nicht, den Datensatz damit umzuschalten.
Gruß
Neutrino
Hallo,
bitte nenne folgende Eigenschaften des Kombis:
Gebundene Spalte
Datenherkunft (Select ....)
Spaltenzahl
Spaltenbreiten
PS:
Benenne die Steuerelemente sinnvoll, in 2 Wochen weißt Du nicht mehr was Kombinationsfeld138 war. Und mache es gleich, Du wirst es sonst bereuen.
Moin,
das alles sagt mir nichts, bin Laie... Die beschrieben Methode in meiner Eingangserklärung zeigt, wie es aktuell funktioniert. Hier gebe ich den Ort in das Suchfeld ein, damit werden dann die Datensätze gefiltert. Genau dies möchte ich mit dem im Kombinationsfeld selektierten Ort erreichen.
Gruß
neutrino
Hallo,
dann solltest Du Dich schleunigst in die Grundlagen von Access und z. T. auch in VBA einlesen...
Es nützt niemanden etwas, wenn Du die einfachsten Fragen nicht beantworten kannst, bzw. verstehst.
Ich wundert mich, wie Du überhaupt an den VBA-Code kommst.
Jedes Steuerelement hat Eigenschaften, die Du in der Entwurfsansicht nach Markieren des St.-El. unter Menü (Ribbon)Punkt "Eigenschaften" ansehen kannst.
Dort gibt es für das Kombifeld die vorher gefragten Eigenschaften und Angaben. Die brauchst Du nun lediglich abschreiben (kopieren) und hier posten.
Hallo,
dafür, dass ich wenig von Programmierung verstehe, habe ich dennoch eine sehr leistungsfähige Datenbank, die über min 10 Jahre immer besser wurde und absolut zuverlässig läuft. Vieles kam hierzu aus solchen Foren, früher Spotlight.
Eigenschaften Kombifeld siehe Anhang
Gruß
neutrino
Hallo,
naja, dann habe ich Dir wohl in Spotlight zu seiner Zeit das Gleiche geraten 8) ;)
Dein Code sollte eigentlich funktionieren, sofern der Formular-Recordset nicht durch eine Abfrage (Recordsource) vor gefiltert ist.
Versuch mal alternativ:
Private Sub Kombinationsfeld138_AfterUpdate()
Me.Recordsource = "Select * from tblDeineTabelle Where [Ort] = '" & Me![Kombinationsfeld138].Column(0) & "'"
End Sub
Hallo Franz,
ja stimmt, glaube ich kann mich an Dich erinnern, ist aber schon länger her. Das schöne ist doch, dass man mit Hilfe von Foren und etwas Ehrgeiz auch als Laie tolle Lösungen finden kann.
Dein Tipp hat funktioniert Daaanke!
Jetzt habe ich nur noch 2 kleine Problemchen.
1.) Im Kombifeld erscheinen nun manche Orte doppelt und dreifach, obwohl gleich geschrieben. Oder sollte man lieber eine separate Tabelle mit den Ortsnamen anlegen ?
2.) Wie kann ich erreichen, dass ich auch alle Orte angezeigt bekommen kann. Einen Datensatz mit * anlegen ?
Danke und Gruß
Neutrino
Hallo,
es kommt halt ganz drauf an, was insgesamt denn gemacht werden soll. Ich nehme an, dass es sich bei "SF Auswertung Gesamt" um eine Abfrage handelt, die für einen Bericht verwendet werden soll.
Eine separate Tabelle nur für "Orte" ist m. E. nicht nötig.
Das Ausblenden von Duplikaten wird mit z. B. "Distinct" in der Select-Liste erreicht:
Select Distinct Ort from [SF Auswertung Gesamt] order by Ort
oder auch mittels Gruppierung der DS:
Select Ort from [SF Auswertung Gesamt] Group By Ort
Wenn ein "Alle" - Eintrag (Sternchen) im Kombifeld für die Filterung aller DS gebraucht wird, könnte das so gelöst werden:
Datensatzherkunft des Kombis:
Select "*" as Ort from [SF Auswertung Gesamt] order by Ort
Union
Select Distinct Ort from [SF Auswertung Gesamt] order by Ort
und Anpassen des Codes:
Private Sub Kombinationsfeld138_AfterUpdate()
Me.Recordsource = "Select * from tblDeineTabelle Where [Ort] [color=red]Like[/color] '" & Me![Kombinationsfeld138].Column(0) & "'"
End Sub
Suuuper !!
Vielen Dank !!
Neutrino
Hallo Franz,
bekomme den Distinct Befehl nicht hin, damit keine doppelten Ortsnamen angezeigt werden. Derzeit lautet meine Ereignisprozedur des Kombifeldes:
Private Sub Kombinationsfeld138_AfterUpdate()
Me.RecordSource = "Select * from [SF Auswertung Gesamt] Where [Ort] Like '" & Me![Kombinationsfeld138].Column(0) & "'"
End Sub
Wie genau wird nun dieser Distinct Befehl eingefügt ?
Nachtrag:
Die Datensatzherkunft habe ich wie angegeben geändert in
Select "*" as Ort from [SF Auswertung Gesamt] order by Ort
Union
Select Distinct Ort from [SF Auswertung Gesamt] order by Ort
Das Sternchen funktioniert, aber es werden im Pulldownmenü nach wie vor alle Städte mehrfach angezeigt.
Nochmals Danke und Gruß
Neutrino
ERLEDIGT, hatte mich im Code vertippt.
Alles bestens DANKE !!!!!