Office: (Office 2010) Formular das nach mehreren Suchkriterien sucht und daraus ein neues Formular erstellt

Helfe beim Thema Formular das nach mehreren Suchkriterien sucht und daraus ein neues Formular erstellt in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Kannst du bitte den Wortlaut der Fehlermeldungen nennen und beschreiben wann sie auftreten? Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Lisa2014, 11. März 2014.

  1. Formular das nach mehreren Suchkriterien sucht und daraus ein neues Formular erstellt


    Kannst du bitte den Wortlaut der Fehlermeldungen nennen und beschreiben wann sie auftreten?
     
    Anne Berg, 13. März 2014
    #16
  2. Hi Anne,

    wenn ich auf den Suchen Button klicke taucht die Fehlermeldung:

    Fehler beim Komplimieren: Variable nicht definiert.

    Ich habe die Variable Employees eingetragen und habe mich an der Vorlage gehalten. In der Vorlage wurde ja nicht Umsatzklassen gefiltert und das wurde ich auch tun nur für Mitarbeiter.

    Der Quellcode lautet wie folgt:
    Option Compare Database
    Option Explicit
    Dim Krit, SQL

    Private Sub Suchen_Click()
    MakeSQL
    Me!frmLieferanten1.Form.RecordSource = SQL
    'Me!ufrmAdresseSuchen.Visible = True
    Me!Lieferantenname.SetFocus
    End Sub

    Private Sub MakeSQL()
    Dim EmployeesVon As Double, EmBis As Double, Tmp1 As String, Tmp As String, Itm
    Krit = ""
    ' hier sind verschiedene Vergleichskriterien für unterschiedliche Felddatentypen exemplarisch aufgeführt:

    ' generelle Anmerkungen: LIKE gibt nur bei Textfeldern Sinn
    ' ein "*" am Anfang eines LIKE-Vergleichsstrings sollte man aus Effizienzgründen vermeiden
    ' Textliterale müssen in Apostrophe oder Anführungsstriche eingeschlossen sein
    ' Datumsliterale in Nummern-(Hash-)Zeichen und im ISO-Format ("yyyy-mm-dd"),
    ' alternativ im US-Format ("mm/dd/yyyy")
    ' Ganzzahlige Werte werden ohne weitere Konversion (und ohne Begrenzungszeichen) verglichen.
    ' Bei Gleitkommaliteralen muss das Dezimalkomma in einen Punkt gewandelt werden (z.B. mit Str()).

    If Not IsNull(Me!FAA) Then Krit = Krit & " AND FAA = " & IIf(Me!FAA, "True", "False")
    If Not IsNull(Me!EASA) Then Krit = Krit & " AND EASA = " & IIf(Me!EASA, "True", "False")
    If Not IsNull(Me!TCCA) Then Krit = Krit & " AND TCCA = " & IIf(Me!TCCA, "True", "False")
    If Not IsNull(Me!Others) Then Krit = Krit & " AND Others = " & IIf(Me!Others, "True", "False")
    If Not IsNull(Me!PrivateOwner) Then Krit = Krit & " AND PrivateOwner = " & IIf(Me!PrivateOwner, "True", "False")
    If Not IsNull(Me!PMADER) Then Krit = Krit & " AND PMADER = " & IIf(Me!PMADER, "True", "False")
    If Not IsNull(Me!OEM) Then Krit = Krit & " AND OEM = " & IIf(Me!OEM, "True", "False")
    If Not IsNull(Me!MRO) Then Krit = Krit & " AND MRO = " & IIf(Me!MRO, "True", "False")
    If Not IsNull(Me!Airline) Then Krit = Krit & " AND Airline = " & IIf(Me!Airline, "True", "False")
    If Not IsNull(Me!Broker) Then Krit = Krit & " AND Broker = " & IIf(Me!Broker, "True", "False")
    If Not IsNull(Me!Handlingagents) Then Krit = Krit & " AND Handlingagents = " & IIf(Me!Handlingagents, "True", "False")
    If Not IsNull(Me!Avionics) Then Krit = Krit & " AND Avionics = " & IIf(Me!Avionics, "True", "False")
    If Not IsNull(Me!Hydraulics) Then Krit = Krit & " AND Hydraulics = " & IIf(Me!Hydraulics, "True", "False")
    If Not IsNull(Me!Pneumatics) Then Krit = Krit & " AND Pneumatics = " & IIf(Me!Pneumatics, "True", "False")
    If Not IsNull(Me!Electromechanics) Then Krit = Krit & " AND Electromechanics = " & IIf(Me!Electromechanics, "True", "False")
    If Not IsNull(Me!Else) Then Krit = Krit & " AND Else = " & IIf(Me!Else, "True", "False")


    If Not IsNull(Me!Employees) Then
    If Me!Employees "Alle" Then
    Tmp = Me!Employees
    Tmp1 = "0" & Trim(Mid(Tmp, 1, InStr(Tmp, "..") - 1))
    EmployeesVon = CDbl(Tmp1)
    If EmployeesVon 0 Then Krit = Krit & " AND Employees >=" & Str(EmployeesVon)
    Tmp1 = "0" & Trim(Mid(Tmp, InStr(Tmp, "..") + 2))
    EmployeesBis = CDbl(Tmp1)
    If EmlpoyeesBis 0 Then Krit = Krit & " AND Employees
     
    Lisa2014, 13. März 2014
    #17
  3. Hallo,

    kannst Du Deinen Code bitte künftig in Code-Tags setzen?

    Code:
    Fällt Dir etwas auf?

    Und: Das IIF-Getöse kann wegfallen, du kannst Dich auf den boolschen Wert beziehen.

    Und schließlich könnte man das meiste elegant in einer Schleife über die Kontrollkästchen erledigen.
     
  4. Formular das nach mehreren Suchkriterien sucht und daraus ein neues Formular erstellt

    Hallo Maxel,

    ich kenne mich leider nicht in VBA aus. Wie meinst du das? Solle ich alles ersetzten? Was meinst du mit:
    Und: Das IIF-Getöse kann wegfallen, du kannst Dich auf den boolschen Wert beziehen.

    Und schließlich könnte man das meiste elegant in einer Schleife über die Kontrollkästchen erledigen.

    Viele Grüße,

    Lisa

    P.S. Ich habe die Datenbank hochgeladen in meinen vorherigen Kommentar *frown.gif*
     
    Lisa2014, 13. März 2014
    #19
  5. Hi Lisa,
    dann schau doch einfach mal genau hin, welche Variable da angemeckert wird, wie sie geschrieben ist und wie der Name tatsächlich lauten sollte.

    Nicht deklarierte Variablen (bzw. Schreibfehler) werden halt bei Angabe von "Option Explicit" nicht toleriert.

    Und was das betrifft:
    so kennt Maxel vermutlich das Problem und bspw. diesen Thread (Link auf die Lösung von Josef P.) nicht.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Anne Berg, 13. März 2014
    #20
  6. Hi Anne,

    ich habe die Variablennamen angepasst. Jedoch taucht jetzt die Fehlermeldung:
    Laufzeitfehler 2465. Access kann in Ihrem Ausdruck angesprochene Feld 'Employees' nicht finden.
    Diese Feld existiert als Tabellle und ist auch im Unterformular frmLieferanten1.

    Der Quellcode lautet wie folgt:

    Option Explicit
    Dim Krit, SQL

    Private Sub Suchen_Click()
    MakeSQL
    Me!frmLieferanten1.Form.RecordSource = SQL
    'Me!ufrmAdresseSuchen.Visible = True
    Me!Lieferantenname.SetFocus
    End Sub

    Private Sub MakeSQL()
    Dim Employees As Double, Tmp1 As String, Tmp As String, Itm
    Krit = ""
    ' hier sind verschiedene Vergleichskriterien für unterschiedliche Felddatentypen exemplarisch aufgeführt:

    ' generelle Anmerkungen: LIKE gibt nur bei Textfeldern Sinn
    ' ein "*" am Anfang eines LIKE-Vergleichsstrings sollte man aus Effizienzgründen vermeiden
    ' Textliterale müssen in Apostrophe oder Anführungsstriche eingeschlossen sein
    ' Datumsliterale in Nummern-(Hash-)Zeichen und im ISO-Format ("yyyy-mm-dd"),
    ' alternativ im US-Format ("mm/dd/yyyy")
    ' Ganzzahlige Werte werden ohne weitere Konversion (und ohne Begrenzungszeichen) verglichen.
    ' Bei Gleitkommaliteralen muss das Dezimalkomma in einen Punkt gewandelt werden (z.B. mit Str()).

    If Not IsNull(Me!FAA) Then Krit = Krit & " AND FAA = " & IIf(Me!FAA, "True", "False")
    If Not IsNull(Me!EASA) Then Krit = Krit & " AND EASA = " & IIf(Me!EASA, "True", "False")
    If Not IsNull(Me!TCCA) Then Krit = Krit & " AND TCCA = " & IIf(Me!TCCA, "True", "False")
    If Not IsNull(Me!Others) Then Krit = Krit & " AND Others = " & IIf(Me!Others, "True", "False")
    If Not IsNull(Me!PrivateOwner) Then Krit = Krit & " AND PrivateOwner = " & IIf(Me!PrivateOwner, "True", "False")
    If Not IsNull(Me!PMADER) Then Krit = Krit & " AND PMADER = " & IIf(Me!PMADER, "True", "False")
    If Not IsNull(Me!OEM) Then Krit = Krit & " AND OEM = " & IIf(Me!OEM, "True", "False")
    If Not IsNull(Me!MRO) Then Krit = Krit & " AND MRO = " & IIf(Me!MRO, "True", "False")
    If Not IsNull(Me!Airline) Then Krit = Krit & " AND Airline = " & IIf(Me!Airline, "True", "False")
    If Not IsNull(Me!Broker) Then Krit = Krit & " AND Broker = " & IIf(Me!Broker, "True", "False")
    If Not IsNull(Me!Handlingagents) Then Krit = Krit & " AND Handlingagents = " & IIf(Me!Handlingagents, "True", "False")
    If Not IsNull(Me!Avionics) Then Krit = Krit & " AND Avionics = " & IIf(Me!Avionics, "True", "False")
    If Not IsNull(Me!Hydraulics) Then Krit = Krit & " AND Hydraulics = " & IIf(Me!Hydraulics, "True", "False")
    If Not IsNull(Me!Pneumatics) Then Krit = Krit & " AND Pneumatics = " & IIf(Me!Pneumatics, "True", "False")
    If Not IsNull(Me!Electromechanics) Then Krit = Krit & " AND Electromechanics = " & IIf(Me!Electromechanics, "True", "False")
    If Not IsNull(Me!Else) Then Krit = Krit & " AND Else = " & IIf(Me!Else, "True", "False")
    If Not IsNull(Me!Employees) Then
    If Me!Employees "Alle" Then
    Tmp = Me!Employees
    Tmp1 = "0" & Trim(Mid(Tmp, 1, InStr(Tmp, "..") - 1))
    Employees = CDbl(Tmp1)
    If Employees 0 Then Krit = Krit & " AND Employees >=" & Str(Employees)
    Tmp1 = "0" & Trim(Mid(Tmp, InStr(Tmp, "..") + 2))
    Employees = CDbl(Tmp1)
    If Employees 0 Then Krit = Krit & " AND Employees
     
    Lisa2014, 13. März 2014
    #21
  7. Hallo!

    Das ist dem VBA-Compiler ziemlich egal, wenn es mit Me!Employees angesprochen wird und der gezeigte Code nicht der Code vom Unterformular "frmLieferanten1" ist. *wink.gif*

    mfg
    Josef

    BTW:
    ich wiederhole die Bitte von Maxel noch einmal:
     
    Josef P., 13. März 2014
    #22
  8. Formular das nach mehreren Suchkriterien sucht und daraus ein neues Formular erstellt

    Hallo Lisa,

    schau nach, wie das Kombifeld in deinem Formular heißt!

    PS:
    Und es ist nicht nötig, den Code immer wieder zu posten, einmal genügt. *wink.gif*
     
    Anne Berg, 13. März 2014
    #23
  9. Hi Josef,

    ich kenne mich mit VBA Programmmierung überhaupt nicht aus und verstehe deine Antwort nicht *frown.gif*

    Kannst du dir die Datenbank mal anschuen evtl. habe ich was vergessen.

    Danke im Voraus
     
    Lisa2014, 13. März 2014
    #24
  10. Mit Me!Employees spricht ein Steuerelement auf dem Formular an, das gibt es aber nicht.
    (die Beschriftung spielt hierbei keine Rolle *wink.gif*)
     
    Anne Berg, 13. März 2014
    #25
  11. Danke Anne,

    ich habe das Steuerelement Employees genannt und dieser Fehler wurde beseitigt. Jetzt tauch wieder die Fehlermeldung 2465 auf:
    Das Access das Feld frmLieferanten1 nicht findet.
    Der Quellcode ist wie folgt:

    Private Sub Suchen_Click()
    MakeSQL
    Me!frmLieferanten1.Form.RecordSource = SQL
    'Me!ufrmAdresseSuchen.Visible = True
    Me!Lieferantenname.SetFocus
    End Sub

    Sorry für die Belästigungen
     
    Lisa2014, 13. März 2014
    #26
  12. CptChaos, 14. März 2014
    #27
  13. Formular das nach mehreren Suchkriterien sucht und daraus ein neues Formular erstellt

    @Benny: Ich würde die Frage eher so stellen: Gibt es ein Unterformularsteuerelement mit dem Namen frmLieferanten1?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  14. Hi,

    es gibt ein Untersteuerformularsteuerelement mit dem Namen:
    frmLieferanten1 und es ist während der Laufzeit des Codes geöffnet. Es taucht eine neue Fehlermeldung das das Feld Lieferantenname nicht gefunden werden kann, obwohl diese im frmLieferanten1 enthalten ist.
    Code:
    Ich habe die Screenshots angehängt.

    Danke nochmals,

    Lisa
     
    Lisa2014, 14. März 2014
    #29
  15. Nein, schau doch einfach mal ganz genau hin!

    Und wenn du hiermit (nach Korrektur des Namens) das Unterformular ansprichst: Code:
    so brauchst du denselben "Zugriffspfad" für das im Unterformular befindliche Steuerelement: Code:
     
    Anne Berg, 14. März 2014
    #30
Thema:

Formular das nach mehreren Suchkriterien sucht und daraus ein neues Formular erstellt

Die Seite wird geladen...
  1. Formular das nach mehreren Suchkriterien sucht und daraus ein neues Formular erstellt - Similar Threads - Formular mehreren Suchkriterien

  2. MS Access Formular - mehrere Datensätze pro Steuerelement hinzufügen?

    in Microsoft Access Hilfe
    MS Access Formular - mehrere Datensätze pro Steuerelement hinzufügen?: Hallo Ihr Lieben, ich bastle gerade ein Formular. Nun such ich nach dem passenden "Steuerelement", dass ich mehrere Daten pro Feld eingeben kann, z.B. getrennt durch ein Semikolon oder ähnliches?...
  3. Formular mit Inhalten aus mehreren Tabellen

    in Microsoft Access Hilfe
    Formular mit Inhalten aus mehreren Tabellen: Moin, nachdem ich hier in der Historie zwar schon einige zuerst vielversprechende Postings mit interessanten Antworten gefunden habe, diese aber irgendwie bei mir im Hirn nicht auf mein Problem...
  4. Auswahlmenü in Formularen erstellen & speichern mehrerer Datensätze

    in Microsoft Access Hilfe
    Auswahlmenü in Formularen erstellen & speichern mehrerer Datensätze: Hallo zusammen, Ich melde mich bezüglich folgenden Sachverhaltes: Ziel unserer Access-Anwendung ist es: Übergabeprotokoll und Rückgabeprotokoll für Technik zu erstellen! Was haben wir bereits:...
  5. Filtern in Formular über mehrere Tabellen/Abfragen

    in Microsoft Access Hilfe
    Filtern in Formular über mehrere Tabellen/Abfragen: Hallo zusammen, folgende Problemstellung: Ich habe ca. 15 Tabellen (aus unterschiedlichen Jahren) mit den gleichen Feldernamen. Ich möchte ein HF mit UFO erstellen, wo ich über HF in UFO nach...
  6. Nach Sortierung im Formular, wird die Ansicht nicht mehr aktualisiert.

    in Microsoft Access Hilfe
    Nach Sortierung im Formular, wird die Ansicht nicht mehr aktualisiert.: Hallo liebes Forum, jetzt wahrscheinlich ein Standard Satz, aber ich habe nicht das richtige für mein Problem gefunden, vielleicht kann mir hier einer helfen !?!?! Folgenes: Ich habe mein...
  7. Corona: Mehrere Timer in Formular nur 1. wird geupdatet

    in Microsoft Access Hilfe
    Corona: Mehrere Timer in Formular nur 1. wird geupdatet: Hallo zusammen :-), wir haben gerade mehrere Mitarbeiter im Corona-Einsatz und müssen je nach Equipment eine Dokumentation des Atemschutzeinsatzes durchführen. Das Tool steht auch soweit und nun...
  8. Hilfe!! Forms Formulare sind nicht mehr erneut verwendbar. Dringend!!

    in Microsoft Teams Hilfe
    Hilfe!! Forms Formulare sind nicht mehr erneut verwendbar. Dringend!!: Da man in Forms erstelle Formulare und Quizes nicht in einen Ordner verschieben kann bzw, man keinen Ordner erstellen kann um etwas Ordnung und Übersicht zu gewinnen, habe ich in Forms beim...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden