Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VBA/ACCESS] If Then Else con maschere tabulari in access

    Buongiorno,
    vi presento il mio problema:

    Ho una maschera tabulare all'interno della quale vengono mostrati 3 campi numerici A, B e C ed una Immagine.

    In VBA ho inserito questo codice

    codice:
    Private Sub Form_Load()
        If Me.A < Me.B Then
                Immagine.Visible = True
        End If
    End Sub
    Il problema è che in ogni caso, sia che A < B sia vero o falso l'immagine è visibile.

    Dove sbaglio?

    Grazie per l'aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Hai specificato per quale condizione l'immagine deve essere visibile, ma questo non implica che altrimenti (ELSE!) l'immagine non sarà visibile.

  3. #3
    Dici così?

    codice:
    Private Sub Form_Load()
        If Me.A < Me.B Then
                Immagine.Visible = True
        ElseIf Me.A >= Me.B Then
                Immagine.Visible = False
        End If
    End Sub
    Perchè non cambia nulla.

    Credo di sbagliare qualcosa nell'identificativo del dato della riga della tabella.

  4. #4
    Up

  5. #5
    Ciao.
    Una domanda:
    "come vengono valorizzati i controlli che contengono i valori numerici...?! ...?!"
    Non è che sono valorizzati dopo l'evento "load" ?!
    Saluti 'toscani'
    Luciano.
    Un salutone dall'Alta Maremma...!

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Kajo_Shyn
    Dici così?

    codice:
    Private Sub Form_Load()
        If Me.A < Me.B Then
                Immagine.Visible = True
        ElseIf Me.A >= Me.B Then
                Immagine.Visible = False
        End If
    End Sub
    Perchè non cambia nulla.

    Credo di sbagliare qualcosa nell'identificativo del dato della riga della tabella.
    Non so che tipo di oggetto sia una maschera tabulare, quindi non so se Me.A restituisce quello che ti aspetti.

    Comunque la cosa da fare è verificare i valori contenuti in Me.A e Me.B al momento del Load.

    Non so se in VBA puoi mettere un BreakPoint [F9] sulla riga come si fa in VB6, e poi selezionare 'Me.A' e premere SHIFT+F9 così da ottenere il valore che contiene.


    Il codice può essere semplificato e più leggibile, così:

    codice:
    Immagine.Visible = (Me.A < Me.B)

  7. #7
    Grazie, proverò così e vi faccio sapere.

    Per ora ho risolto aggiungendo un campo "Casella di testo" ed impostando Formattazione Condizionale affinche cambi il colore alla casella in base alla relazione tra A e B,

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.