Funzione DCount su record corrente

di il
12 risposte

Funzione DCount su record corrente

Buongiorno a tutti , e grazie per eventuali segnalazioni di aiuto

Ho due Tabelle : TblAtleti e TblMatchFit ( 12 atleti ) ( 800 match ) ovviamente in relazione:

Uso la funzione DCount per ottenere in maschera il totale match giocati
DCount( "*" ; "TblMatchFit" ) e cosi per il totale match vinti DCount("*";"TblMatchFit";"[Esito] = 'W'")
Tutto ok
Non riesco ad ottenere una funzione Dcount per ottenere la partite filtrate per ogni allievo
Nella form principale ( in cui scorro I record allievi ) vorrei vedere per ogni allievo il resoconto personale
Dovrei legare la funzione Dcount al record corrente che sto vedendo in form
Per ulteriore chiarezza allego un screen della form, in alto a sx le funzioni corrette e sotto vorrei la funzione
filtrate per ogni allievo che scorro
Scusate se ho spiegato male )
Stefano
Allegati:
19709_a508b4b57e325ec4126d4fc7c013aa72.png
19709_a508b4b57e325ec4126d4fc7c013aa72.png

12 Risposte

  • Re: Funzione DCount su record corrente

    stefano1965 ha scritto:


    ...
    Nella form principale ( in cui scorro I record allievi ) vorrei vedere per ogni allievo il resoconto personale
    Dovrei legare la funzione Dcount al record corrente che sto vedendo in form
    ...
    Devi sistemare il terzo argomento della funzione DCount
    http://www.techonthenet.com/access/functions/domain/dcount.php
    https://support.office.com/en-us/article/DCount-Function-f6b5d78b-ad0b-4e42-be7a-11a64acbf3d3
    https://msdn.microsoft.com/en-us/library/office/ff191865.aspx
    in modo che i criterio sia l'identificativo univoco dell'atleta (probabilmente è anche FK in tblMatchesFit)
  • Re: Funzione DCount su record corrente

    Grazie della risposta
    Infatti e' quello che non riesco a fare sistemare il terzo argomento.
    Cioe se e'fisso tutto ok Es. DCount("UnitPrice", "Order Details", "OrderID = 10248")
    Io lo vorrei di confronto , deve funzionare nella form , e se cambio record , la funzione DCount ricalcola
    Quello non riesco a fare , legare la funzione Dcount ,ad un parametro variabile , in questo caso idatleta dell'unica form
    Forse non e' la strada giusta la funzione Dcount , il terzo criterio sembra obbligatorio che si di tipo univoco e non variabile
  • Re: Funzione DCount su record corrente

    stefano1965 ha scritto:


    ...
    Quello non riesco a fare , legare la funzione Dcount ,ad un parametro variabile , in questo caso idatleta dell'unica form
    Forse non e' la strada giusta la funzione Dcount , il terzo criterio sembra obbligatorio che si di tipo univoco e non variabile
    No, la cosa è fattibile, guarda il secondo e il terzo link, dove ci sono alcuni esempi più articolati.
    A grandi linee è così
    DCount("nomecampo", "nometabella", "CampoID = " & Me!nomecontrollo.Value)
    (se numerico)
  • Re: Funzione DCount su record corrente

    Non so se sia influente o meno, ma io da tutti gli esempi che leggo, noto che il primo argomento (nome campo) viene sempre messo tra parentesi quadre...anche quando non c'è lo spazio. Se dovessi scriverla io preferirei almeno
    DCount("[nomecampo]", "nometabella", "CampoID = " & Me!nomecontrollo.Value)
    Aggiungo (POTREI SBAGLIARMI...SONORAMENTE) che, nel caso specifico di DCount, il primo argomento è quasi sempre "generico"...e la "sostanza" la fanno i restanti argomenti...io scrivo quasi sempre
    DCount("*", "nometabella", "CampoID = " & Me!nomecontrollo.Value)
    se scrivi in VBA
    DCount("*"; "nometabella"; "CampoID = " & Me!nomecontrollo.Value)
    se scrivi dentro il generatore di espressioni (query o controlli maschera/report)
  • Re: Funzione DCount su record corrente

    Grazie infinite ...
    Ci sto provando da un paio di ore ma niente , L'errore nel controllo e' sempre ?nome
    Sbaglio sintassi , ma non capisco dove , ovviamente riprovo finche funziona
    Grazie ancora
  • Re: Funzione DCount su record corrente

    Dimenticavo la stringa che da errore ?Nome
    = DCount("*";"TblMatchFit" ; " IDAtleta = " &[ Me]![IDAtleta].[Value])
    Il generatore di espressioni aggiunge automaticamente le parentesi quadre
    Stefano
  • Re: Funzione DCount su record corrente

    Il problema non sono le Quadre, ma gli spazzi sbagliati che di certo non ha messo/tolto il generatore di espressioni...
    
    = DCount("*";"TblMatchFit";"IDAtleta = " & [Me]![IDAtleta].[Value]) 
  • Re: Funzione DCount su record corrente

    Grazie Alex dell'intervento , ma l'ho proprio scritta come il tuo suggerimento , il generatore di espressioni non fa fare il copia/incolla
    quindi l'ho riscritta velocemente a mano sbagliando gli spazi.
    C'e qualcosa che non va nei campi eppure sono due tabelle roba da matti
    Grazie comunque
    Stefano
  • Re: Funzione DCount su record corrente

    Prova a scriverla così
    
    = DCount("*";"TblMatchFit";"IDAtleta = " & [IDAtleta])
  • Re: Funzione DCount su record corrente

    Funziona .... a parte i sentiti ringraziamenti , ma perche cosi calcola correttamente ??
    Prende da solo il nome del controllo ??
    Ora se devo ulteriormente filtrare ( in altri controlli ) I match vinti e persi di ogni atleta ho errore di criterio
    DCount("*";"TblMatchFit";"IDAtleta = " & [IDAtleta] ; "[Esito] = 'W'")
    Mentre se li calcolo di tutti l'esito e' corretto , non si possono inserire due criteri ?
    Grazie per l'aiuto , ovviamente non sono esperto.
    Stefano
  • Re: Funzione DCount su record corrente

    Il Generatore di Espressioni non risconosce il ME inserito in quel contesto.

    Se devi concatenare i Criteri, quindi IdAtleta ed Esito... devi CONCATENARE con AND
    
    DCount("*";"TblMatchFit";"IDAtleta = " & [IDAtleta] & " AND [Esito] = 'W'")
  • Re: Funzione DCount su record corrente

    Fantastico ora mi funziona tutto
    I miei piu sentiti ringraziamenti
    Stefano
Devi accedere o registrarti per scrivere nel forum
12 risposte