Neuigkeiten:

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

Mobiles Hauptmenü

mehrere Datensätze mit Kombinationsfeld anzeigen?

Begonnen von pitty2k, Februar 01, 2012, 13:50:32

⏪ vorheriges - nächstes ⏩

pitty2k

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

Jonny

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

pitty2k

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.

Jonny

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.

pitty2k

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

MzKlMu

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.
Gruß Klaus

pitty2k

Hallo,

datei ist zu groß und nur das Formular senden, bringt wahrscheinlich nix.

Gruß
pitty


[Anhang gelöscht durch Administrator]

Jonny

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

pitty2k

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

Jonny

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

pitty2k

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.. ;-(

pitty2k

#11
Hallo Jonny,

Klasse und Danke - es funktioniert!!

pitty2k

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

DF6GL

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....