Veröffentlicht 11. September 200817 j Ich möchte gerne ein sog. Endlosformular anlegen. Die Datenfelder sollen am besten mit SQL Werte zugewiesen bekommen. Ich habe mit Access nicht so viel Erfahrung. Was ich nicht weiß, ist, wie ich dne Textfeldern des Formulares werte zuweise, dass die z. B alle Datensätze anzeigen. Die SQL-Abfrage soll später eingeschränkt werden. Wäre schön, wenn der Benutzer das mittels Eingabefeldern oder Sonstwie machen könnte.
11. September 200817 j Ich möchte gerne ein sog. Endlosformular anlegen. Die Datenfelder sollen am besten mit SQL Werte zugewiesen bekommen. Ich habe mit Access nicht so viel Erfahrung. Was ich nicht weiß, ist, wie ich dne Textfeldern des Formulares werte zuweise, dass die z. B alle Datensätze anzeigen. Die SQL-Abfrage soll später eingeschränkt werden. Wäre schön, wenn der Benutzer das mittels Eingabefeldern oder Sonstwie machen könnte. Moin, am einfachsten geht es, wenn du dir die Daten mit einer Abfrage holst und diese dann als Datenquelle des Endlosformulars benutzt, hth Reinhold
11. September 200817 j Autor Danke für deine schnelle Antwort. Kann ich denn eine Abfrage von Formulareingaben des Benutzers abhängig machen?
11. September 200817 j Moin, natürlich kannst du anhand von Formular eingaben einen Filter setzen, also im Prinzip zur Laufzeit, z.B. im Ereignis beim Aktualisieren der Suchfelder, daraus einen Filter generieren. Also prinzipiell etwa so (wie immer ungetestet), ... Call FilterSetzen Sub FilterSetzen Me.Filter = "" if Me!SuchKundennr <> "" then Me.Filter = "Kundennr = " & Me!SuchKundennr end if if Me!SuchKundenname <> "" then if Me.Filter <> "" then Me.Filter = Me.Filter & " and " end if Me.Filter = Me.Filter & "Name like '*" & Me!SuchKundenname & "*'" end if Me.FilterOn = true End Sub
15. September 200817 j Autor In der Schule habe ich gesagt bekommen, dass Assistenten zwar nicht falsch, aber nicht gut sind. Aber das Endlosformular habe ich bisher nur mit dem Assistenten hinbekommen. Würdest du mir empfehlen, dafür den Assistenten zu nehmen oder es per Hand zu machen? So schwer kann das doch nicht sein, oder? Falls letzteres: Kannst du mir sagen wie das geht?
15. September 200817 j Moin, In der Schule habe ich gesagt bekommen, dass Assistenten zwar nicht falsch, aber nicht gut sind. Ach? Dazu musst den entsprechenden Lehrer befragen, der so etwas unterrichtet ... Aber das Endlosformular habe ich bisher nur mit dem Assistenten hinbekommen. Warum auch nicht? Ich mache genau das seit mindestens 15 Jahren mit dem Assistent. Würdest du mir empfehlen, dafür den Assistenten zu nehmen oder es per Hand zu machen? So schwer kann das doch nicht sein, oder? Falls letzteres: Kannst du mir sagen wie das geht? Vorschlag: Mach es mit dem Assistent und schau dir dann an, was der so alles an Einstellungen vorgenommen hat. Wenn du dann beim nächsten mal die gleichen Einstellungen vornimmst hast du bestimmt ein 1a-Endlosformular. hth Reinhold
15. September 200817 j Autor Danke, das Formular steht in einer ersten Version. Nun muss ich die Filter festlegen. Ich habe nicht so ganz verstanden, wie ich dein Script oben einbinden muss. Ich habe es als Sub im Textfeld. Den Call habe ich als "after Update". Aber wie bekomme ich das Eingabefeld mit der Abfrage verknüpft?
15. September 200817 j Danke, das Formular steht in einer ersten Version. Nun muss ich die Filter festlegen. Ich habe nicht so ganz verstanden, wie ich dein Script oben einbinden muss. Ich habe es als Sub im Textfeld. Den Call habe ich als "after Update". Aber wie bekomme ich das Eingabefeld mit der Abfrage verknüpft? im "After Update" der Suchfelder, in meinem Beispiel heißen sie SuchKundennr und SuchKundenname, schreibst du jeweils Sub SuchKundennr_AfterUpdate Call FilterSetzen End Sub Und irgendwo in den Ereignisprozeduren oder ggf auch einem Modul: Sub FilterSetzen Me.Filter = "" if Me!SuchKundennr <> "" then Me.Filter = "Kundennr = " & Me!SuchKundennr end if if Me!SuchKundenname <> "" then if Me.Filter <> "" then Me.Filter = Me.Filter & " and " end if Me.Filter = Me.Filter & "Name like '*" & Me!SuchKundenname & "*'" end if Me.FilterOn = true End Sub hth Reinhold
16. September 200817 j Autor Ich habe eine Abfrage, die eine Tabelle ungefiltert anzeigt. das Textfeld heißt Text64 Ich hoffe, ich habe den Code richtig an miene bedürfnisse angepasst.. So geht es aber nicht. Private Sub Text64_AfterUpdate() Call FilterSetzen Sub FilterSetzen() Me.Filter = "" If Me!Text64 <> "" Then Me.Filter = "Kontonummer = " & Me!Text64 End If Me.FilterOn = True End Sub
16. September 200817 j Moin, Ich habe eine Abfrage, die eine Tabelle ungefiltert anzeigt. das Textfeld heißt Text64 Ich hoffe, ich habe den Code richtig an miene bedürfnisse angepasst.. jo, sieht ganz gut aus, vorausgesetzt der zu vergleichende Inhalt steht in einer Tabellenspalte namens Kontonummer. So geht es aber nicht. Hältst du das für eine hinreichende Fehlerbeschreibung? BTW: ich benutze diesen Mechanismus in jeweils abgewandelter Form schon ewig und klappt prima. Grüße Reinhold
17. September 200817 j Autor Ich habe Fehler 2001: Sie haben die vorherige Operation abgebrochen. bei Me.FilterOn = True
17. September 200817 j Moin, vielleicht sowieso besser so: if Me.Filter <> "" then Me.FilterOn = True else Me.FilterOn = False end if aber ob das dein Problem behebt weiß ich nicht. Diesen Fehler hatte ich AFAIR noch nie. hth Reinhold
18. September 200817 j Autor Moin, if Me.Filter <> "" then Me.FilterOn = True else Me.FilterOn = False end if Ich habe vor FilterOn = True nochMe.Filter = "Kontonummer = " & Me!Text64gesetzt. Ich hoffe, das ist die richtige Stelle. Die Fehlermeldung kommt immer noch. Kann das sein, dass ich den Filter in der Syntax falsch setze? Ich möchte den erstmal so haben, dass man die beginnenden Ziffern der Kontonummern eingibt und danach gefiltert wird (Muster: 02 zeigt alle Konten mit 02xxxxx an)
18. September 200817 j Me.Filter = "Kontonummer = " & Me!Text64 Ich hoffe, das ist die richtige Stelle. Die Fehlermeldung kommt immer noch. Kann das sein, dass ich den Filter in der Syntax falsch setze? Ich möchte den erstmal so haben, dass man die beginnenden Ziffern der Kontonummern eingibt und danach gefiltert wird (Muster: 02 zeigt alle Konten mit 02xxxxx an) Moin, ja das ist definitiv die richtige Stelle. Aber deinem Beispiel entnehme ich, dass Kontonummer bei dir wohl eher ein Textfeld ist? :confused::confused: Dann meinst du wahrscheinlich: Me.Filter like "Kontonummer = '" & Me!Text64 & "%'" Bitte beachte die einfachen Anführungszeichen. hth Reinhold
23. September 200817 j Autor Kontonummer ist ein Spaltenname. Habe ich was verkehrt gemacht? Kann man Textfelder auch mit einer SQL-Abfrage filtern?
1. Oktober 200817 j Moin, Kann man Spalten die [*Periode*] heißen addieren? solange sie Zahlen enthalten schon. Reinhold
2. Oktober 200817 j Autor Ich habe folgendes Problem: Ich habe SollPeriode01...SollPeriode14 Diese muss ich zusammenaddieren. Wie bekomme ich das am besten hin?
3. Oktober 200817 j Ich habe folgendes Problem: Ich habe SollPeriode01...SollPeriode14 Diese muss ich zusammenaddieren. Wie bekomme ich das am besten hin? select SollPeriode01 + SollPeriode02 + SollPeriode03 + SollPeriode04 + SollPeriode05 + SollPeriode06 + SollPeriode07 + SollPeriode08 + SollPeriode09 + SollPeriode10 + SollPeriode11 + SollPeriode12 + SollPeriode13 + SollPeriode14 as Sollperiodensumme from knurpsel
6. Oktober 200817 j Autor Vielen Dank, das hat mich schon weiter gefragt!! Auf zum nächsten Problem :-) Ich möchte eine Auflistung über die letzten 5 Jahre machen. Kann man bei den Filterkriterien auch das aktuelle Jahr als Variable oder Konstante einfügen? Nun habe ich ja eine "Spalte" mit Textboxen pro Jahr der letzten 5 Jahre. Meine Logik ist, dass jedes Spalte nach einem anderen Jahr gefiltert werden muss. Kann man das in einem Jahr machen, oder muss man jeweils eine Abfrage erstellen?
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.