WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   ein allerletztes mal ;) : Access Textboxinhalt in where Klausel (http://www.wcm.at/forum/showthread.php?t=139241)

Chrisi99 13.07.2004 10:35

ein allerletztes mal ;) : Access Textboxinhalt in where Klausel
 
wie bau ich exemplarisch den Inhalt einer Textbox in eine "Where Klausel" ein, damit ich damit dann einen Bericht erstellen kann, der die gefilterten Datensätze enthält...

mfg

Chrisi99 13.07.2004 11:08

hab schon eine möglichkeit

Code:

Dim strSQL As String
    strSQL = "Select /AUSWAHL/ from /TABELLE/ Where /KRITERIUM/ Like '*"
    strSQL = strSQL & Me!liste & "*'"
    Me!liste.RowSource = strSQL
    Me!liste.Requery


wbendl 13.07.2004 11:53

Hi!

Grundsätzlich kann man den Inhalt einer Textbox einer in einem SQL-Statement verwenden. Aus Sicherheitsgründen würde ich es aber nicht machen. Eine (un)absichtliche unvorhergesehen Eingabe in die Textbox kann unangenehme Folgen haben. Da ist von Absturz bis Aushebeln von Sicherheitmechanismen alles möglich.

Dein Code verwendet aber anscheinend ein Listenfeld. Wenn nur vorgegebene Möglichkeiten zur Auswahl stehen ist das OK.

Was ich nicht verstehe:
Filter sich das Listenfeld durch die eigene Auswahl?
Das würde wohl keinen Sinn machen.

Vorschlagen würde ich folgendes:
Ein Dropdown, das die Ausdrücke für den Filter zur Auswahl anbietet.
Ein zusätzlicher Eintrag "Alle", um die Daten ungefiltert anzuzeigen.

Das Recordset ohne Filter (also mit allen DS) erstellen, und anschließend durch Auswahl im Dropdown filtern.

Wenn du die Auswahl in die WHERE-Klausel einbaust, muß das Recordset jedesmal neu erstellt werden. Das hat nur Sinn, wenn man mit ständigen Änderungen der Daten rechnen muß.

mfg

WB

Chrisi99 13.07.2004 14:18

Zitat:

Original geschrieben von wbendl
Hi!

Grundsätzlich kann man den Inhalt einer Textbox einer in einem SQL-Statement verwenden. Aus Sicherheitsgründen würde ich es aber nicht machen. Eine (un)absichtliche unvorhergesehen Eingabe in die Textbox kann unangenehme Folgen haben. Da ist von Absturz bis Aushebeln von Sicherheitmechanismen alles möglich.

Dein Code verwendet aber anscheinend ein Listenfeld. Wenn nur vorgegebene Möglichkeiten zur Auswahl stehen ist das OK.

Was ich nicht verstehe:
Filter sich das Listenfeld durch die eigene Auswahl?
Das würde wohl keinen Sinn machen.

Vorschlagen würde ich folgendes:
Ein Dropdown, das die Ausdrücke für den Filter zur Auswahl anbietet.
Ein zusätzlicher Eintrag "Alle", um die Daten ungefiltert anzuzeigen.

Das Recordset ohne Filter (also mit allen DS) erstellen, und anschließend durch Auswahl im Dropdown filtern.

Wenn du die Auswahl in die WHERE-Klausel einbaust, muß das Recordset jedesmal neu erstellt werden. Das hat nur Sinn, wenn man mit ständigen Änderungen der Daten rechnen muß.

mfg

WB

die idee mit den filtern gefällt mir sehr gut.
hast du da näheres (link) dazu, mit so etwas hab ich nämlich noch nie geabeitet...

lg
Christoph

Chrisi99 13.07.2004 14:34

und wenn ma grad dabei sind ;)

wie kann ich in access feststellen wie oft (in wie vielen Zeilen) der Buchstabe A vorkommt ??


A
A
B
C
D
A
A
A
A
-
6

so auf die Art :)

mfg

wbendl 13.07.2004 14:47

Hi!

Filter funktioniert wie WHERE, nur ohne dem Schlüsselwort.

Recordset.Filter = "Feld = Suchbegriff"

Recordset.Filter = "" hebt den Filter wieder auf.

Die Anzahl von Zeilen kann man z. B. mit Recordset.RecordCount oder mit der SQL-Funktion Count feststellen.

mfg

WB

powerman 13.07.2004 18:18

hi,
und dazu gibt es vom data becker "programmierung in access" ein d i c k e s b u c h (1178 seiten) isb n 3-8158....für ca. 60,-€

Chrisi99 14.07.2004 08:43

kann ich Count (=Anzahl) auch so einschränken, dass nicht alle Zeilen gezählt werden, sondern nur zb die mit "PID"
in meinem Bericht sind nämlich einschübe vorhanden, die Leerzeilen verursachen, die ich natürlich nicht zählen will.


mfg

wbendl 14.07.2004 11:48

Hi!

Übersichtlicher wirds, wenn du zum Zählen eine eigene Abfrage erstellst.

mfg

WB

Chrisi99 14.07.2004 12:38

Zitat:

Original geschrieben von powerman
hi,
und dazu gibt es vom data becker "programmierung in access" ein d i c k e s b u c h (1178 seiten) isb n 3-8158....für ca. 60,-€

könntest mir die betreffenden Seiten faxen??
:D
danke für den tipp werd zum Kienreich schauen, vlt hat ers da.


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag