Funzione DCount su record corrente

di Anonimizzato19709 il
12 risposte
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

  • 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)
  • 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
  • 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)
  • 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)
  • 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
  • Dimenticavo la stringa che da errore ?Nome
    = DCount("*";"TblMatchFit" ; " IDAtleta = " &[ Me]![IDAtleta].[Value])
    Il generatore di espressioni aggiunge automaticamente le parentesi quadre
    Stefano
  • 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]) 
  • 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
  • Prova a scriverla così
    
    = DCount("*";"TblMatchFit";"IDAtleta = " & [IDAtleta])
  • 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
  • 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'")
  • Fantastico ora mi funziona tutto
    I miei piu sentiti ringraziamenti
    Stefano
Devi accedere o registrarti per scrivere nel forum
12 risposte