Da una sottomaschera richiamare valori di una maschera principale

Anonimo
2015-02-14T08:10:39+00:00

Buon giorno,

ho una maschera principale e una sottomaschera, in ordine "frmANAGRAFICA e "frmDatiVariabili".

Gentilmente vorrei sapere come popolare un controllo della sottomaschera avendo necessità di valori

contenuti nella maschera principale.

Es. Controllo "Anni" della sottomaschera è un controllo calcolato da una funzione CalcEtà che esegue il

calcolo in base al valore contenuto nel controllo "Assunzione" della maschera principale.

Ho provato con                  =CalcEtà(Forms![frmAnagrafica]![Assunzione] ma niente da fare. Un grazie anticipato

per l'eventuale suggerimento.

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

14 risposte

Ordina per: Più utili
  1. Anonimo
    2015-02-14T13:16:09+00:00

    ciao Luciano,

    sulla prima non avevo dubbi circa potesse funzionasse...

    sulla seconda invece no..

    non riesco a riprodurre l'errore...riesci a pubblicare una demo del problema?

    la relazione poco centra con il manifestarsi della mancata compilazione del controllo.( hai rimosso quanto impostato nell'orgine riga, giusto...?)

    Attendiamo news.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-02-14T12:41:53+00:00

    Non funziona con la prima soluzione e non con la seconda, con quest'ultima comunica che è impossibile trovare il campo ' |1' a cui viene fatto riferimento nell'espressione.

    Da tener presente che la seconda soluzione è impraticabile essendo "ASSUNZIONE" popolata solo la prima volta essendo maschera principale con relazione 1 a molti.

    Luciano

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-02-14T10:57:57+00:00

    ciao Luciano,

    si non vedo errori ....

    prova in questo modo :

    =calcEtà([Maschere![frmAnagrafica]![Assunzione])

    ed in alternativa su aggiornamento del controllo in cui inserisci la data nella form parent :

    If IsNull(Me.[Assunzione]) Then Me.[frmDatiVariabili].Form.Anni= "": Exit Sub

    Me.[frmDatiVariabili].Form.Anni= CalcEtà(Me.[Assunzione])

    facci sapere.

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-02-14T10:19:17+00:00

    Ciao Sandro,

    grazie per risposta.

    Ti assicuro che la funzione non ha errori perché sulla stessa maschera funzione benissimo, i problemi si manifestano quando la richiamo dalla sottomaschera.

    Function CalcEtà(dtNascita As Date) As Long

     Dim lngEtà As Long

        ' Si assicura che la data passata sia una data.

        If Not IsDate(dtNascita) Then

            dtNascita = Date

        End If

        ' Si assicura che la data di nascita non sia futura.

        ' Se lo è, utilizza la data di oggi.

        If dtNascita > Date Then

            dtNascita = Date

        End If

        ' Calcola la differenza in anni tra oggi e la data di nascita.

        lngEtà = DateDiff("yyyy", dtNascita, Date)

        ' Se a data di nascita non è avvenuta in questo anno, sottrae 1 dall'età.

        If DateSerial(Year(Date), Month(dtNascita), Day(dtNascita)) > Date Then

            lngEtà = lngEtà - 1

        End If

        CalcEtà = lngEtà

    End Function

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2015-02-14T09:13:10+00:00

    ciao Luciano

    la sintassi mi sembra ineccepibile, manca la parentesi ) a chiusura dell'istruzione ma è certamente un errore di copia/incolla.

    mi vien da pensare non ci sia qualche errore nella funzione che richiami.

    ci mostri la funzione che richiami?

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento