Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: lutschi83 am Mai 06, 2015, 14:19:50

Titel: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: lutschi83 am Mai 06, 2015, 14:19:50
Hallo Leute,
ich benötige mal wieder eure Hilfe.
Ich habe ein Formular "Faktura", das das Textfeld "Firma" enthält. Im Unterformular "Faktura_ufa" werden alle Einkäufe dieser Firma dargestellt. Natürlich mit unterschiedlichen Rechnungsdatumsangaben. Da ich unterschiedliche "Firmen" und unterschiedliche Rechnungsdatumsangaben habe, benötige ich einen Filter. Es sollen nämlich Sammelrechnungen erstellt werden. D.h. Firma xx soll eine Rechnung erhalten mit allen Käufen von 21.03 - 20.04, Firma xy eine Rechnung mit Käufen von 01.04-30.04. Dies liegt daran, dass die Firmen unterschiedliche Rechnungsläufe haben.

Gibt es eine Möglichkeit, dies via VBA zu konstruieren?
Oder hat jemand evtl eine andere Idee, dies darzustellen.
Ich stehe momentan total auf dem Schlauch... :-[
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: el_gomero am Mai 06, 2015, 14:55:20
Hallo,

Zitat
Gibt es eine Möglichkeit, dies via VBA zu konstruieren?
Oder hat jemand evtl eine andere Idee, dies darzustellen.
Ich stehe momentan total auf dem Schlauch... :-[

Das ist weder ein Problem der Programmierung, noch der Filterung. Dazu braucht es ein ordentliches Datenmodell, das die Information an entsprechender Stelle aufnimmt, zB Feld Abrechnungstag in Tabelle Firma. Möglicherweise auch noch eine Tabelle für die Abrechnungszeiträume je Firma, da diese evt. über Weihnachten, etc nicht auf den sonst üblichen 21. KT fallen. Aber ohne nähere Kenntnis der Gegebenheiten kann hier nur geraten werden.
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: lutschi83 am Mai 13, 2015, 10:38:17
Hallo,

ich habe bei meinem Endlosformular zwei Textfelder "txtvon" und "txtbis" eingebaut. Nun möchte ich die Werte, die im Feld "Rechnungsdatum" im Unterformular "Faktura_ufa" in diesem Zeitraum sind filtern. Bekomme ich das mit diesem Code gelöst?
Dim strDatumVon As String
Dim strDatumBis As String

If IsDate(Me.txtvon) And IsDate(Me.txtbis) Then
strDatumVon = Format$(Me!txtvon, "\#dd-mm-yyyy\#")
strDatumBis = Format$(Me!txtbis, "\#dd-mm-yyyy\#")
Forms!faktura!Faktura_ufa!Rechnungsdatum.Filter = "Forms!faktura!faktura_ufa![Rechnungsdatum] Between " & strDatumVon & " " & _
"And " & strDatumBis
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
End If


Wenn ich nämlich den Button "filter" betätige, tut sich nichts.
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: el_gomero am Mai 13, 2015, 10:46:34
(mindestens) der Prozedurrumpf fehlt
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: lutschi83 am Mai 13, 2015, 10:54:37
Hi,
Welcher Prozedurrumpf?
Das ist alles, was ich also Code habe...
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: el_gomero am Mai 13, 2015, 10:55:47
Prozedurrumpf zb

Private Sub btnFiltern_Click()
End Sub
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: lutschi83 am Mai 13, 2015, 10:59:57
Private Sub Filter_Click()

Dim strDatumVon As String
Dim strDatumBis As String

If IsDate(Me.txtvon) And IsDate(Me.txtbis) Then
strDatumVon = Format$(Me!txtvon, "\#dd-mm-yyyy\#")
strDatumBis = Format$(Me!txtbis, "\#dd-mm-yyyy\#")
Forms!faktura!Faktura_ufa!Rechnungsdatum.Filter = "Forms!faktura!faktura_ufa![Rechnungsdatum] Between " & strDatumVon & " " & _
"And " & strDatumBis
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
End If
'DoCmd.OpenReport "Faktura", acViewReport, , "firma= " & Me.Firma
End Sub


Sorry, stand auf dem Schlauch....
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: el_gomero am Mai 13, 2015, 11:05:16
Codes immer vollständig angeben !

Was soll denn dieser Ausdruck Forms!faktura!Faktura_ufa!Rechnungsdatum.Filter darstellen?

Forms!faktura referenziert das Formular mit dem Namen faktura, danach kann die Eigenschaft Filter angesprochen werden, du hast aber weitere Argumente - warum?
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: lutschi83 am Mai 13, 2015, 11:08:02
Hi,
ich kenne mich in VB nicht so gut aus, wie du sicherlich schon gemerkt hast.
Ich wusste nicht, wie ich das Unterformular "Faktura_ufa" ansprechen soll. Bzw. das Feld "rechnungsdatum"...

Wie müsste der richtige code heißen?
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: el_gomero am Mai 13, 2015, 11:17:05
es ist ziemlich lästig dir alle Infos aus der Nase zu ziehen ...

Im Subject steht
Zitat
Filter auf Endlosformular ...
jetzt rückst du damit raus, dass es um ein Ufo geht :(

Die Notation dafür lautet

Forms!HF!Ufo.Form.Filter
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: lutschi83 am Mai 13, 2015, 11:51:41
Hallo,
ich habe mir nur selbst schon einmal Gedanken gemacht. Das eigentliche Problem ist ja auch noch, dass ich das Endlosformular anhand der Firma filtern und das Unterformular anhand des ausgewählten Zeitraums filtern möchte....Und da war das mein Ansatz um das Unterformular zu filtern:

Private Sub Filter_Click()

Dim strDatumVon As String
Dim strDatumBis As String

If IsDate(Me.txtvon) And IsDate(Me.txtbis) Then
strDatumVon = Format$(Me!txtvon, "\#dd-mm-yyyy\#")
strDatumBis = Format$(Me!txtbis, "\#dd-mm-yyyy\#")
Forms!Faktura!Faktura_ufa.Form.Filter = "Forms!faktura!faktura_ufa![Rechnungsdatum] Between " & strDatumVon & " " & _
"And " & strDatumBis
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
End If
'DoCmd.OpenReport "Faktura", acViewReport, , "firma= " & Me.Firma
End Sub


Funktioniert leider immer noch nicht...
Vielleicht gibt es auch eine andere Möglichkeit? Das Unterformular ist in der Datenblattansicht und basiert auf eine Abfrage "Faktura". Ich habe gelesen, dass man das eventuell auch über "Select-Befehl" abbilden könnte....

Für meine Unwissenheit und meine geringen Kenntnisse in Access möchte ich mich entschuldigen...
Aber es wäre trotzdem sehr nett, wenn ihr mir helfen könntet.
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: el_gomero am Mai 13, 2015, 11:58:49
verstehe nur Bahnhof ...

speck die db mal bis auf die relevanten Teile ab, lass ein paar Spieldaten drin, komprimiere sie und lade sie gepackt hier hoch, dann schau ich mir das mal an ...
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: lutschi83 am Mai 13, 2015, 12:07:40
Hallo,

anbei die Datenbank test

Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: el_gomero am Mai 13, 2015, 12:24:04
hmm, da waren so viele Fehler drin, das würde hier zu weit führen. Hab das eingebaut, dass es funktioniert - schau dir den Code in Ruhe an.
Titel: Re: Filter auf Endlosformular um Rechnungsdaten zu erzeugen
Beitrag von: lutschi83 am Mai 13, 2015, 13:23:51
Super vielen vielen Dank! Er funktioniert einwandfrei!