Testo concatenato da più checkbox

di il
19 risposte

19 Risposte - Pagina 2

  • Re: Testo concatenato da più checkbox

    15/10/2025 - Mailman ha scritto:

    14/10/2025 - @Alex ha scritto:

    Ma no non va bene... il mio era un TEST per provarla da riga di comando in finestra immediata senza farmi una Form ma la struttura era quella di prima in quanto così non la puoi richiamare direttamente su Evento AfterUpdate... 

    Deve essere una Function senza parametri:

    Anche con i parametri la si puo' richiamare sugli eventi AfterUpdate e Current, perche' dici che non si puo' fare? Io l'ho testata in una form e funziona correttamente.

    Pensavo che Tu l'avessi resa parametrica per poterla salvare su un modulo standard e poterla richiamare da qualsiasi form; perche' salvata nel modulo della form non serve renderla Public, poteva essere anche Private...

    Sbaglio?

    Questa di fatto non è una function che richiede parametri... ed essendo in maschera e non esterna e non riciclabile hanno ancora meno senso, detto questo la comodità di scrivere questo invece che attivare l'evento nel quale inserire il codice per ogni oggetto, mi pare molto comodo:

    =CheckAttachments()

    Alternativa è attivare 5 eventi ed inserie la chiamata.

    Poi io il Current lo uso a prescindere per motivi di Debug o per altri scopi e preferisco esplicitare la chiamata nell'ordine che io predefinisco, e non quello che Access impone (questo sotto non serve):

    Private Ckbox1_AfterUpdate()
    	CheckAttachments
    End Sub
    
    Private Ckbox2_AfterUpdate()
    	CheckAttachments
    End Sub
    
    Private Ckbox3_AfterUpdate()
    	CheckAttachments
    End Sub
    
    Private Ckbox4_AfterUpdate()
    	CheckAttachments
    End Sub
    
    Private Form_Current()
    	CheckAttachments
    End Sub

    Non so se sono riuscito a spiegarmi... 

  • Re: Testo concatenato da più checkbox

    Non so se hai risolto ma...

    qualche buon samaritano più ferrato di me in access mi dice se è giusta questa?

    costruita guardando manuali vari.

    
    Public Function CheckAttachments()
        Dim strLabel As String
        Dim attachments As Collection
    
        Set attachments = New Collection
    
        If Me!ChkAllegatoA.Value Then attachments.Add "Allegato A"
        If Me!ChkAllegatoB.Value Then attachments.Add "Allegato B"
        If Me!ChkAllegatoC.Value Then attachments.Add "Allegato C"
        If Me!ChkAllegatoD.Value Then attachments.Add "Allegato D"
    
        Select Case attachments.Count
            Case 0
                strLabel = ""
            Case 1
                strLabel = attachments(1) & "."
            Case 2
                strLabel = attachments(1) & " e " & attachments(2) & "."
            Case 3
                strLabel = attachments(1) & ", " & attachments(2) & " e " & attachments(3) & "."
            Case 4
                strLabel = attachments(1) & ", " & attachments(2) & ", " & attachments(3) & " e " & attachments(4) & "."
        End Select
    
        Me!ckLabel.Caption=strLabel
    End Function

    ovviamente alla label si può anteporre qualsiasi altro testo aggiuntivo.

  • Re: Testo concatenato da più checkbox

    15/10/2025 - @Alex ha scritto:

    Questa di fatto non è una function che richiede parametri... ed essendo in maschera e non esterna e non riciclabile hanno ancora meno senso, detto questo la comodità di scrivere questo invece che attivare l'evento nel quale inserire il codice per ogni oggetto, mi pare molto comodo:

    =CheckAttachments()

    Alternativa è attivare 5 eventi ed inserie la chiamata.

    Ciao @Alex, sono interessato ad approfondire la Tua soluzione, ma non ho capito come chiami la function senza utilizzare i singoli eventi dei controlli.

    Dove scrivi quella chiamata con l'uguale? A me da errore...

  • Re: Testo concatenato da più checkbox

    15/10/2025 - sihsandrea ha scritto:

    Non so se hai risolto ma...

    qualche buon samaritano più ferrato di me in access mi dice se è giusta questa?

    costruita guardando manuali vari.

    
    Public Function CheckAttachments()
        Dim strLabel As String
        Dim attachments As Collection
    
        Set attachments = New Collection
    
        If Me!ChkAllegatoA.Value Then attachments.Add "Allegato A"
        If Me!ChkAllegatoB.Value Then attachments.Add "Allegato B"
        If Me!ChkAllegatoC.Value Then attachments.Add "Allegato C"
        If Me!ChkAllegatoD.Value Then attachments.Add "Allegato D"
    
        Select Case attachments.Count
            Case 0
                strLabel = ""
            Case 1
                strLabel = attachments(1) & "."
            Case 2
                strLabel = attachments(1) & " e " & attachments(2) & "."
            Case 3
                strLabel = attachments(1) & ", " & attachments(2) & " e " & attachments(3) & "."
            Case 4
                strLabel = attachments(1) & ", " & attachments(2) & ", " & attachments(3) & " e " & attachments(4) & "."
        End Select
    
        Me!ckLabel.Caption=strLabel
    End Function

    ovviamente alla label si può anteporre qualsiasi altro testo aggiuntivo.

    Funziona parzialmente, si dovrebbe anteporre la scritta "Istanza" seguita da virgola se ci sono almeno 2 scelte, da una " e " se c'è una sola scelta e nulla dopo (rimane solo la scritta istanza) se non viene fatta alcuna scelta.

  • Re: Testo concatenato da più checkbox

    15/10/2025 - Azucarea ha scritto:

    Funziona parzialmente, si dovrebbe anteporre la scritta "Istanza" seguita da virgola se ci sono almeno 2 scelte, da una " e " se c'è una sola scelta e nulla dopo (rimane solo la scritta istanza) se non viene fatta alcuna scelta.

    Case 0 indica nessuna scelta... 

    Label= "quello che vuoi" & strlabel

    Se funonzia controlla cosa scrivere nei vari case.

Devi accedere o registrarti per scrivere nel forum
19 risposte