Zum Inhalt springen

Abfragen über Formular ausführen


Mrfivejunior

Empfohlene Beiträge

Hallo,

ich komm irgendwie nicht weiter.

Bis jetzt schaut es so aus, dass ich ein Formular habe, in dem ich zum Beispiel die 3 Textfelder: Gegenstand, Typ und Ausführung habe. Über einen button kann ich eine Abfrage öffnen. Die Abfrage soll nun nach Datensätzen suchen, die mit in den 3 Textfeldern angegebenen Werte übereinstimmen. Bis jetzt klappt die Abfrage aber nur wenn ich in jedes Textfeld einen Wert eingebe.

Es soll aber so sein, dass wenn zum Beispiel eines des 3Textfelder leer ist, dann die Abfrage nach den Datensätzen sucht, die mit den anderen beiden Textfeldern übereinstimmt und das dritte Kriterium nicht berücksichtigt.

Kann mir bei meinem Problem vielleicht jemand helfen??

Schon mal Danke.

LG

Tobias

Link zu diesem Kommentar
Auf anderen Seiten teilen

oh sorry,

ich verwende access 07

Schreibe dir eine Ereignisprozedur "bei Änderung" der Suchfelder, die eine weitere Prozedur aufruft (immer die gleiche), die dir die Bedingung (wie SQL-where, nur ohne where) zusammensetzt.

Dann nimmst du diese als Filter und schaltest den Filter ein.


Private Sub DeinTextfeld1_AfterUpdate()

    Call Filter_setzen

End Sub


Private Sub DeinTextfeld2_AfterUpdate()

    Call Filter_setzen

End Sub


Private Sub DeinTextfeld3_AfterUpdate()

    Call Filter_setzen

End Sub


Private Sub Filter_setzen()

    Dim Filterbedingung As String

    If Not IsNull( Me!DeinTextfeld1 ) Then

        If Filterbedingung <> "" Then

            Filterbedingung = Filterbedingung & " AND "

        End If

        Filterbedingung = Filterbedingung & "Textfeld1 = " _

                & chr(34) &  Me!DeinTextfeld1 & chr(34) 

    End If

    If Not IsNull( Me!DeinTextfeld2 ) Then

        If Filterbedingung <> "" Then

            Filterbedingung = Filterbedingung & " AND "

        End If

        Filterbedingung = Filterbedingung & "Textfeld2 = " _

                & chr(34) &  Me!DeinTextfeld2 & chr(34) 

    End If

    If Not IsNull( Me!DeinTextfeld3 ) Then

        If Filterbedingung <> "" Then

            Filterbedingung = Filterbedingung & " AND "

        End If

        Filterbedingung = Filterbedingung & "Textfeld3 = " _

                & chr(34) &  Me!DeinTextfeld3 & chr(34) 

    End If

    Me.Filter = Filterbedingung

    Me.FilterOn = true

End Sub

Einfach mal so aus der hohlen Hand, aber das Prinzip stimmt.

Hollaröhdulljöh

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Reinhold,

Danke für den Filter. Er fuktioniert auch, aber irgendwie kann ich den Filter nicht an ein anderes Formular bzw Bericht weitergeben.

Über einen Button soll ein weiteres Formular geöffent werden. Folgendes hab ich da geschrieben:

DoCmd.OpenForm "stammdaten", acNormal, Me.Filter

Es kommt jedoch folgender Laufzeitfehler 3011:

Das Mocrosoft Office Access Datenbankmodul konnte das Objekt 'Gegenstand="XY" AND Typ="YZ"' nicht finden. Stellen Sie sicher, dass das Objekt vorhanden und dass die Namens- und Pfadangaben richtig eingegeben wurden.

Das komische ist, dass wenn ich ein geteiltes Formular hab, dann filtert er mir die Datensätze in der Datenblattansicht. Wenn ich jedoch das gleiche Formular über den button öffnen möchte geht es schon nicht mehr.

PS: Das Textfeld im Sucheformular hat den gleichen Namen wie im zweiten.

Weiß vielleicht dafür jemand eine Lösung.

Bitte um Hilfe.

Schonmal Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...