Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
1. Suchformular in 10 Minuten erstellt
Gehe zu Seite 1, 2, 3, 4  Weiter
zurück: Tabelle mit Daten - Zahlenfeld in AutoNumber konvertieren weiter: Access Logo (Splashscreen) austauschen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
lothi
c#, .Net


Verfasst am:
21. Jul 2004, 11:38
Rufname:
Wohnort: Birgisch

Inhaltsverzeichnis - Inhaltsverzeichnis

Nach oben
       

Suchformular in 10 Minuten erstellt

Der Original-Code von Thomasro (s.u.) eignet sich sehr gut um schnell ein Suchfomular zusammenzustellen.

Ich habe hier ein paar typische Fragen und Fehler aus dem Beitrag:
Suchformular in 10 Minuten erstellt Nachgefragt zusammengefasst und hier aufgelistet.
  1. Standartcode Suchformular in 10 min erstellt
  2. Beispieldatenbank
  3. Erweiterter Code
  4. Parameterfenster erscheint (I)
  5. Unterformular filtrieren
  6. Parameterfenster (II)
  7. Fixes Kriterium
  8. Anzahl Daten
  9. Filter für den Bericht
  10. Felder leeren
  11. Kein Suchergebnis
  12. Im gleichen Feld suchen
  13. Alternative von Bitsqueezer Filtern statt suchen - komfortablere Eingabe
Immer noch Fragen?
Dann hier: Suchformular in 10 Minuten erstellt Nachgefragt.

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP


Zuletzt bearbeitet von lothi am 31. März 2006, 09:25, insgesamt 2-mal bearbeitet
Thomasro
HobbyAccesser seit ewig....


Verfasst am:
21. Jul 2004, 11:38
Rufname: Thomas
Wohnort: Mannheim


1. Suchformular in 10 Minuten erstellt - 1. Suchformular in 10 Minuten erstellt

Nach oben
       

Ein Formular zum Filtern von Daten über ein oder mehreren Suchfelder in wenigen Minuten erstellt... Der SQL-String wird automatisch erstellt und immer erweitert.
Den String kann man sogar global speichern um ihn zB. für einen Bericht zu verwenden.
Auch sind fast alle Datentypen abgedeckt die man beliebig auswählen kann

1. Erstellt ein Endlosformular mit der Tabelle die ihr gerne filtern möchtet
2. Fügt im Formularkopf Textfelder ein in die ihr Suchvorgaben eingeben könnt
3. Kopiert den folgenden Code in das Codefenster des Formulars
Code:
Option Compare Database
Option Explicit

Private myCriteria As String

Public Sub SQLString(FieldValue As Variant, FieldName As String, _
                     Criteria As String, ArgCount As Integer, _
                     Typ As Integer, Optional bAnd As Boolean = True)
    '*************************************************************************
    'In dieser Prozedur (Sub) muß und darf nichts geändert werden
    '*************************************************************************
    ' Erstelle Kriterien für die WHERE-Klausel.
    If Nz(FieldValue, "") <> "" Then
        If bAnd Then
            ' Füge "Und" hinzu, falls andere Kriterien vorhanden sind.
            If ArgCount > 0 Then Criteria = Criteria & " AND "
          Else
            ' Füge "Oder" hinzu, falls andere Kriterien vorhanden sind.
            If ArgCount > 0 Then Criteria = Criteria & " OR "
        End If
        Select Case Typ
          Case 1 'Datum
            Criteria = Criteria & FieldName & "= #" & _
                       Format(CDate(FieldValue), "mm-dd-yyyy") & "#"
          Case 2 'String Like
            Criteria = Criteria & FieldName & " Like '*" & FieldValue & "*'"
          Case 3 ' Zahl
            Criteria = Criteria & FieldName & " = " & Str(FieldValue)
                                 'Fehlendes = eingefuegt Willi Wipp 2004.10.07
                          'Fehlendes Str(...) eingefuegt Willi Wipp 2007.08.07
          Case 4 'String =
            Criteria = Criteria & FieldName & " = '" & FieldValue & "'"
          Case 5 'Ja/nein
            If FieldValue = "Ja" Or FieldValue = "True" Or _
               FieldValue = True Then
                Criteria = Criteria & FieldName & " = -1"
              Else
                Criteria = Criteria & FieldName & " = 0"
            End If
        End Select
        '  Inkrementiere die Zahl der Argumente.
        ArgCount = ArgCount + 1
    End If
End Sub

Private Function Filterbedingung() As String
    Dim ArgCount As Integer
   
    ' Initialisiere die Argumentenzahl.
    ArgCount = 0
    myCriteria = ""
    '*************************************************************************
    ' Nur hier muß man die Zeilen anpassen:
    ' Variable1 = Feldname im Formular in dem das Suchwort eingegeben wird
    ' Variable2 = Feldname im Formular der gefiltert werden soll
    '                                                 (Feld aus der Datenbank)
    ' Variable3 = Typ zum Angeben des Datenfeldes
    '             1 = Datum
    '             2 = String, alle die das Suchwort entahlten, egal wo
    '             3 = Zahl
    '             4 = String, findet nur die die genau übereinstimmen
    '             5 = ja/nein vom Typ Boolen
    ' Optional bAnd = Hier kann man dann noch angeben ob man die Kriterien mit
    '                 AND (True) oder OR (False) verknüpfen möchte.
    '                 Wenn Argument bAnd weggelassen => mit AND verküpft.
    ' Beispiel:
    ' SQLString Me!Sucheingabefeld, "Datenfeld", mycriteria, ArgCount, _
    '           2, False
    ' => Hier wird mit OR (Oder) verknuept.
    ' Beliebig erweiterbar, wenn man beispielsweise 5 Felder filtern
    ' will muß man die folgende Zeile gerade 5 mal kopieren und anpassen
    '*************************************************************************
    ' SQLString Variable1, Variable2, mycriteria, ArgCount, Variable3
    '*************************************************************************
    SQLString Me!tbxSuchFeld, "[Suchfeld]", myCriteria, ArgCount, 3
    ' Falls kein Kriterium spezifiziert wurde, gebe alle Datensätze zurück.
    If myCriteria = "" Then myCriteria = "True"
    Filterbedingung = myCriteria
End Function

4. Ändert die drei Variablen in der Funktion Filterbedingung und fügt gegebenenfalls noch mehr Kriterien ein
5. Aufgerufen wird der Filter mit einer Prozedur die entweder über eine Taste oder über die Eigenschaft NACH AKTUALISIERUNG des Sucheingabefeldes
Code:
    Me.Filter = Filterbedingung()
    Me.FilterOn = True

Um wieder alle Daten angezeigt zu bekommen, gerade eine Schaltfläche anlegen und folgenden Code beim KLICKEN eingeben
Code:
    Me.FilterOn = False
    myCriteria ="" 'Nur wenn ihr die Variable Global speichert

Das wars, viel Spaß beim Ausprobieren
Gruß Thomas
Willi Wipp
Moderator


Verfasst am:
22. Jul 2004, 09:55
Rufname:
Wohnort: Raum Wiesbaden

Re: Suchformular in 10 Minuten erstellt - Re: Suchformular in 10 Minuten erstellt

Nach oben
       

Nachfragen zum Thema bitte hier Suchformular in 10 Minuten erstellt Nachgefragt stellen.
_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)


Zuletzt bearbeitet von Willi Wipp am 12. März 2011, 13:43, insgesamt 2-mal bearbeitet
borstel
Im Profil kannst Du frei den Rang ändern


Verfasst am:
29. Okt 2004, 22:22
Rufname:

AW: Suchformular in 10 Minuten erstellt - AW: Suchformular in 10 Minuten erstellt

Nach oben
       

Hallo Thomas,
ich hatte jetzt das erste mal eine Anforderung, bei der ich Deinen Code für das Suchformular eingesetzt habe. Ich muss Dir sagen, es macht Spaß, mit dieser pfiffigen Lösung zu arbeiten, vor allen Dingen, weil sie so schön flexibel ist, nicht nur wegen der leichten Erweiterung um weitere Felder, sondern auch wegen der leicht einzubauenden Steuerung der beiden Parameter für die AND/OR-Steuerung und die Suche für =/Like über entspr. Eingabefelder im Formular.
Es lag mir am Herzen, Dir dieses feedback zu geben. Dies auch, damit Du merkst, dass Deine Lösung angenommen wird.
Gruß borstel

mc_moe am 14. Jan 2005 um 14:32 hat folgendes geschrieben:
...da schließ ich mich doch auch mal an...

ne super lösung!!!!!

many thx...

viper am 03. Aug 2005 um 13:52 hat folgendes geschrieben:
Eine klasse Lösung! Razz
Flexibel, einfach, mächtig!

Danke dafür

viper

McPorsche am 11. Okt 2005 um 20:54 hat folgendes geschrieben:
Klasse.

Hat prima geklappt.

Vielen Dank.

Gruss,
Wolfgang

micmey am 27. Okt 2005 um 11:17 hat folgendes geschrieben:
Genial einfach, einfach Genial!

VG Michael

$niper am 23. Jan 2006 um 10:35 hat folgendes geschrieben:
Hallo!

Zunächst muss ich sagen, daß der o.g. Code wirklich gut ist.

Dr.Louie81 Verfasst am 23. Feb 2006 um 10:21 hat folgendes geschrieben:
Very Happy Danke hat super geklappt.

_________________
Gruß borstel
Windows 8 Pro 64 Bit - Office 2007
Positive und negative Rückmeldungen sind eine große Hilfe für alle Forumsteilnehmer!


Zuletzt bearbeitet von borstel am 17. Nov 2004, 13:45, insgesamt einmal bearbeitet
Willi Wipp
Moderator


Verfasst am:
16. März 2006, 19:28
Rufname:
Wohnort: Raum Wiesbaden


2. Beispieldatenbank - 2. Beispieldatenbank

Nach oben
       

Hi Folks,

hier ist eine kleine Beispiel-DB (SuchformularIn10Minuten_2000.zip)

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)



SuchformularIn10Minuten_2000.zip
 Beschreibung:

Download
 Dateiname:  SuchformularIn10Minuten_2000.zip
 Dateigröße:  34.32 KB
 Heruntergeladen:  8353 mal



Zuletzt bearbeitet von Willi Wipp am 22. Aug 2007, 13:23, insgesamt einmal bearbeitet
lothi
c#, .Net


Verfasst am:
24. März 2006, 08:33
Rufname:
Wohnort: Birgisch

3. Erweiterter Code - 3. Erweiterter Code

Nach oben
       

Hallo zusammen

Habe den Code ein bisschen Erweitert.

Neu ist:

Es gibt ein neuer Parameter Operator mit diesem kann man jetzt den Operator selber bestimmen also z.B < > >= <= . Der Standartwert ist =.
Dies nützt natürlich nur bei Datum und Zahl. Also Option 1 und 3

In der Option 2 wird nicht mehr mit '*Wort*' in einem String gesucht sondern nur mit LIKE. Wird kein Wildcard eingesetzt ist es gleich wie = (nur langsamer) ansonsten kann man auch mit Platzhalter arbeiten.

Mit der Option6 kann man auch nach NULL suchen.
Code:
Option Compare Database
Option Explicit

Private myCriteria As String

Public Sub SQLString(FieldValue As Variant, FieldName As String, _
                     Criteria As String, ArgCount As Integer, _
                     Typ As Integer, Optional Operator As String = "=", _
                     Optional bAnd As Boolean = True)
    '*************************************************************************
    'In dieser Prozedur (Sub) muß und darf nichts geändert werden
    '*************************************************************************
    ' Erstelle Kriterien für die WHERE-Klausel.
    If Nz(FieldValue, "") <> "" Then
        If bAnd Then
            ' Füge "Und" hinzu, falls andere Kriterien vorhanden sind.
            If ArgCount > 0 Then Criteria = Criteria & " AND "
          Else
            ' Füge "Oder" hinzu, falls andere Kriterien vorhanden sind.
            If ArgCount > 0 Then Criteria = Criteria & " OR "
        End If
        Select Case Typ
          Case 1 'Datum
            Criteria = Criteria & FieldName & " " & Operator & "  #" & _
                       Format(CDate(FieldValue), "mm-dd-yyyy") & "#"
          Case 2 'String Like
            Criteria = Criteria & FieldName & " Like '" & FieldValue & "'"
          Case 3 ' Zahl
            Criteria = Criteria & FieldName & " " & Operator & Str(FieldValue)
                          'Fehlendes Str(...) eingefuegt Willi Wipp 2007.08.07
          Case 4 'String =
            Criteria = Criteria & FieldName & " = '" & FieldValue & "'"
          Case 5 'Ja/nein
            If FieldValue = "Ja" Or FieldValue = "True" Or _
               FieldValue = True Then
                Criteria = Criteria & FieldName & " = -1"
              Else
                Criteria = Criteria & FieldName & " = 0"
            End If
          Case 6
            Criteria = Criteria & "(" & Fieldname & ") Is Null"         
        End Select
        '  Inkrementiere die Zahl der Argumente.
        ArgCount = ArgCount + 1
    End If
End Sub

Private Function Filterbedingung() As String
    Dim ArgCount As Integer
' ############ Ergaenzung fuer Bereichseingrenzungen! (Anfang) ###############
    Dim tmpCount As Integer
    Dim tmpCriteria As String
' ############ Ergaenzung fuer Bereichseingrenzungen! (Ende) #################
   
    ' Initialisiere die Argumentenzahl.
    ArgCount = 0
    myCriteria = ""
    '*************************************************************************
    ' Nur hier muß man die Zeilen anpassen:
    ' Variable1 = Feldname im Formular in dem das Suchwort eingegeben wird
    ' Variable2 = Feldname im Formular der gefiltert werden soll
    '                                                 (Feld aus der Datenbank)
    ' Variable3 = Typ zum Angeben des Datenfeldes
    '             1 = Datum
    '             2 = String, alle die das Suchwort entahlten, egal wo
    '             3 = Zahl
    '             4 = String, findet nur die die genau übereinstimmen
    '             5 = ja/nein vom Typ Boolen
    '             6 = Nach NULL suchen
    ' Optional Operator = Standart "=" Eingabe: ">", "<", "<>", "<=", ">="
    ' Optional bAnd = Hier kann man dann noch angeben ob man die Kriterien mit
    '                 AND (True) oder OR (False) verknüpfen möchte.
    '                 Wenn Argument bAnd weggelassen => mit AND verküpft.
    ' Beispiel:
    ' SQLString Me!Sucheingabefeld, "Datenfeld", mycriteria, ArgCount, _
    '           2, False
    ' => Hier wird mit OR (Oder) verknuept.
    ' Beliebig erweiterbar, wenn man beispielsweise 5 Felder filtern
    ' will muß man die folgende Zeile gerade 5 mal kopieren und anpassen
    '*************************************************************************
    ' SQLString Variable1, Variable2, mycriteria, ArgCount, Variable3
    '*************************************************************************
    SQLString Me!selectArchitecture, "ARCHITECTURE", myCriteria, ArgCount, 3
    SQLString Me!selectCORE, "CORE", myCriteria, ArgCount, 2
    If Me!selectSO = True Then
        SQLString 0, "SO", myCriteria, ArgCount, 3, ">"
    End If
' ############ Ergaenzung fuer Bereichseingrenzungen! (Anfang) ###############
    tmpCriteria = ""
    tmpCount = 0
    SQLString Me!Beginn, "Beginn", tmpCriteria, tmpCount, 1, ">="
    SQLString Me!Ende, "Ende", tmpCriteria, tmpCount, 1, "<="
    If tmpCriteria <> "" Then
        myCriteria = myCriteria & IIf(myCriteria <> "", " AND (", "(") & _
                     tmpCriteria & ")"
        tmpCriteria = ""
        ArgCount = ArgCount + tmpCount
        tmpCount = 0
    End If
' ############ Ergaenzung fuer Bereichseingrenzungen! (Ende) #################
    ' Falls kein Kriterium spezifiziert wurde, gebe alle Datensätze zurück
    If myCriteria = "" Then myCriteria = "True"
    Filterbedingung = myCriteria
End Function

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP



SuchformularIn10MinutenOperator.zip
 Beschreibung:
Beispiel-DB mit neuer Version und Datum Von - Bis

Download
 Dateiname:  SuchformularIn10MinutenOperator.zip
 Dateigröße:  32.7 KB
 Heruntergeladen:  4498 mal

lothi
c#, .Net


Verfasst am:
31. März 2006, 08:09
Rufname:
Wohnort: Birgisch

4. Parameterfenster erscheint - 4. Parameterfenster erscheint

Nach oben
       

Problem:
Beim Ausführen des Codes erscheint immer ein
Parameterfenster zum Eingeben eines Kriteriums.


Antwort:
Kontrolliere ob der Name in der Variable2 mit dem
Feldname in dem Formular übereinstimmt.
Der Name findest du in den Eigenschaften (des Steuerelements in dem gesucht werden soll) im Register Daten => Steuerelementinhalt. Der Steuerelementinhalt muss nicht zwingend mit dem Feldnamen
übereinstimmen.

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP
lothi
c#, .Net


Verfasst am:
31. März 2006, 08:13
Rufname:
Wohnort: Birgisch

5. Unterformular filtrieren - 5. Unterformular filtrieren

Nach oben
       

Problem:

Wie wende ich den Code an, wenn die Suchkriterien im
Hauptformular sind, aber das Filterkriterium im Unterformular angewendet
werden sollen.


Antwort:
Kopiere den Code in das Klassenmodul deines
Hauptformulars.

Die Zuweisung des Filterkriteriums zum Unterformular sieht dann so aus:
Code:
    Me!Unterformularname.Form.Filter = Filterbedingung()
    Me!Unterformularname.Form.FilterOn = True

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP
lothi
c#, .Net


Verfasst am:
31. März 2006, 08:18
Rufname:
Wohnort: Birgisch

6. Parameterfenster (II) - 6. Parameterfenster (II)

Nach oben
       

Problem:
Obwohl der Name in der Variable2 richtig geschrieben ist
kommt das Parameterfenster.


Antwort:
Der Name muss als String (d.h in "") übergeben werden .
Wenn der Feldname Sonder- oder Leerzeichen hat muss dieser in
eckige [] Klammern gesetzt werden.
z.B ID-NR wird zu [ID-NR]

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP


Zuletzt bearbeitet von lothi am 31. März 2006, 09:26, insgesamt einmal bearbeitet
lothi
c#, .Net


Verfasst am:
31. März 2006, 08:23
Rufname:
Wohnort: Birgisch

7. Fixes Kriterium - 7. Fixes Kriterium

Nach oben
       

Problem:
Ich möchte immer nach einem fixen Kriterium
filtrieren.
Das Kriterium ist aber nicht im Formular.


Antwort:
Die erste Variable hat das Kriterium als Inhalt.
Wenn du ein Kriterium fix eingeben willst, kannst du dieses als erster Parameter übergeben.
Code:
' Text
    SQLString  "Als", "Ort", myCriteria, ArgCount, 2
' Zahl
    SQLString  255, "PLZ", myCriteria, ArgCount, 3
' Datum
    SQLString  #1/25/2006#, "Wann", myCriteria, ArgCount, 3

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP


Zuletzt bearbeitet von lothi am 31. März 2006, 09:26, insgesamt einmal bearbeitet
lothi
c#, .Net


Verfasst am:
31. März 2006, 08:49
Rufname:
Wohnort: Birgisch

8. Anzahl Daten - 8. Anzahl Daten

Nach oben
       

Problem:
Wie kann ich mir Anzeigen lassen wieviele Daten
gefunden wurde?


Antwort:
Auch dafür gibs eine Funktion von Thomas:
Code:
' Menue: Extras -> Verweise Microsoft DAO 3.xx Object Library muss aktiv sein!
Function AnzahlDS() As Integer
On Error GoTo Fehler
    Dim dsg As DAO.Recordset

    Set dsg = Me.RecordsetClone
    dsg.MoveLast
    AnzahlDS = dsg.RecordCount
    dsg.Close
    Exit Function

Fehler:
    Select Case Err.Number
      Case 3021
        AnzahlDS = 0
      Case Else
        MsgBox Err.Number & ": " & Err.Description
    End Select
End Function
Diese Funktion kann direkt in einem Ungebundenen Textfeld
oder im Code nach der Filterung ausgeführt werden.

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP


Zuletzt bearbeitet von lothi am 27. Jul 2006, 14:32, insgesamt 3-mal bearbeitet
lothi
c#, .Net


Verfasst am:
31. März 2006, 08:54
Rufname:
Wohnort: Birgisch

9. Filter für den Bericht - 9. Filter für den Bericht

Nach oben
       

Problem:
Ich habe mit Hilfe des Codes das Formular filtrieren. Nun möchte ich den genau gleichen Filter auch in einem Bericht benutzen.

Antwort:
Mit dem OpenReport Befehl kann man mit dem Parameter WhereCondition eine Kriterium mitgeben:
Code:
    DoCmd.OpenReport ReportName:="Berichtsname", View:=acViewPreview, _
                     WhereCondition:=Filterbedingung()
Am einfachsten ist es, wenn der Bericht genau die gleiche Dateherkunft hat wie das Formular.
Die Felder im Bericht müssen zwingend gleich heissen wie im Formuar oder in der Suchfunktion. Sonst erscheint das Parameterfenster.

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP


Zuletzt bearbeitet von lothi am 31. März 2006, 09:27, insgesamt 2-mal bearbeitet
lothi
c#, .Net


Verfasst am:
31. März 2006, 09:02
Rufname:
Wohnort: Birgisch

10. Felder leeren - 10. Felder leeren

Nach oben
       

Problem:
Ich habe viele Suchfelder in meinem Formular. Wie kann ich alle Felder auf einmal leeren?

Antwort:
Kopiere diesen Code in dein Modul. Dieser Code löscht aus allen Feldern im Formular den Inhalt und setzt die Optionsfelder auf False.
Einzig Optionsgruppen werden nicht geändert.
Die Textboxen werden mit "" geleert auch Zahlen und Datumsfelder.
Code:
Sub FelderLeeren(frm As Form)
    Dim ctl As Control
    Dim itm

    For Each ctl In frm.Controls
        Select Case ctl.ControlType
          Case acCheckBox, acToggleButton, acOptionButton
            ctl = False
          Case acComboBox, acTextBox
            ctl = ""
          Case acListBox
            If ctl.MultiSelect <> 0 Then
                For Each itm In ctl.ItemsSelected
                    ctl.Selected(itm) = False
                Next itm
              Else
               ctl = ""
            End If
        End Select
    Next ctl
End Sub
Aufruf:
Code:
    FelderLeeren Me
Im Formular mit den Feldern.

Sollen nicht alle Steuerelemente geleert werden Ist es am einfachsten, wenn man die zu leerenden Steuerelemente markiert.
Dafür kann man die Marke (Tag) Eigenschaft eines Steuerelement benutzen. Als Eigenschaft z.B ein "x" Eingeben.
Der Code muss dann wie folgt aussehen:
Code:
Sub FelderLeeren(frm As Form)
    Dim ctl As Control
    Dim itm

    For Each ctl In frm.Controls
        If ctl.Tag = "x" Then
            Select Case ctl.ControlType
              Case acCheckBox, acToggleButton, acOptionButton
                ctl = False
              Case acComboBox, acTextBox
                ctl = ""
              Case acListBox
                If ctl.MultiSelect <> 0 Then
                    For Each itm In ctl.ItemsSelected
                        ctl.Selected(itm) = False
                    Next itm
                  Else
                    ctl = ""
                End If
            End Select
        End If
    Next ctl
End Sub

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP


Zuletzt bearbeitet von lothi am 31. März 2006, 09:27, insgesamt 2-mal bearbeitet
lothi
c#, .Net


Verfasst am:
31. März 2006, 09:08
Rufname:
Wohnort: Birgisch

11. Kein Suchergebnis - 11. Kein Suchergebnis

Nach oben
       

Probelm:
Ich habe jetzt ein Kriterium ausgewählt aber trozdem werden mir keine Daten angezeigt. Obwoh keine Fehlermeldung erscheint.

Antwort:
Ob dein Kriterium stimmt kannst du am besten im Direktfenster sehen.
Schreib im Code wo due den Filter ausführst:
Code:
    Debug.Print Filterbedingung()
Oeffne im Menu Ansicht das Direktfenster (Strg+G)
Führe nun den Code aus. Im Direkfenster siehst du jetzt das zusammengesetzte Kriterium mit den Werten aus dem Formular.
Beispiel:
Vorname = 'Hans' AND PLZ = 20000
So siehst du jetzt besser ob dein Kriterium stimmen kann oder nicht.

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP


Zuletzt bearbeitet von lothi am 31. März 2006, 09:28, insgesamt 2-mal bearbeitet
lothi
c#, .Net


Verfasst am:
31. März 2006, 09:12
Rufname:
Wohnort: Birgisch


12. Im gleichen Feld suchen - 12. Im gleichen Feld suchen

Nach oben
       

Problem:
Ich möchte mit dem Kriterium:
Code:
    SQLString  "Hans", "Vorname", myCriteria, ArgCount, 4
    SQLString  "Kurt", "Vorname", myCriteria, ArgCount, 4
im Feld Vorname nach "Hans" und nach "Klaus" suchen aber mir werden keine Daten angezeigt.

Antwort:
Will man im gleichen Feld nach zwei Kriterien suchen muss man mit ODER arbeiten.
Code:
    SQLString  "Hans", "Vorname", myCriteria, ArgCount, 4
' Nach Hinweis von GregorJ ergaenzt: Gilt fuer 1. Code (ohne Operator)!
    SQLString  "Kurt", "Vorname", myCriteria, ArgCount, 4, False
' Nach Hinweis von GregorJ ergaenzt: Gilt fuer 2. Code (mit Operator)!
    SQLString  "Kurt", "Vorname", myCriteria, ArgCount, 4, , False
Gibt im Direktfenster
Code:
Vorname = 'Hans' Or Vorname = 'Kurt'

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2, 3, 4  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 4
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel Tricks