Textfeld soll (de)aktivierbar sein, von Kontrollkästchen bestimmt. Bei jedem Datensatz individuell

  • Access

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Streethawk.

    Textfeld soll (de)aktivierbar sein, von Kontrollkästchen bestimmt. Bei jedem Datensatz individuell

    Liebe Mituser!

    Ich habe:
    Eine Access 2003 Datenbank. Im (einzigen) Formular u.a. ein Textfeld und ein Kontrollkästchen.

    Ich möchte:
    Das Textfeld soll (de)aktiviert sein, je nachdem, ob das Kontrollkästchen true oder false ist.

    Ich habe bereits:
    Das Textfeld verhält sich wie gewünscht, aber immer für alle Datensätze.

    Wie lässt sich erreichen, dass der Zustand des Textfelde variieren kann? Bsp.:
    Datensatz A: Kontrollkästchen true, Textfeld enabled
    Datensatz B: Kontrollkästchen false, Textfeld disabled


    Der Code dazu (bisher):

    Private Sub SONSTIGES_Click()
    If SONSTIGES = True Then
    BESCHREIBUNG_SONSTIGES.Enabled = True
    Else
    BESCHREIBUNG_SONSTIGES.Enabled = False
    End If
    End Sub

    Vielen Dank für eure wertvollen Tipps!
    euer
    Streethawk
    :)

    Fehler neu aufgetreten

    [Access 2003]

    Liebe Mituser!

    Ich setze hiermit ein schon vor Wochen begonnenes Thema fort.

    Es ging seinerzeit darum, ein Textfeld zu aktivieren, wenn ein Kontrollkästchen angehakt war und zu deaktivieren, wenn es nicht angehakt war. Und dies individuell pro Datensatz. Bsp.:

    Datensatz A – Kontrollkästchen SONSTIGES aktiv – Textfeld BESCHREIBUNG_SONSTIGES enabled

    Datensatz B – Kontrollkästchen SONSTIGES inaktiv – Textfeld BESCHREIBUNG_SONSTIGES nicht enabled

    Dies war auch gut realisiert worden mit:

    Private Sub Form_Current()

    Me!BESCHREIBUNG_SONSTIGES.Enabled = Me!SONSTIGES

    End Sub

    und

    Private Sub SONSTIGES_AfterUpdate()

    Me!BESCHREIBUNG_SONSTIGES.Enabled = Me!SONSTIGES

    End Sub

    Nun ist aber folgendes Problem aufgetaucht: Wenn man einen neuen Datensatz anlegen/eingeben möchte, kommt der Fehler:

    Laufzeitfehler ‚13’ – Typen unversräglich

    Wenn man dann „debuggen“ klickt, springt die gelb unterlegte Zeile zu

    Me!BESCHREIBUNG_SONSTIGES.Enabled = Me!SONSTIGES

    in der Prozedur

    Private Sub Form_Current()

    Ein weiteres Problem: Warum taucht das Problem jetzt auf? Die Datenbank ist wochenlang zufriedenstellend gelaufen (auch mit der Textfeld(de)aktivierung). Währenddessen habe ich auch oft neue Datensätze angelegt.

    Was habe ich verändert seitdem?

    Ich habe ein ‚lernendes’ Formular programmiert, das PLZs abfragt und merkt und dann selbstständig hinzufügt. Die Prozedur dazu:

    Private Sub PLZ_Exit(Cancel As Integer)

    Dim varStadt As Variant

    Dim strStadt As String

    Dim strPLZ As String

    Dim conn As New ADODB.Connection

    Dim rst As ADODB.Recordset



    varStadt = DLookup("ORT", "PLZ_Tab", "PLZ = Forms![Formular01]![PLZ]")

    If (Not IsNull(varStadt)) Then

    Me![ORT] = varStadt

    Else

    strStadt = InputBox("Bitte geben Sie den Ort ein!")

    strPLZ = Me!PLZ

    Me!ORT = strStadt



    Set conn = CurrentProject.Connection

    Set rst = New ADODB.Recordset

    rst.Open "PLZ_Tab", conn, adOpenKeyset, adLockOptimistic

    rst.AddNew

    rst!PLZ = strPLZ

    rst!ORT = strStadt

    rst.Update

    rst.Close

    Set rst = Nothing

    Set conn = Nothing

    End If

    End Sub

    Aber was sollte das mit dem Textfeld zu tun haben??



    Vielen Dank für eure wertvollen Tipps!

    euer

    Streethawk

    :)