Condividi tramite

Conteggio di dati di un campo di una sottomaschera con casella di testo posizionata sulla maschera principale.

Anonimo
2016-09-26T11:46:06+00:00

Buongiorno a tutti, ho creato una maschera principale (chiamata frmFruitori) con due sottomaschere ( chiamate rispettivamente frmFamiliari e frmTurno) come da immagine allegata.

Ho creato una casella di testo non associata, chiamata txtContaFamiliari e l'ho posizionata nel corpo della maschera principale con l'obiettivo di contare i familiari di un determinato soggetto, ma ottengo il messaggio di Errore come nell'immagine sottoriportata.

la funzione che ho messo nell'origine controllo della txtContafamiliare è:

=DCount((Form! [frmFruitori]! [FrmFamiliari]. Modulo! [Cognome])) e si verifica il seguente errore, come fare per risolvere il problema?

Le tabelle sono in relazione tra loro come da seguente immagine : 

Ringrazio anticipatamente chi mi aiuta in questo.

P.S. ho la necessità di posizionare la casella di testo sempre in quella posizione e non diversamente.

Ciao Nicola.

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

Risposta accettata dall'autore della domanda

Anonimo
2016-09-26T15:48:32+00:00

ciao  Nicola,

se vuoi fare apparire zero, supponendo che ID_fruitore sia un long autonumber.

=DCount("ID_fruitore";"tblFamiliari";"ID_fruitore=" & Nz([ID_fruitore];0))

se non vuoi fare apparire nulla :

=IIf(Not IsNull([ID_fruitore]);DCount("ID_fruitore";"tblFamiliari";"ID_fruitore=" & [ID_fruitore]))

ciao, Sandro.

***** edit *****

non sottovalutare di assegnare su corrente della form master il numero delle righe della maschera details, visto che parliamo di master-details :

Private Sub Form_Current()

Me.tuaTextBoxContaRighe= vbNullString

If Not Me.NewRecord Then

    Me.tuaTextBoxContaRighe= Me.tuaFormDetails.Form.RecordsetClone.RecordCount

End If

End Sub

personalizzai nomi dei controlli che trovi in corsivo.

***** end  edit *****

La risposta è stata utile?

0 commenti Nessun commento

11 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-09-26T13:34:31+00:00

    ciao Nicola,

    nominare le chiavi esterne con lo stesso nome della chiave primaria è cosa buona e giusta secondo me.

    Inserire nelle tabelle esterne anche la chiave primaria altra cosa buona e giusta.

    La dcount va bene, e la puoi utilizzare nel tuo scenario, io la piazzerei nell'instestazione maschera dove hai  il lato uno se capisco lo scenario.

    prova una cosa del genere =dcount("ID_fruitore";"tabella2";"ID_fruitore=" & [ID_fruitore])

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-09-26T12:56:42+00:00

    Ciao Sandro, come primo passo per la funzione che ho creato ho pensato di basarmi su quanto indicato sul sito Microsoft come fare riferimento ad un controllo di una sottomaschera o di un Reporte poi usare DCount per contare ecc..

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-09-26T12:45:28+00:00

    Ciao Sandro, grazie per il tuo intervento.

    Per quanto concerne il nome delle tabelle, ho lasciato i nomi di default creati da Access, il db è ancora dimostrativo e non definitivo.

    Per quanto ai campi ridondanti ho pensato di lasciare lo stesso nome (ID_Fruitore) per creare le relazioni tra le varie tabelle uno a molti, dato che ho creato una chiave primaria solo nella Tabella1.

    Sappi che ricordo tutti i tuoi consigli sui prefissi da dottare per i vari controlli per meglio identificarli ed avere un codice più snello e intuitivo.

    Quindi ritornando al mio problema non posso utilizzare la funzione DCount cosi come ho impostato il DB?

    P.S. cosa cambia, in concreto, se avessi chiamato gli altri due campi in relazione con il campo ID_fruitore della Tabella1

    ID_Primo e ID_Secondo per esempio al posto dell'attuala ID_Fruitore della Tabella2 e Tabella3, spiegamelo per favore Sandro.

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-09-26T12:27:19+00:00

    ciao Nicola,

    la Dcount è concepita per contare le ricorrenze in un dominio a seconda di un criterio, se presente quindi :

    dcount ("tuoCampo","tuoDominio","tuoCampo=" & clausolaWhere)

    per come l'hai impostata non può che restituire un errore.

    Trovo poco felice il nome che hai  scelto delle tabelle, infatti non capisco qualche sia il  lato molti su cui effettuare il  conteggio.

    inoltre da come vedo  ci sono campi ridondanti (tabella1 e tabella2)...questo mi fa pensare che ci sia qualche problema di  normalizzazione, ma non divaghiamo...

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento