Recupeare nome pulsante

di il
2 risposte

Recupeare nome pulsante

Ho una function che viene richiamata alla pressione di 4 pulsanti, in funzione del pulsante premuto esegue una serie di operazioni, semplificando il codice oggi è fatto cosi:
Private Sub Bt1_Click()

    BT_Tipo = "Pippo"
    Call Apri_elenco
    
End Sub

Private Sub Bt2_Click()

    BT_Tipo = "Pluto"
    Call Apri_elenco
    
End Sub
Function Apri_elenco()

    DoCmd.OpenForm "Elenco", acNormal, "Tipo", Bt_tipo, acFormEdit, acNormal

End Function
Vorrei pero evitare di scrivere BT_Tipo = variabile ed utilizzare il nome del pulsante o il testo del pulsante in questione cosi da avere un codice unico che non varia mai riutilizzabile per tutti i pulsanti che ho.

Ho provato a cercare ma non ne sono venuto a capo, come di fa a dire "pulsante premuto".name?

2 Risposte

  • Re: Recupeare nome pulsante

    Dove hai dichiarato [BT_Tipo]...?

    Valuta una cosa simile...

    Scrivi la tua Funzione [Apri_Elenco()] e la chiami direttamente dai Button invece di invocare la [Routine Evento] inserendo nell'evento:
    =Apri_Elenco()
    La funzione la modifichi leggermente poi in questo modo
    
    Function Apri_elenco()
        Dim Valore as String
        Select Case Screen.ActiveControl.Name
            Case "NomeButton1"  :Valore="Pippo"
            Case "NomeButton2"  :Valore="Pluto"
            Case "NomeButton3"  :Valore="Paperino"
            Case "NomeButton4"  :Valore="Paperone"
        End Selecr
        DoCmd.OpenForm "Elenco", acNormal, "Tipo", Valore, acFormEdit, acNormal
    
    End Function
  • Re: Recupeare nome pulsante

    @Alex ha scritto:


    Dove hai dichiarato [BT_Tipo]...?
    Nel modulo dove ho la function Apri_elenco

    @Alex ha scritto:


    Valuta una cosa simile...
    Scrivi la tua Funzione [Apri_Elenco()] e la chiami direttamente dai Button invece di invocare la [Routine Evento] inserendo nell'evento:
    =Apri_Elenco()
    Fatto, una domanda facendo in questo modo ho dei miglioramenti prestazionali rispetto a [Routine Evento] --> generatore codice? (In ogni caso preferisco questo metodo, piu diretto

    @Alex ha scritto:


    La funzione la modifichi leggermente poi in questo modo
    
    Function Apri_elenco()
        Dim Valore as String
        Select Case Screen.ActiveControl.Name
            Case "NomeButton1"  :Valore="Pippo"
            Case "NomeButton2"  :Valore="Pluto"
            Case "NomeButton3"  :Valore="Paperino"
            Case "NomeButton4"  :Valore="Paperone"
        End Selecr
        DoCmd.OpenForm "Elenco", acNormal, "Tipo", Valore, acFormEdit, acNormal
    
    End Function
    Funziona perfettamente! alla fine l'ho modificata direttamente in Bt_selezionato = Screen.ActiveControl.Name perche il nome del pulsante coincide poi con la condizione If che mi da i valori per le query e l'open form:
    If Bt_selezionato = "A" then
        Valore = "Pippo"
        ...
    end if
    DoCmd.OpenForm "Elenco", acNormal, "Tipo", Valore, acFormEdit, acNormal
    
    Grazie 1000
Devi accedere o registrarti per scrivere nel forum
2 risposte