Evento GotFocus su controllo sottomaschera

di il
11 risposte

Evento GotFocus su controllo sottomaschera

Buongiorno,
ho una sottomaschera associata ad una tabella in visualizzazione Foglio Dati, in un controllo vado ad inserire il percorso ad un file. Attualmente lo copio selezionandolo da Gestione risorse e lo incollo nel controllo, pero' mi piacerebbe utilizzare la Filedialog. C'e' modo di intercettare l'evento Gotfocus di quel controllo specifico?
Ho cercato in rete ma l'unico argomento che ho trovato e' questo: https://it.comp.appl.access.narkive.com/niQRZJRg/gotfocus-su-form-e-subform-che-non-vengono-attivati
da cui mi sembra di capire che non ci sia modo....

11 Risposte

  • Re: Evento GotFocus su controllo sottomaschera

    I controlli rilasciano l'evento... spiega bene lo scenario e di cosa stai parlando... quel 3D è chiarissimo ma tu non ci stai dicendo che il tuo controllo è ENABLED=FALSE e/o VISIBLE=FALSE... oltretutto in quel 3D si parla di Evento di Form(usata come subForm) a seguito dell'attivazione di un Controllo e mi pare uno scenario differente, quindi ripeto quale sarebbe il tuo scenario e cosa vuoi fare...?
  • Re: Evento GotFocus su controllo sottomaschera

    Chiedo scusa, rileggendo il post mi sono reso conto di aver mal formulato il quesito e correggo:
    ho una sottomaschera, associata ad una tabella filtrata, che viene visualizzata come Foglio Dati. In due campi vado ad inserire links a files. Per fare cio' mi piacerebbe utilizzare la Filedialog invece del copia/incolla percorso. Quindi vorrei che, all'attivazione del campo, mi si aprisse la Filedialog. Di seguito un'immagine dello scenario, le frecce rosse sono i campi in cui inserisco link.


    Spero di aver descritto meglio
  • Re: Evento GotFocus su controllo sottomaschera

    Certo che ti sei spiegato e non ha nulla a che fare con quel 3D che hai citato.
    Prendi il controllo e gestisci l'evento KeyDown... eviterei di usare l'evento Enter in quanto ogni volta che sposti il focus si attiva poi la procedura... ed essendo Modale devi chiuderlo...

    Io Gestirei del controllo il KeyDown intercettando un carattere specifico, ad esempio la freccia su/giù oppure Enter(per fare un esempio) ed in quel caso, si fa attivare l'apertura del filedialog.
  • Re: Evento GotFocus su controllo sottomaschera

    Scusa Alex,
    ma come faccio a gestire l'evento keyDown se il controllo della subform ha solo INVIO ed USCITA?


    Quando dici "prendi il controllo..." a quale ti riferisci: alla subform o al campo dentro la tabella?
  • Re: Evento GotFocus su controllo sottomaschera

    Ma tu devi compilare il CONTROLLO TEXTBOX quindi devi attivare l'evento del controllo Textbox nella SubForm non dell'oggetto Container...
  • Re: Evento GotFocus su controllo sottomaschera

    Scusami Alex ma non riesco a seguirti; in un'altra maschera dove avevo un controllo analogo in cui inserivo un link ho, come da te suggerito inserito nelle evento Keydown il seguente codice:
    Private Sub frmDFMEMOtabDFlf_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
    
       Dim fDialog As Office.FileDialog
          
         Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
       With fDialog
          .AllowMultiSelect = False
          .InitialFileName = "\\costampsrv\PREVENTIVI\dOCUMENTI FORNITORI\"
          .Title = "Inserire percorso file"
          .Filters.Clear
          .Filters.Add "Acrobat Files", "*.pdf"
          If .Show = True Then
                         Me.frmDFMEMOtabDFlf.Value = .SelectedItems(1)
          Else
             MsgBox "Nessun file selezionato", vbOKOnly
          End If
        End With
    End If
    End Sub
    
    E tutto funziona come deve.

    Io pero' non so dove inserire questa sub all'interno della tabella nella sottomaschera perche' non ho modo di selezionare la textbox e quindi non so attivare l'evento keydown. Lo devo fare via codice?
  • Re: Evento GotFocus su controllo sottomaschera

    Non ho ben capito... hai 2 campi da compilare con il Percorso, il DDT e la FATTURA, quindi devi discriminare quando entri nel campo specifico, che nella Form in modlaità figlio dati è la colonna...!
    Se vai in Struttura della Maschera moalità Foglio dati, vedi i controlli che rappresentano le colonne, in ognuno dei 2 che deve poter attivare il FileDialog per l'associazione del file... gestisci il KeyDown...!

    Nella SubForm poi come fai a sapere quale file hai selezionato e dove metterlo...?
    Ovviamente gli eventi del Container della SubForm per quello che hai letto NON VENGONO generati, essendo SubForm, ma a mio avviso non ha senso...
  • Re: Evento GotFocus su controllo sottomaschera

    Io mi trovo nel secondo caso, io ho la tabella nel container, non ho i controlli nella form principale per cui in modalita' struttura non mi compaiono e quindi non posso attivarli.
    Come puoi vedere nell'esempio che avevo postato sopra, io mi trovo la tabella in cui compare, in questo caso, un solo record (fornitore SYSTARK). Quando scansiono la bolla di arrivo merce o la fattura, vado ad inserire il link del documento nel campo evidenziato dalla freccia. Volevo capire se c'era modo di attivare il filedialog all'interno della tabella... ma mi hai gia' risposto
  • Re: Evento GotFocus su controllo sottomaschera

    Devi aprire la subfor in modalità struttura ed accedere ai controlli... lascia stare la form... chiudi tutto ed apri SOLO la subform in struttura vedi i controlli e su quelli di percorso gestisci quellonche ti ho suggerito.

    Ma sai come funziona una maschera in modalità foglio dati...?
  • Re: Evento GotFocus su controllo sottomaschera

    Ho risolto: in pratica non avevo una subform nella form principale, ma direttamente una tabella filtrata per cui non potevo accedere ai controlli. Ho eliminato la tabella ed ho inserito la Subform e da li' ho seguito quanto suggerito.
    Grazie Alex.
  • Re: Evento GotFocus su controllo sottomaschera

    Ecco perchè non ci capivamo...
    Aggiungo, a titolo di completamento, MAI e poi MAI usare Tabelle o Querys per mostrare all'utente dati, si usano SEMPRE e SOLO maschere, perchè hanno gli eventi che consentono di gestire/inibire/allertare in caso di Errata/Non voluta/ecc... manipolazione dei dati.
Devi accedere o registrarti per scrivere nel forum
11 risposte