Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Access 2000 e contare i record

    Una piccola premessa sul db che ho creato per meglio farmi capire su dove son bloccato. La tabella1 contine tra i vari campi uno per la data, inserita automaticamente, e uno che contine il corso al quale la persona si iscrive( 1°-5°anno). Ho bisogno di sapere il n. degli iscritti al 1, al 2 e così via ed eventualmente scrivere questi risultati in una tabella. Questo è per fini statistici. Ho creato una query che prende solo il corso e dal campo data l'anno e lanciandola mi mostra ciò che voglio, ma non nessuna idea su come poter avanti. Count restituisce il totale dei record della tabella e non credo possa avere dei criteri.
    Idee?

    Grazie a rutti
    Fidel

  2. #2

    re:

    Non so se ho capito bene, ma mi sebra che da una tabella vuoi crearne altre rispettivamente una per ogni corso???

    Comunque, mi cimento:
    Crea cinque tabelle uguali a quella che già hai (gli stessi campi con le stesse proprietà), una per ogni anno. Poi crei cinque query di accodamento per inserire i dati nelle rispettive tabelle. Le query di accodamento sono simili a quelle di selezione dove oltre a specificare un criterio puoi specificare la tabella di destinazione.
    Per lanciare le cinque query puoi creare una semplice macro.
    A questo punto avrai diviso i campi.

    Spero di eserti stato di aiuto.

  3. #3
    Non mi sarò espresso bene,
    io vorrei saper quanti sono quelli del 1 anno, quanti del 2,etc, prendendo questi dati dalla mia tabella principale. Usando =count(*) ottengo il totale dei record in una tabella, ma ciò non mi serve

    Bye
    Fidel

  4. #4

    Re:

    Dovresti creare un modulo e contare manualmente i campi.
    Ex:


    Public Sub Conta()

    Dim rst As ADODB.Recordset
    Dim Corso1, Corso2, Corso3, Corso4, Corso5 As Integer

    'Inizializza le variabili
    Corso1 = 0
    Corso2 = 0
    Corso3 = 0
    Corso4 = 0
    Corso5 = 0

    Set rst = New ADODB.Recordset
    rst.Open "nometabella", Application.CurrentProject.Connection, adOpenKeyset, adLockPessimistic
    rst.MoveFirst

    With rst
    Do While Not .EOF
    If rst(indicedelcampocorso) = 1 Then Corso1 = Corso1 + 1
    If rst(indicedelcampocorso) = 2 Then Corso1 = Corso2 + 1
    If rst(indicedelcampocorso) = 3 Then Corso1 = Corso3 + 1
    If rst(indicedelcampocorso) = 4 Then Corso1 = Corso4 + 1
    If rst(indicedelcampocorso) = 5 Then Corso1 = Corso5 + 1
    .MoveNext
    Loop
    End With

    End Sub


    nometabella==> la tabella a cui fai riferimento
    indicedelcampocorso==> deve essere la posizione del campo nella tabella. Ricorada che il primo campo ha indice zero.

    Il codice non è dei migliori in quanto è buttato lì in questo momento.Alla fine le variabili Corsox conterranno il numero di iscritti al rispettivo corso.

  5. #5
    Originariamente inviato da fidello
    Non mi sarò espresso bene,
    io vorrei saper quanti sono quelli del 1 anno, quanti del 2,etc, prendendo questi dati dalla mia tabella principale. Usando =count(*) ottengo il totale dei record in una tabella, ma ciò non mi serve

    Bye
    Ciao.
    Dunque io ho fatto una prova su un mio db. Ho una tabella in cui è presente un campo di testo Anno che può avere ovviamente valori diversi (ad es. 2000,2003,2001,2002,ecc...).
    Ho provato a fare una query che mi CONTASSE tutti i record corrispondenti all'anno 2001 e il filtro sul Count() non l'ho potuto fare.
    Così ho fatto una prova, che ha dato risultati positivi.
    Ho inserito un secondo campo nella mia query che ho chiamato Num e qui ho inserito il Count, mentre nel campo Anno, con filtro applicato, ho lasciato Raggruppamento. Ha funzionato.
    Ecco la stringa sql di select:
    codice:
    SELECT Anno, Count(Anno) AS Num
    FROM TBProva
    GROUP BY Anno
    HAVING (((Anno)="2001"))
    ORDER BY Anno
    spero che questa soluzione sia utile per le tue esigenze.


    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.