Form ritiene valore controlli dopo chiusura

di il
5 risposte

Form ritiene valore controlli dopo chiusura

Ciao a tutti,

ho notato una cosa strana (per me):

ho creato una form non collegata a nessuna tabella o query, quindi con textbox non associate.
Popolo le textbox da vba e poi chiudo la form.

Perchè se da un'altra form punto al valore di un controllo della form chiusa trovo ancora l'ultimo valore che avevo inserito da vba?
Dove lo tiene??

5 Risposte

  • Re: Form ritiene valore controlli dopo chiusura

    Impossibile se la form è chiusa non è raggiungibile.
    Sei certo di chiuderla e non di renderla NON VISIBILE...?

    Da vba interrogando un controllo di una form chiusa otterretsti errore, quindi stai facendo qualche cosa di poco chiaro...
  • Re: Form ritiene valore controlli dopo chiusura

    @Alex ha scritto:



    Sei certo di chiuderla e non di renderla NON VISIBILE...?
    si, sono certo di chiuderla..

    la form funziona che quando aggiorno una textbox (non associata) va ad eseguire una query update su una tabella, ecco che se io non eseguo la query (disabilitando il codice) l'altra form continua a trovare l'ultimo valore che era stato aggiornato con la update.. quindi forse c'è qualcosa con la tabella..

    mi è venuto in mente che quando ho creato la form avevo erroneamente associato una tabella nella proprietà origine record e poi l'avevo tolto.. può essere che in qualche modo è rimasta un'associazione tra la form e la table?
  • Re: Form ritiene valore controlli dopo chiusura

    Potresti mostrare come vai a prendere il valore dalla maschera che dovrebbe essere chiusa?
    Se non è infinito pubblica anche il codice presente nella maschera non associata.
  • Re: Form ritiene valore controlli dopo chiusura

    Philcattivocarattere ha scritto:


    Potresti mostrare come vai a prendere il valore dalla maschera che dovrebbe essere chiusa?
    Se non è infinito pubblica anche il codice presente nella maschera non associata.
    il codice nella maschera che va a prendere il valore da quella non associata e chiusa è questa cosa minima qua:
    Private Sub Convert_Click()
    
        Dim a As String
        a = [Form_non_associata].a_text.Value
        MsgBox a
        
    End Sub
    
    e questo è il codice che è nella form non associata:
    Private lastFocusedControl As String
    
    
    Private Sub a_text_AfterUpdate()
        Call inserisciAssociazione
    End Sub
    
    Private Sub a_text_GotFocus()
        Call impostaFocus
    End Sub
    
    Private Sub b_text_AfterUpdate()
        Call inserisciAssociazione
    End Sub
    
    Private Sub b_text_GotFocus()
        Call impostaFocus
    End Sub
    
    
    Private Sub Form_Open(Cancel As Integer)
    
    Dim ctl As Control
    Dim txb As TextBox
    
    
    For Each ctl In Me.Controls
        If TypeOf ctl Is TextBox Then
            Set txb = ctl
            If txb.Tag = "lettera" Then
                If Not IsNull(DLookup("[letteraOutput]", "[associazioneLettere]", "[letteraInput] = '" & Left(txb.Name, 1) & "'")) Then
                    txb.Value = DLookup("[letteraOutput]", "[associazioneLettere]", "[letteraInput] = '" & Left(txb.Name, 1) & "'")
                End If
            End If
        End If
    Next ctl
    
    
    End Sub
    
    
    Private Sub inserisciAssociazione()
    
    Dim sql As String
    
    sql = "UPDATE [associazioneLettere] SET [letteraOutput] = '" & Me.ActiveControl.Value & "' WHERE [letteraInput] = '" & Left(Me.ActiveControl.Name, 1) & "'"
            
        If Strings.Len(Me.ActiveControl.Value) <> 1 Then
            MsgBox "wè, devi inserire solo un carattere"
            Me.ActiveControl.Value = Null
            lastFocusedControl = Me.ActiveControl.Name
            
        Else
        
            DoCmd.SetWarnings False
            DoCmd.RunSQL sql
            DoCmd.SetWarnings True
        End If
        
    End Sub
    
    Private Sub impostaFocus()
        If lastFocusedControl <> "" Then
            Me.Controls(lastFocusedControl).SetFocus
            lastFocusedControl = ""
        End If
    End Sub
    
    
    
  • Re: Form ritiene valore controlli dopo chiusura

    Motivi particolari per i quali dovrebbe succedere una cosa del genere dal codice non ne vedo. Non so... a questo punto credo che l'unica sia vedere un file dimostrativo in cui il problema di presenta (dimostrativo = ridotto all'osso, anche con dati di fantasia, purché il problema sia riproducibile)
Devi accedere o registrarti per scrivere nel forum
5 risposte