Ho fatto una form al cui interno in VB ho scritto una sub che va a fare dei recordset e poi scrive il risultato in un campo di una tabella detta tblTotale. Quindi con il comando DoCmd.Open "tblTotale", apro la tabella ma la trovo sempre non aggiornata. Se la chiudo e riapro la tabella, allora i dati sono corretti. Ho provato a scrivere anche così:
codice:
        DoCmd.OpenTable "tblTotale"
        DoCmd.Close
        DoCmd.OpenTable "tblTotale"
Ma, primo mi sembra una cavolata, secondo, non funziona...
Come faccio ad ottenere i dati aggiornati?
Ok questo è il codice completo:
codice:
 Public Sub cmdOK_Click()
    txtData.SetFocus
    MyProjectPath = "C:\NumeroPezzi"
    Dim objRS As New Recordset
    Dim Giorno As Date
    Giorno = Format(CDate(txtData.Text), "mm/dd/yyyy")
    Dim objConn As New Connection
    Dim sAccessConnect As String
    Dim strSQL As String
    'ODBC connection parameters (parametri per connessione ODBC)
    sAccessConnect = "Driver={Microsoft Access Driver (*.mdb)};" & _
                        "Dbq=Statistica.mdb;" & _
                        "DefaultDir=" & MyProjectPath & ";" & _
                        "Uid=Admin;Pwd=;"

    'Open Connection (apertura connessione)
    objConn.Open sAccessConnect
    
    'Prendo i valori dalle tabelle
    Dim Totale As Integer
    Totale = 0
    strSQL = "SELECT Sum(Pezzi) As SommaPezzi FROM tblGiornalieraRull01 WHERE Giorno =#" & _
    Giorno & "#"
    objRS.Open strSQL, objConn, 3, 3
    If objRS!SommaPezzi > 0 Then Totale = Totale + objRS!SommaPezzi
    objRS.Close
    
    strSQL = "SELECT Sum(Pezzi) As SommaPezzi FROM tblGiornalieraRull03 WHERE Giorno =#" & _
    Giorno & "#"
    objRS.Open strSQL, objConn, 3, 3
    If objRS!SommaPezzi > 0 Then Totale = Totale + objRS!SommaPezzi
    objRS.Close
    
    strSQL = "SELECT Sum(Pezzi) As SommaPezzi FROM tblGiornalieraRull04 WHERE Giorno =#" & _
    Giorno & "#"
    objRS.Open strSQL, objConn, 3, 3
    If objRS!SommaPezzi > 0 Then Totale = Totale + objRS!SommaPezzi
    objRS.Close
    
    strSQL = "SELECT Sum(Pezzi) As SommaPezzi FROM tblGiornalieraRull05 WHERE Giorno =#" & _
    Giorno & "#"
    objRS.Open strSQL, objConn, 3, 3
    If objRS!SommaPezzi > 0 Then Totale = Totale + objRS!SommaPezzi
    objRS.Close
    
    strSQL = "SELECT Sum(Pezzi) As SommaPezzi FROM tblGiornalieraRull06 WHERE Giorno =#" & _
    Giorno & "#"
    objRS.Open strSQL, objConn, 3, 3
    If objRS!SommaPezzi > 0 Then Totale = Totale + objRS!SommaPezzi
    objRS.Close
    
    strSQL = "SELECT Sum(Pezzi) As SommaPezzi FROM tblGiornalieraRull07 WHERE Giorno =#" & _
    Giorno & "#"
    objRS.Open strSQL, objConn, 3, 3
    If objRS!SommaPezzi > 0 Then Totale = Totale + objRS!SommaPezzi
    objRS.Close
    
    strSQL = "SELECT Sum(Pezzi) As SommaPezzi FROM tblGiornalieraRull08 WHERE Giorno =#" & _
    Giorno & "#"
    objRS.Open strSQL, objConn, 3, 3
    If objRS!SommaPezzi > 0 Then Totale = Totale + objRS!SommaPezzi
    objRS.Close
    
    strSQL = "SELECT Sum(Pezzi) As SommaPezzi FROM tblGiornalieraRull09 WHERE Giorno =#" & _
    Giorno & "#"
    objRS.Open strSQL, objConn, 3, 3
    If objRS!SommaPezzi > 0 Then Totale = Totale + objRS!SommaPezzi
    objRS.Close
    
    strSQL = "SELECT Sum(Pezzi) As SommaPezzi FROM tblGiornalieraRull04R WHERE Giorno =#" & _
    Giorno & "#"
    objRS.Open strSQL, objConn, 3, 3
    If objRS!SommaPezzi > 0 Then Totale = Totale + objRS!SommaPezzi
    objRS.Close
    
    
    'Se ho totalizzato qualcosa lo scrivo nella tabella
    'altrimenti metto fuori un pop alert
    If Totale > 0 Then
            
        'Cancello i record
        strSQL = "DELETE * FROM tblTotale"
        objRS.Open strSQL, objConn, 3, 3
   
        'Scrivi nella tabella riepilogo
        strSQL = "INSERT INTO tblTotale (Totale) VALUES (" & Totale & ")"
        objRS.Open strSQL, objConn, 3, 3
        Set objRS = Nothing
        'Apro la tabella
        Dim Sec1 As Integer
        DoCmd.OpenTable "tblTotale"
        DoCmd.Close
        DoCmd.OpenTable "tblTotale"
    Else
        MsgBox ("Nessun risultato trovato")
    End If
    
    objConn.Close
    Set objConn = Nothing
    

End Sub
In pratica sommo i dati di tutte le SQL che faccio e poi vado a cancellare il record nella tabella totali, e inserisco il record con il dato aggiornato... nel migliore dei casi mi ritrovo i dati della domanda precendente...
Aiuto!!!!:master: