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

    [VB] Access e visual basic

    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:
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  2. #2
    Utente di HTML.it L'avatar di pixer
    Registrato dal
    Oct 2000
    Messaggi
    614
    Scusa ma il comando UPDATE lo usi?
    MySQL Worker - The OpenSource Multiplatform MySQL database Administrator (C++ powered)
    .:[ It resumes the development !! ]:.


  3. #3
    Originariamente inviato da pixer
    Scusa ma il comando UPDATE lo usi?
    UPDATE??? Cosa intendi? Il comando UPDATE di SQL? Non ne ho bisogno... io ho appena fatto un DELETE della tabella e poi un INSERT INTO, mi aspetto di aprire la tabella e vedere i valori appena inseriti, invece niente. Chiudo la tabella a mano e la riapro... sorpresa!!! Tutto è come vorrei!!! Non riesco al limite ad inserire un un ritardo nell'aprire la tabella in modo da lasciarle il tempo di capire...?
    Grazie
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

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.