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ì:
Ma, primo mi sembra una cavolata, secondo, non funziona...codice:DoCmd.OpenTable "tblTotale" DoCmd.Close DoCmd.OpenTable "tblTotale"
Come faccio ad ottenere i dati aggiornati?
Ok questo è il codice completo:
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...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
Aiuto!!!!:master:


Rispondi quotando
