Menù tasto dx su una combobox

di il
13 risposte

Menù tasto dx su una combobox

Buongiorno sono nuovo di questo forum...
Ho un problema con access 2016 e la creazione di un menu popup tramite tasto destro in una maschera, ovvero io ho creato un modulo che fa tale funzione e cerco di abilitare nell’ opzione “proprietà” “altro” “barra menu scelta rapida” di una combobox o altra casella...
Il problema è che nell’elenco di questa opzione non compare il nome della sub routine creata ma circa 12 ore dopo compare da sola (questa cosa mi fa impazzire), quando compare funziona ma non posso più modificarla.
Ho letto tanti esempi ma non mi è chiaro come gestirla, dove metterla ed in caso come rimuoverla... qualcuno ha un progetto con i passaggi chiari da poter prendere spunto? O saprebbe indirizzarmi su come gestirla??

Grazie mille per l’aiuto

13 Risposte

  • Re: Menù tasto dx su una combobox

    Non puoi modificare un popup di tipo BUILTIN ma devi costruirne uno runtime di tipo temporaneo, solitamente su apertura del progetto.
    Su mouseup poi se è stato premuto il rightclik allora si mostra il popup usando il metodo show dell'oggetto CommandBar.
  • Re: Menù tasto dx su una combobox

    Grazie @Alex per la risposta, ma se ne posso caricare anche più di una in modo che le possa personalizzare da cella a cella??
    e se le caricassi direttamente dal tasto dx della casella??
    Sai anche come disabilitare la commandbar di default in modo provvisorio??
  • Re: Menù tasto dx su una combobox

    ZMax ha scritto:


    Grazie @Alex per la risposta, ma se ne posso caricare anche più di una in modo che le possa personalizzare da cella a cella??
    e se le caricassi direttamente dal tasto dx della casella??
    Sai anche come disabilitare la commandbar di default in modo provvisorio??
    Non hai molto le idee chiare mi pare...!
    Per disabilitare la Commandbar Nativa basta disabilitarla dalla proprietà di Maschera... dalla Finestrella laterale delle Proprietà alla Tab [Altro] Menu scelta Rapida=No

    Poi non serve crearne MILLE, ma ne basta 1, e lo si manipola come serve.
  • Re: Menù tasto dx su una combobox

    Grazie @Alex, in base alle tue dritte son riuscito a far funzionare il tasto dx..
    Sempre in tema, qualcuno ha un elenco degli id delle funzioni e delle icone abbinate?
  • Re: Menù tasto dx su una combobox

    Io mi sono fatto un mio TOOL che mi mostra le Icone... non esiste l'elenco...!
  • Re: Menù tasto dx su una combobox

    Avevo trovato vari post che davano l’elenco ma tutti i link sono ormai chiudi...
    Faro alla vecchia maniera, provo 10/20 numeri alla volta
    Grazie ancora
  • Re: Menù tasto dx su una combobox

    Puoi arrivare fino oltre a 5000... perchè puoi accedere ai FaceID anche delle Applicazioni Office oltre che Access...
    Se sai cosa vuoi posso darti qualche indicazione sui Numeri.
  • Re: Menù tasto dx su una combobox

    Ok i classici:
    Taglia, copia, incolla, duplica, icona dos, stampa, annulla,invio mail
    Per iniziare poi cercherò...
    Grazie
  • Re: Menù tasto dx su una combobox

    ZMax ha scritto:


    Ok i classici:
    Taglia, copia, incolla, duplica, icona dos, stampa, annulla,invio mail
    Per iniziare poi cercherò...
    Grazie
    IconaDos=560 (non sono certo)
    Salva=3
    Stampa=4
    Copia=19
    Taglia=21
    Incolla=22
    InvioMail=24
    Lente=25
    Duplica=599 oppure 513
    Annulla=37
    Zoom(+)=444
    Zoom(-)=445
    Filtra=601
    FiltroPersonalizz..=602
    Filtra(ckbox=False)=603
    Filtra(ckbox=true)=604
    EliminaFiltri=605

    Ciao
  • Re: Menù tasto dx su una combobox

    Per conoscenza il 560 non corrisponde all'icona DOS, ma ho usato la 69 che raffigura un monitor.

    Andando avanti con le necessita, su questo tasto destro necessiterei di passare una stringa ad un comando personalizzato, io per aprire il menu uso:
     If Button = acRightButton Then CommandBars("cbarAuP").ShowPopup
    ma mi servirebbe passare una variabile che prendo dalla maschera.
    la sub del modulo che uso è questa:
    Public Sub cbarAuP(Optional Reset As Boolean, Optional Seriale As String)
    Dim cbr As CommandBar 'Object   '
    Dim Pulsante As CommandBarButton 'Object   '
    Dim cbrButton As CommandBarButton  'Object  '
    
    On Error GoTo cbarStandardError
    
        If CmdBarExists("cbarAuP") Then
            If Reset = False Then Exit Sub
            DeleteCmdBar "cbarAuP"
        End If
        
    Set cbr = CommandBars.Add("cbarAuP", 5, , True)
        With cbr
            'Set cbrButton = cbr.Controls.Add(msoControlButton, 247, , , True) 'COMANDO STANDARD
            Set Pulsante = cbr.Controls.Add(msoControlButton, , , , True) 'COMANDO PERSONALIZZATO
            With Pulsante
                .FaceId = 69
                .OnAction = "ControlloRA"
                .Parameter = Seriale
                Pulsante.Caption = "CONTROLLO RA"
            End With
        End With
    
    che richiama la sub:
    Sub ControlloRA(Seriale As String)
        MsgBox ("Pulsante Personalizzato 1 menu AuP " & Seriale)
    
    End Sub
    
    sai mica indicarmi come procedere??
  • Re: Menù tasto dx su una combobox

    Quel codice mi pare di conoscerlo... ma devi usare i TAG per il codice.

    Non ho capito quale sarebbe la cosa da parametrizzare con la stringa...
  • Re: Menù tasto dx su una combobox

    Senza ricopiarlo ho modificato con i TAG, scusami ma non li avevo trovati l'altro giorno.

    Il concetto e che schiacciando con il tasto dx una combo, questa mi genera il menu e preleva il dato che è presente nella combo che poi userò per generare un bach nel terzo codice, per ora solo lo visualizzo con il parametro "SERIALE". A me manca per ignoranza, come far passare un valore da sub a sub e, se fattibile, passare due valori distinti sempre da sub a sub.
    Ho inserito sotto .Action il codice
    .Parameter = Seriale
    che mi passa il dato alla terza sub, per ora mi manca dal comando
    CommandBars("cbarAuP").ShowPopup
    un valore da passare al menu
  • Re: Menù tasto dx su una combobox

    Diciamo che ho, per ora, risolto in modo "improprio", avvio la creazione della barra ad ogni tasto dx e la distruggo a fine ciclo sempre.
    Posto il codice cosi se a qualcuno serve può prendere esempio o magari avete altre idee.
    Private Sub Testo17_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim Seriale As String
    
    Call cbarAuP(, Me.Testo17)
    If Button = acRightButton Then
        Seriale = Me.Testo17
        CommandBars("cbarAuP").ShowPopup
        
        End If
    Call DeleteCmdBar("cbarAuP")
    
    End Sub
    cosi riesco a passare la variabile al menu e dal menu poi alla sub di comando.
Devi accedere o registrarti per scrivere nel forum
13 risposte