Pulsante per selezionare il controllo di una maschera di spostamento in un record specifico

di il
8 risposte

Pulsante per selezionare il controllo di una maschera di spostamento in un record specifico

Buonasera a tutti.

Sto muovendo i primi passi nel codice vba e desidererei un vostro aiutino..
La situazione è questa :
-Maschera.Clienti
-SottomascheraSpostamento

la SottomascheraSpostamento ha due conrolli...cioè due sottomaschere... :
-Sub.Elenco
-Sub.Dettaglio
Nella Sub.Elenco , ad uno dei controlli ho assegnato un codice on click per visualizzare la Sub.Dettaglio ...questa:

If Not IsNull(Me.Nome) Then
Forms![Lead]![SottomascheraSpostamento].SourceObject = "SUB_Lead_Dettagli"

e funziona.....ma come potete immaginare vorrei...che aprisse i dettagli dell' ID del record dove ho cliccato....

1)in un primo momento ho pensato a una query...ma come dovrei impostarla visto che nella prima sub non ho una selezione ma un click.....
2)poi ho fatto diverse prove aggiungendo del codice....credo che io debba aggiungere una variabile giusto?...
3)ho provato anche ad aggiungere alla fine una where...
ma non ha funzionato...

mi date qualche consiglio per favore?

8 Risposte

  • Re: Pulsante per selezionare il controllo di una maschera di spostamento in un record specifico

    ario75 ha scritto:


    La situazione è questa :
    -Maschera.Clienti
    -SottomascheraSpostamento
    Significa che hai una maschera principale singola che si chiama Clienti. Poi una sottomaschera che si chiama SottmascheraSpostamento.
    Giusto?

    ario75 ha scritto:


    la SottomascheraSpostamento ha due controlli...cioè due sottomaschere... :
    -Sub.Elenco
    -Sub.Dettaglio
    I nomi delle sottomaschere sono rispettivamente Elenco e Dettaglio? Oppure Sub. fa parte integrante del loro nome?
    Sottomaschera con 2 sottomaschere: situazione caotica da gestire.
    Se Sub. è parte integrande dei loro nomi...avrai seri problemi con qualsiasi codice.

    ario75 ha scritto:


    Nella Sub.Elenco , ad uno dei controlli ho assegnato un codice on click per visualizzare la Sub.Dettaglio
    Cioè tu fai un clic sulla sottomaschera?

    ario75 ha scritto:


    mi date qualche consiglio per favore?
    Il MIO consiglio è di gestire meno cose alla volta. Tutto insieme è un caos sia logico, sia visivo. Piuttosto che lavorare su sottomaschera+sottomaschera+sottomaschera non sottovalutare le "maschere collegate" che snelliscono/risolvono molte cose.
  • Re: Pulsante per selezionare il controllo di una maschera di spostamento in un record specifico

    1) Si ...e la SottomascheraSpostamento è proprio di questo tipo..
    2)Si le ho chiamate SUB_Elenco....c......ta da pivello...scusate la cambio subito
    3)Faccio clic su un controllo della sottomaschera...(sul cognome..)
    4)Grazie del consiglio...cercherò di approfondire l'argomento....

    visto che ci sono quasi...e dopo tutti i tentativi inutili...che codice potrei usare per ottenere il risultato sperato?
  • Re: Pulsante per selezionare il controllo di una maschera di spostamento in un record specifico

    OsvaldoLaviosa ha scritto:


    Il MIO consiglio è di gestire meno cose alla volta. Tutto insieme è un caos sia logico, sia visivo. Piuttosto che lavorare su sottomaschera+sottomaschera+sottomaschera non sottovalutare le "maschere collegate" che snelliscono/risolvono molte cose.

    ario75 ha scritto:


    Grazie del consiglio...cercherò di approfondire l'argomento....
    Poi non puoi farmi questa domanda

    ario75 ha scritto:


    visto che ci sono quasi...e dopo tutti i tentativi inutili...che codice potrei usare per ottenere il risultato sperato?
    Io sinceramente non ho capito quasi nulla dell'intero scenario. Oltre ai nomi propri di maschere...quest'ultime ritengo organizzate malissimo, servono nomi propri di campi e un racconto esplicito (magari con un esempio) di quello che vuoi realizzare.
  • Re: Pulsante per selezionare il controllo di una maschera di spostamento in un record specifico

    Se non ho capito male quello che devi fare è filtrare la form dettaglio in base al valore che hai selezionato nella form elenco.
    Per farlo, sull'evento Form_Current() della form elenco devi scrivere il codice
    
    [Forms]![Clienti]![SottomascheraSpostamento]![Dettaglio].Form.Filter = "[ID]= " & Me.ID
    [Forms]![Clienti]![SottomascheraSpostamento]![Dettaglio].Form.FilterOn = True
    
    Ovviamente prima devi aver fissato il Source Object della form Dettaglio poi sostituisci
    [Dettaglio] -> con [nome della tua subform]
    [ID] -> con [nome del campo di Sub.Dettaglio che deve essere uguale a quello selezionato in elenco]
    Me.ID -> con Me."Nome del campo di Sub.Elenco che corrisponde al precedente"
  • Re: Pulsante per selezionare il controllo di una maschera di spostamento in un record specifico

    Sicuramente sbaglio qualcosa ....ma non funziona...
    questo è on click sul controllo della maschera elenco..
    If Not IsNull(Me.Nome) Then
    Forms![Lead]![SottomascheraSpostamento].SourceObject = "SottoLeadDettagli"
    End If
    End sub

    ......e questo è on current della maschera Elenco...
    Private Sub Form_Current()
    [Forms]![Lead]![SottomascheraSpostamento]![SottoLeadDettagli].Form.Filter = "[Cognome]= " & Me.Cognome
    [Forms]![Lead]![SottomascheraSpostamento]![SottoLeadDettagli].Form.FilterOn = True
    End Sub
  • Re: Pulsante per selezionare il controllo di una maschera di spostamento in un record specifico

    Nella oncurrent della maschera Dettagli ho messo questa routine...
    On Error Resume Next
    Nome.Locked = True
    Cognome.Locked = True
    ...etc....

    può derivare da questo il problema?
  • Re: Pulsante per selezionare il controllo di una maschera di spostamento in un record specifico

    Non capisco...
    Se selezioni un record di Elenco cosa succede alla maschera dettaglio?
    Hai messaggi di errore o non fa quello che deve? Gli oggetti Sorgente di Elenco e Dettaglio hanno entrambi un campo "Cognome"?
    Il codice sull'OnClick a cosa ti serve?
    Quando blocchi i controlli Nome, Cognome ecc. perchè lo fai da codice e non dalle proprietà del controllo? Non dovrebbe creare problemi ma mi sembra inutile lokkare campi sull'on current.
    Puoi postare uno screenshot delle maschere così da capire meglio il quadro generale?
  • Re: Pulsante per selezionare il controllo di una maschera di spostamento in un record specifico

    ario75 ha scritto:


    ...
    [Forms]![Lead]![SottomascheraSpostamento]![SottoLeadDettagli].Form.Filter = "[Cognome]= " & Me.Cognome
    ...
    Qui mancano gli apici...
    ...Form.Filter = "[Cognome]= '" & Me.Cognome & "'"
Devi accedere o registrarti per scrivere nel forum
8 risposte