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: