Cambiare valori in maschera principale da sottomaschera.

Anonimo
2016-07-29T09:21:08+00:00

Buon giorno

Ho una maschera principale "T_dataAPP" e una sottomaschera "t_prestazione".

Dalla sottomaschera, in base a valori nei controlli "OraInizio" e "Durata" vorrei aggiornare, rendendo Enabled, CombBox sulla maschera principale. Ho impostato sull'evento dopo aggiornamento di un controllo della sottomaschera il seguente codice che non funziona

Private Sub Data_Richiesta_AfterUpdate()

If [Forms]![T_dataApp]![t_prestazione].Form![OraInizio] = "09:00" And [Forms]![T_dataApp]![t_prestazione].Form![Durata] = "02:00" Then

        [Forms]![T_dataApp]![A].Enabled = False

         [Forms]![T_dataApp]![B].Enabled = False

          [Forms]![T_dataApp]![C].Enabled = False

           [Forms]![T_dataApp]![D].Enabled = False

    End If

End Sub

Mi dite dove sbaglio.

Grazie

Luciano

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

4 risposte

Ordina per: Più utili
  1. Anonimo
    2016-07-30T16:26:55+00:00

    Grazie Sandro

    Tutte le notizie che mi hai dato sono servite a risolvere il mio problema.

    Ho alzato il DB eliminando tutti gli orari presenti sulla maschera principale, ho aggiunto

    Private Sub Form_Current()

    'Sull'evento della sottomaschera t_prestazione

    Me.IDApp.Enabled = Me.NewRecord

     Me.Prestazione.Enabled = Me.NewRecord

     Me.OraInizio.Enabled = Me.NewRecord

     Me.Durata.Enabled = Me.NewRecord

     Me.OraFine.Enabled = Me.NewRecord

     Me.DataApp.Enabled = Me.NewRecord

     Me.Data_Richiesta.Enabled = Me.NewRecord

    End Sub

    Il codice sopra elencato mi permette di rendere enabled i controlli e nello stesso tempo di continuare con l'immissione dati.

    Un grazie di nuovo a te e a tutta la comunità.

    Luciano

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-07-29T21:43:23+00:00

    ciao Luciano,

    non è quello che richiedi nel primo post.

    Essendoci controlli nella main form da abilitare a seconda del valore contenuto nei controlli della subForm, devi ciclare il recordsetClone della subForm e se ci sono corrispondenze applicare l'enabled.

    il ciclo è necessario perché se non scorri il recordsetClone non applichi la proprietà a tutti i controlli , ma solo al record corrente della subForm, anche perché la subForm è a visualizzazione maschere continue.

    bene, io direi che ad ogni cambio di records abiliti i controlli e in caso di corrispondenze con i valori dei controlli della form details applichi la famigerata proprietà.

    ho apportato qualche modifica al nome di controlli della main form applicato il ciclo e modificato la modalità di spostamento tra i records, che potrebbe essere migliorata con una sub solamente...lascio a te un po' di divertimento.

    Qui trovi le modifiche prova a vedere se ci siamo.

    Ricorda sempre che il database è bene sia alto e non largo e la tabella T_dataApp mi sembra larga...

    se devi aggiungere qualche altro orario...come procedi...? aggiungi un altro/altri campi nella tabella...e lo stesso e per i controlli della form che gestiscono gli orari....mmmmm...meglio di no....

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-07-29T13:22:59+00:00

    Ciao Sandro

    Alla scelta di combinazione dati, sulla sottomaschera, OraInizio e Durata, sulla maschera principale deve esere Enabled il controllo corrispondente A, B, C...............

    Alla scelta di un'altra combinazione, quello di prima deve restare Enabled insieme al nuovo scelto. Solo così riesco a colpo d'occhio a vedere i ComboBox liberi e quelli impegnati.

    Dopo l'apertura del DB deve restare la stessa situazione presente alla sua chiusura, la stessa cosa al cambio del record con successivo ritorno a quello precedente.

    Per meglio chiarire le cose posto il DB se vuoi darti uno sguardo.

    https://1drv.ms/f/s!AoDboknVb6cg4y\_R35w9JurOdU82

    Utente: insieme

    Password: insieme

    Grazie Luciano

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-07-29T10:06:38+00:00

    ciao Luciano,

    prova semplicemente così:

    Private Sub Data_Richiesta_AfterUpdate()

    Me.Parent!A.Enabled =Not (Me.OraInizio= #9:00:00 AM# Or Me.Duratae = #2:00:00 PM#)

    Me.Parent!B.Enabled = Not (Me.OraInizio= #9:00:00 AM# Or Me.Duratae = #2:00:00 PM#)

    Me.Parent!C.Enabled =Not (Me.OraInizio= #9:00:00 AM# Or Me.Duratae = #2:00:00 PM#)

    Me.Parent!D.Enabled =Not (Me.OraInizio= #9:00:00 AM# Or Me.Duratae = #2:00:00 PM#)

    End Sub

    se questo controllo [Forms]![T_dataApp]![t_prestazione].Form![OraInizio]

    è nella form potresti  sostituire il riferimento  con Me

    me![OraInizio]

    e la main form con me.partent

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento