variable als formularname nehmen

Von: , Frage gestellt am So, 4. Feb 2007

moin!
wenn ich eine routine in einem globalen modul aufrufe, möchte ich eine variable als formularname verwenden. dies ist wichtig, da die routine von mehreren formularen aus aufgerufen werden kann und immer das aktuelle formular verwendet werden soll.
die variable kriegt ihren wert in dem formular in dem die routine aufgerufen wird. das wird auch richtig über eine msgbox angezeigt die die variable ausgibt. ich möchte also

Public Sub MakeSQLLS()
Krit = ""
MsgBox GblName
If Not IsNull(GblName.Hersteller) Then
Krit = Krit & " AND Hersteller LIKE '" & GblName.Hersteller & "*'"

ausführen. und in GblName steht Form_FormularnamevonFormular.

wenn ich es so verwende:

If Not IsNull(Form_FormularnamevonFormular.Hersteller) Then
Krit = Krit & " AND Hersteller LIKE '" & Form_FormularnamevonFormular.Hersteller & "*'"

dann funktioniert es. wenn ich es mit der variablen mache, kommt der fehler:

Laufzeitfehler 4242, objekt erforderlich

was kann das sein?

2 Antworten zu dieser Frage

  1. Antwort von nach 10 Stunden 0 hilfreich
    Re: variable als formularname nehmen

    N'abend, wenn ich eine routine in einem globalen modul aufrufe, möchte
    ich eine variable als formularname verwenden. dies ist
    wichtig, da die routine von mehreren formularen aus aufgerufen
    werden kann und immer das aktuelle formular verwendet werden
    soll.
    aktuelles Formular = Me.name

    also ME. symbolisiert immer das aktuelle Formular

    somit wäre folgende Variante möglich: If Not IsNull(Me.Hersteller) Then
    Krit = Krit & " AND Hersteller LIKE '" &
    Me.Hersteller & "*'"
    als Variable:

    Dim FormVar as Form
    FormVar = Forms!Meinform If Not IsNull((Formvar).Hersteller) Then
    Krit = Krit & " AND Hersteller LIKE '" &
    (FormVar).Hersteller & "*'"
    Grüße aus Schwerin
    Wolfgang
    (Netwolf)

  2. Antwort von nach einem Tag 0 hilfreich
    Re: variable als formularname nehmen

    Wenn, dann wohl eher:

    Dim F as Form, FrmName as string
    FrmName = "DeinFormular" ' ohne "Form_"
    Set F = Forms(FrmName)
    If Not IsNull(F!Hersteller) Then
    Krit = Krit & " AND Hersteller LIKE '" & F!Hersteller & "*'"
    end if
    


    Gruß aus dem Norden
    Reinhard Kraasch

    (http://www.dbwiki.de - das Datenbank-Wiki)

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!