Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Filter auf Endlosformular um Rechnungsdaten zu erzeugen

Begonnen von lutschi83, Mai 06, 2015, 14:19:50

⏪ vorheriges - nächstes ⏩

lutschi83

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

el_gomero

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.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

lutschi83

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.

el_gomero

Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

lutschi83

Hi,
Welcher Prozedurrumpf?
Das ist alles, was ich also Code habe...

el_gomero

Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

lutschi83

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

el_gomero

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?
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

lutschi83

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?

el_gomero

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
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

lutschi83

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

el_gomero

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 ...
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

lutschi83


el_gomero

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.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

lutschi83

Super vielen vielen Dank! Er funktioniert einwandfrei!