Rinominare un pulsante

di il
2 risposte

Rinominare un pulsante

Ciao, ho una maschera (Main) che alla pressione di un pulsante apre una seconda maschera (Elenco) filtrata secondo il seguente codice
Public Var_BT_Tipo_Commessa As String
Function Apri_elenco()

    Select Case Screen.ActiveControl.Name

        Case "Bt_Archivio_A": Var_BT_Tipo_Commessa = "[Progetti]!Tipo_commessa=""A""":Tipo_commessa_selezionata = "Commessa": Tipo_commessa_selezionata = "A"
        Case "Bt_Archivio_C": Var_BT_Tipo_Commessa = "[Progetti]!Tipo_commessa=""c""":Tipo_commessa_selezionata = "Commessa": Tipo_commessa_selezionata = "R"
        ...
     End Select

    DoCmd.OpenForm "Elenco", acNormal, "Tipo Commessa", Var_BT_Tipo_Commessa, acFormEdit, acNormal
    DoCmd.Close acForm, "Main"

End Function
Ho semplificato il codice in realta ho molti piu "case" dalla form main
La form Elenco dovrebbe contenere un pulsante "bt_archivo" che mi porta alla situazione case "Bt_Archivio_A" se dalla main ho scelto Bt_Archivio_C e viceversa
Vorrei quindi sfruttare la function Apri_elenco, ho provato diverse soluzioni ma mi incarto sempre, potrei tornare alla main e poi rieseguire la selezione ma spero ci sia un'altra soluzione, avevo pensato di rinominare il pulsante Bt_Archivio all'apertura della Form "Elenco", pensate sia la soluzione giusta\fattibile? Da quello che ho capito non è possibile
Nel caso, DoCmd.Rename mi da errore, che devo da utilizzare?

2 Risposte

  • Re: Rinominare un pulsante

    Mi suona strano l'uso della Function. Ha tutta l'aria di una Sub.

    Per rispondere alla lettera alla tua domanda usa la proprietà Name, ossia
    Me!NomePulsante.Name = "valore che vuoi assegnare"
    però puoi farlo soltanto quando apri la maschera in visualizzazione struttura.
  • Re: Rinominare un pulsante

    Due note "a margine"
    1) vedrei molto meglio il nome della variabile pubblica come pstr_BT_TipoCommessa. Quel prefisso Var trae in inganno, facendo credere che si tratti di una variabile di tipo Variant. La presenza della lettera p aiuta a ricordare l'area di validità. Ma è una questione di "leggibilità" del codice.
    2) A cosa serve assegnare a Tipo_commessa_selezionata due valori, uno di seguito all'altro? la prima assegnazione è inutile

    bean_bandit ha scritto:


    Case "Bt_Archivio_A": ... :Tipo_commessa_selezionata = "Commessa": Tipo_commessa_selezionata = "A"
    Case "Bt_Archivio_A": Var_BT_Tipo_Commessa = "[Progetti]!Tipo_commessa=""A""":Tipo_commessa_selezionata = "A"
    Tornando alla richiesta principale: l'ha già detto Osvaldo, non puoi cambiare il nome a runtime, perché quello è possibile solo in modalità struttura.
    Come fai a sfruttare la funzione Apri_elenco dalla Maschera Elenco? Ti trovi alla fine della funzione a chiamare l'apertura della maschera stessa, quando basterebbe modificarne la proprietà Filter e farne il requery, e a chiudere una maschera (presumibilmente) non più aperta.
    ...
        DoCmd.OpenForm "Elenco", acNormal, "Tipo Commessa", Var_BT_Tipo_Commessa, acFormEdit, acNormal
        DoCmd.Close acForm, "Main"
    End Function
    La funzione va riscritta.
    Il discorso dei pulsanti e del loro nome potrebbe trovare una soluzione del tipo: ne crei due, proprio come nella maschera Main, e con l'uso di OpenArgs o andando a guardare il contenuto della proprietà Filter rendi visibile solo uno dei due.
Devi accedere o registrarti per scrivere nel forum
2 risposte