IF non funziona più da VBA

di il
11 risposte

IF non funziona più da VBA

Buongiorno a tutti,
Chiedo scusa se apro un nuovo post magari su un argomento già presente, ho provato a cercare ma come inserisco IF mi escono fuori centinaia di post e non credo di essere riuscito a guardarli tutti...

Allora, spiego il mio problema. Ho un db access 2010 con cui lavoro da molto. quello che ho notato è che da vba la funzione IF Then non funziona più.
Ma non tutte...
Se inserisco :
If Me.pippo = 1 Then
MsgBox "1"
End if

FUNZIONA,

Se inserisco:
If Me.pippo = Me.Pluto then
MsgBox "Pluto"
End if

Non funziona! Ho provato anche con un pulsante a passare il comando ma niente. Ho provato anche ad aprire un database nuovo e a creare una maschera con due textbox e un pulsante con la if e funziona perfettamente.... Che può essere accaduto?? Ho provato a migrare il tutto in un nuovo database ma il problema evidentemente se lo trascina con se... ho fatto anche compila e non ci sono errori... compatta e tutto va bene ma se metto a confronto due textbox sia da if che da select case non funziona nulla!!!

Vi prego aiutatemi!!!!
Grazie a tutti

11 Risposte

  • Re: IF non funziona più da VBA

    Che significa "non funziona"? Il MsgBox salterà fuori solo se l'uguaglianza in testa è vera. Altrimenti ovviamente non succede nulla.
    Può darsi che Me.Pippo o Me.Pluto contiene un valore Null e il confronto valori crea problemi...boh! Oppure I due campi non sono omogenei (che so uno è testo, l'altro numerico).
  • Re: IF non funziona più da VBA

    Ciao Osvaldo
    anche io credevo fosse così come dici tu ma ho volutamente messo lo stesso valore in entrambe le textbox e nulla... non accade proprio nulla.... nemmeno se utilizzo una select case... Uso questo db da anni... non so cosa sia potuto accadere...
  • Re: IF non funziona più da VBA

    Non è che cambiando da un database a un altro i due controlli non si chiamano più Pippo e Pluto, ma magari TextBox1, TextBox2?
    Per capire meglio come stanno le cose, prova a fare questo test:
    1. Inserisci il valore 100 in Pippo
    2. Inserisci il valore 100 in Pluto
    3. Prima di fare il controllo If, fai scrivere al codice
    MsgBox Me.Pippo
    MsgBox Me.Pluto
    In questo modo ti rendi conto se il codice preleva correttamente i valori dai controlli
  • Re: IF non funziona più da VBA

    No no i nomi sono quelli di sempre... considera che per praticità qui li ho chiamati pippo e pluto ma nel db sono anni che si chiamano così... cosa potrebbe essere capitato secondo te?
  • Re: IF non funziona più da VBA

    Aggiungo inoltre che come ultima prova ho creato nel db che sto usando una maschera vuota dove ho inserito due text chiamate testo0 e testo2.
    Ho creato un bottone e sull'evento onclick ho messo la routine:
    If Me.testo0 = me.testo2 then
    MsgBox "Corretto"
    End if
    ho aperto la maschera e ho inserito come valore "1" in entrambe le text e quando ho cliccato il bottone... NULLA!!!!
    Sono disperato...
  • Re: IF non funziona più da VBA

    Rileggi completamente il mio messaggio precedente che ho modificato nel frattempo.
    Ho fatto un test seguendo pari pari quello che hai descritto prima, a me funziona tutto.
  • Re: IF non funziona più da VBA

    Guarda...i valori sono identici
    Allegati:
    27698_40d8f1094dcf8d80e4ed0d89d079b49d.png
    27698_40d8f1094dcf8d80e4ed0d89d079b49d.png
  • Re: IF non funziona più da VBA

    OsvaldoLaviosa ha scritto:


    Rileggi completamente il mio messaggio precedente che ho modificato nel frattempo.
    Ho fatto un test seguendo pari pari quello che hai descritto prima, a me funziona tutto.
    Si, i valori che la routine trasmette sono gli stessi...
    100 in tutti e due i casi
    ma se inserisco IF... non funziona più...


    Se addirittura metto:
    If me.testo0 = 100 Then
    MsgBox"Corretto"
    End if
    Funziona!!!!
    Ma se metto a confronto due text non funziona più... che cavolo posso fare?
  • Re: IF non funziona più da VBA

    Sicuro che stai usando testo0 e testo2? Forse ne usi altri?
  • Re: IF non funziona più da VBA

    Io ho costruito 2 textbox e le ho chiamate volutamente Pluto e Pippo (controlla le proprietà "Nome elemento"), poi ho messo un pulsante e questo
    Private Sub Comando4_Click()
    MsgBox Me.Pippo
    MsgBox Me.Pluto
    If Me.Pippo = Me.Pluto Then
    MsgBox "Corretto"
    End If
    End Sub
    Dopo aver inserito 2 valori uguali, mi appaiono 3 MsgBox in sequenza che fanno il loro dovere.
  • Re: IF non funziona più da VBA

    OsvaldoLaviosa ha scritto:


    Io ho costruito 2 textbox e le ho chiamate volutamente Pluto e Pippo (controlla le proprietà "Nome elemento"), poi ho messo un pulsante e questo
    Private Sub Comando4_Click()
    MsgBox Me.Pippo
    MsgBox Me.Pluto
    If Me.Pippo = Me.Pluto Then
    MsgBox "Corretto"
    End If
    End Sub
    Dopo aver inserito 2 valori uguali, mi appaiono 3 MsgBox in sequenza che fanno il loro dovere.
    Mamma mia... ho capito perché non funziona....
    Una textbox prende il valore da un tag di un pulsante... (è un po' complicato da spiegare... il database serve a rispondere a delle domande stile quiz...)
    Quindi su origineControllo ha: =[PulsanteValore1]
    Cambiata la text box, funziona tutto... eppure credevo che la potesse leggere ugualmente... ora passo il valore direttamente da codice vba così riempio la textbox senza la funzione di Uguale... Ora funziona tutto... avevo veramente paura che il db si fosse corrotto!!!
    Grazie mille Osvaldo!! Sei stato gentilissimo!!
Devi accedere o registrarti per scrivere nel forum
11 risposte