(risolto) Problema contatore in vba

di ocrot il
7 risposte
Buongiorno,

ho una tabella dove cerco di far avanzare un contatore, il problema e' che rileva sempre il campo EDUCATRICE a 0 (anche se e' diverso)

chi mi potrebbe aiutare?

Dim db As DAO.Database 
Dim rs As DAO.Recordset 
Dim sqlstring As String 

Set dbLocal = CurrentDb 
sqlstring = "SELECT EDUCATRICE,ANNO,CONTATORE FROM RETTA_TRAVASO_TESTATA_aghe" 

Set rs = CurrentDb.OpenRecordset(sqlstring, dbOpenDynaset) 


Dim CONTA0 As Integer 
Dim CONTA1 As Integer 
Dim CONTA2 As Integer 
CONTA0 = 1 
CONTA1 = 1 
CONTA2 = 1 

Do Until rs.EOF 

Select Case (EDUCATRICE) 
Case 0 

    rs.Edit 
    
    rs.Fields("CONTATORE") = CONTA0 
    rs.Update 
    CONTA0 = CONTA0 + 1 
  



Case 1 
    rs.Edit 
    
    rs.Fields("CONTATORE") = CONTA1 
    rs.Update 
    CONTA1 = CONTA1 + 1 


Case 2 


    rs.Edit 
    
    rs.Fields("CONTATORE") = CONTA2 
    rs.Update 
    CONTA2 = CONTA2 + 1 

End Select 
rs.MoveNext


Loop

rs.Close

7 Risposte

  • Non ho capito nulla
  • Ciao,
    grazie per la risposta,
    sono veramente novizio di vba
    vorrei crearmi un contatore parziale riga per riga
    nella tabella ho una sfilza di campi EDUCATRICE, popolati con 0,1 oppure 2
    vorrei creare un contatore parziale, cioe'
    EDUCATRICE CONTATORE
    0 1
    0 2
    0 3
    0 4
    1 1
    1 2
    0 5
    1 3
    2 1
    0 6

    il campo EDUCATORE e' intero

    con quel SELECT CASE che ho postato entra sempre e comunque nel CASE 0 anche se il campo di riferimento EDUCATRICE ha 1 oppure 2, il risultato e' questo

    EDUCATRICE CONTATORE
    0 1
    0 2
    0 3
    0 4
    1 5
    1 6
    0 7
    1 8
    2 9
    0 10
  • Continuo a capirci poco. Posso dedurre che stai facendo un conteggio aggregato secondo il campo Educatrice.

    Se è così tutto quel codice non ti serve a nulla e non devi usare un campo CONTATORE nel DB, semplicemente esegui la query

    "SELECT EDUCATRICE, Count(*) AS CONTATORE FROM RETTA_TRAVASO_TESTATA_aghe GROUP BY EDUCATRICE"

    e otterrai 3 record con i risultati.
  • Ciao, grazie per la risposta,
    con il count ottengo un totale finale per raggruppamento, vorrei pero' un contatore parziale riga per riga, esempio:

    trova 0 sulla prima riga contatore 1
    trova 0 sulla seconda riga contatore 2
    trova 0 sulla terza riga contatore 3
    trova 0 sulla quarta riga contatore 4
    trova 1 sulla quinta riga contatore 1
    trova 1 sulla sesta riga contatore 2
    trova 0 sulla settima riga contatore 5
  • Perché non lo aggiungi all'atto dell'inserimento del nuovo record?
  • EDUCATRICE ti vene sempre calcolato 0 perché devi sostituirlo con rs.fields("EDUCATRICE")...
  • Grazie oregon, implementero' sicuramente nell'inserimento, ma devo studiare ancora molto

    grazie angelo, con il tuo aiuto ho risolto, grazie di cuore a tutti
Devi accedere o registrarti per scrivere nel forum
7 risposte