ich habe ein Fahrtenbuch als DB erstellt. Nun gibt es hier mehrere Fahrzeuge, deren Fahrten in einem Fahrtenbuch eingetragen werden. Mein Fahrtenbuch-Formular zeigt also alle Fahrten und Daten in einer Datenblattansicht von allen Fahrzeugen an.
Kann man sich (z.B. mittels Kombinationsfeld im Formularkopf) alle Fahrten von dem im Kombinationsfeld ausgewählten Fahrzeug anzeigen lassen? Ich bekomme das irgendwie nicht hin.
Über Hilfe wäre ich sehr dankbar, denn ich bin bald am Verzweifeln... ???
Gruß
pitty
Hallo Pitty,
es gibt mehrere Möglichkeiten.
Da hier scheinbar ein unschönes DB-Modell vorliegt (alles in eine Tabelle) würde ich dir
vorschlagen eine Abfrage zu machen und das Formular mit der Abfrage zu verbinden.
In diese Abfrage kannst du dann dich auf dein Kombi beziehen und dadurch filtern.
Gruß
Johann
ZitatDa hier scheinbar ein unschönes DB-Modell vorliegt (alles in eine Tabelle)
die Datensatzquelle des frm Fahrtenbuch ist eine Abfrage. (und: Es gibt auch reichlich Tabellen ;))
im Ernst: ich möchte alle Fahrten von allen Fahrzeugen erstmal in
einem Formular haben.
Auf keinen Fall möchte ich per Auswahlabfrage mehrere Fahrtenbücher erstellen.
Dann sollte man sich per Kombinationsfeld (o.ä) die Fahrdaten einzelner Fahrzeuge anzeigen lassen können.
Hallo,
hab ich wohl falsch erkannt.
Jetzt hoffe ich richtig zu liegen.
Du könntest ja einen Filter erstellen:
if isnull(me!kombinationsfeld) then
me.filteron = false
else
Me.Filter = "FahrzeugID = " & me!Kombinationsfeld
me.filteron = true
end if
Als Ereignis nach aktualliseren vom Kombifeld.
Hallo Jonny,
danke für die schnelle Antwort. Aber ich denke, ich kann mich wiedermal nicht so richtig ausdrücken. :'(
Vermutlich benötige ich "nur" einen formularbasierten Filter, wie er auch standardmäßig von access vorgegeben ist, aber eben als Ereignis mit vba. Nun bin ich in vba überhaupt nicht bewandert und habe mal folgendes versucht:
Private Sub cmb_Fahrzeugauswahl_AfterUpdate()
Me.Filter = "Fahrzeugnummer='" & Me.Fahrzeugnummer & "'"
Me.FilterOn = True
End Sub
Allerdings funktioniert das nicht so:
wenn ich das Kombifeld anklicke, habe ich jedes Fahrzeuge so oft wie ich Fahrten habe, zur Auswahl, naja und richtig wählt es auch nicht aus. Benutze ich die Fahrzeug_ID wird es auch nicht besser, denn dann habe ich 25-mal Einsen und zweien im Kombinationsfeld untereinander zur Auswahl.
Das gleiche Problem wird mir dann später bei den Kosten noch bevorstehen. Denn die Kosten sollen dann auch nach Kostengruppen und zusätzlich nach Fahrzeugen gefiltert werden können.
Ich habe also hier ein großes Problem und hoffe auf Hilfe.
danke schon mal im Voraus
Gruß
pitty
Hallo,
wenn Du eine Beispieldb bereitstellst (Access2003) ist das sicher schnell geregelt.
Das ist an sich keine Problem, aber halt aufwendig zu beschreiben. Das Vorgehen hängt auch von der Struktur der Tabellen (und den Beziehunegn der Tabellen) ab.
Hallo,
datei ist zu groß und nur das Formular senden, bringt wahrscheinlich nix.
Gruß
pitty
[Anhang gelöscht durch Administrator]
Hallo Pitty,
so wie ich das sehe hast du keine Trennung zwischen Fahrzeuge und Fahrten. Dadurch auch den Eintrag n-mal im Kombifeld.
Ich würde eine Tabelle Fahrzeuge machen und eine zweite Tabelle Fahrten (verknüpft über die FahrzeugID).
Bei den Filter hast du ein Textfeld und das macht mich stutzig. Wie ist denn die Datenherkunft für das Kombifeld?
Kannst du den SQL-String hier mal einstellen?
Mal sehen wie wir weiterkommen wenn diese Info´s vorliegen.
Gruß
Johann
Hallo,
die Tabelle Fahrten und Fahrzeuge beides verknüpft über die Fahrzeug_ID ist vorhanden
SELECT [Fahrtenbuch Abfrage zweites Fahrzeug].[Fahrzeug_ID], [Fahrtenbuch Abfrage zweites Fahrzeug].[Fahrzeugnummer] FROM [Fahrtenbuch Abfrage zweites Fahrzeug];
gruß
Pitty
Hallo,
da kommen wir ja wieder etwas weiter.
Nimm als Datenherkunft für das Kombifeld die Tabelle Fahrzeuge dann kommt jeder Eintrag nur einmal.
Beim Filter nimmst du dann die Fahrzeug_Id weil die vom Standard her im Kombifeld als gebundene Spalte steht.
Sollte dann klappen.
Hast du schon mal daran gedacht das hier ein Haupt und Unterformular besser wäre?
Gruß
Johann
danke dir, ich probier das gleich mal aus. Das mit dem Unterformular hatte ich versucht, allerdings hat es mir da die Start und Zieladressen nicht mehr angezeigt. und da ich nun schon seit vielen Tagen rumprobiere und mich dabei immer mehr verzettle, hab ichdas dann gelassen.. ;-(
Hallo Jonny,
Klasse und Danke - es funktioniert!!
Hallo,
nun stehe ich natürlich vor dem nächsten Problem:
Ich möchte, dass das Zweite vom Ersten abhängig ist.
1. Kombinationsfeld:
Datensatzherkunft:tbl Fahrzeuge
Private Sub Fahrzeuge_AfterUpdate()
If IsNull(Me!Fahrzeug_ID) Then
Me.FilterOn = False
Else
Me.Filter = "Fahrzeug_ID Like '*" & Me!Kombinationsfeld52 & "*'"
Me.FilterOn = True 'Filter einschalten
End If
End Sub
2. Kombinationsfeld:
Datensatzherkunft:tbl Kostengruppen
Private Sub cmb_Kostengruppen_AfterUpdate()
If IsNull(Me!Kostengruppen_ID) Then
Me.FilterOn = False
Else
Me.Filter = "Kostengruppen_ID Like '*" & Me!cmb_Kostengruppen & "*'"
Me.FilterOn = True 'Filter einschalten
End If
End Sub
tbl Kostengruppen und tbl Fahrzeuge stehen in keiner direkten Beziehung zueinander. (siehe Bild weiter oben)
Ich habe nun schon etliches probiert, aber egal, was ich mache, es bleibt entweder ein Kombifeld leer oder es wählt alle Kosten zu den Fahrzeugen aus.
Kann mir jemand helfen - bitte?
Gruß
Pitty
Hallo,
Zitattbl Kostengruppen und tbl Fahrzeuge stehen in keiner direkten Beziehung zueinander
Dann funktioniert das "abhängige Kombifeld" nur, wenn es auf einer Abfrage über alle beteiligten Tabellen baisert....