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... :-[
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.
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.
(mindestens) der Prozedurrumpf fehlt
Hi,
Welcher Prozedurrumpf?
Das ist alles, was ich also Code habe...
Prozedurrumpf zb
Private Sub btnFiltern_Click()
End Sub
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....
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?
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?
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
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.
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 ...
Hallo,
anbei die Datenbank test
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.
Super vielen vielen Dank! Er funktioniert einwandfrei!