Discussione chiusa
Pagina 2 di 3 primaprima 123 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21

Errore inserimento nuovo record

  1. #11
    L'avatar di SirJo
    SirJo non è in linea Scolaretto
    Post
    50
    Like Inviati  
    5
    Like Ricevuti  
    2
    Quote Originariamente inviato da freddy60 Visualizza il messaggio
    sintasi non corretta in prossimità della parola chiave 'And'
    cosa contiene la variabile "Sql" ??

  2. #12
    L'avatar di freddy60
    freddy60 non è in linea Scolaretto
    Post
    227
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ripartiamo da zero.

    ho messo questo codice nel load del datagridview contabiità, e nell'evento click del datagridview conto per visualizzare il saldo dell'anno precedente anche quando clicco su un altro conto.

    Però ho dovuto disabilitare questa porzione di codice altrimenti mi da risultato zero. (Perchè ?)

    questo è il codice del load con parte del codice disabilitato:

      Try 'qui calcolo il sado delle entrate e delle uscite anno precedente
    
                Dim cmd As SqlCommand
                Dim conn As New SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\My Project\BudgetFamiliare.mdf;Integrated Security=True")
                Dim Sql As String = "SELECT SUM(entrate) As TotaleE, SUM(uscite) As TotaleU FROM contabilita WHERE idconto = " & IdContoTextBox.Text & " And  (Year(Data) = Year(GETDATE())-1)"
    
    
                cmd = New SqlCommand(Sql, conn)
                conn.Open()
    
                Dim DR As SqlDataReader
                DR = cmd.ExecuteReader
    
                DR.Read()
    
                Dim TotE As Decimal = IIf(IsDBNull(DR("TotaleE")), 0, DR("TotaleE"))
                Dim TotU As Decimal = IIf(IsDBNull(DR("TotaleU")), 0, DR("TotaleU"))
    
                LblTotale.Text = String.Format("{0:c2}", TotE - TotU).ToString()
                LblTotale.ForeColor = IIf(TotE - TotU < 0, Color.Red, Color.Green)
    
                cmd.Dispose()
                conn.Close()
    
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
    
    'Try 'qui somma le colonne di entrate ed uscite
    
            '    'ContabilitaDataGridView.FirstDisplayedScrollingRowIndex = ContabilitaDataGridView.RowCount - 2
    
            '    Dim entrate As Decimal = 0
            '    Dim uscite As Decimal = 0
            '    Dim DblTotale As Decimal = 0
    
            '    For r = 0 To ContabilitaDataGridView.Rows.Count - 1
            '        If Not DBNull.Value.Equals(ContabilitaDataGridView(6, r).Value) Then
            '            uscite += CType(ContabilitaDataGridView.Rows(r).Cells(6).Value, Double)
            '        End If
            '    Next
    
    
            '    For r = 0 To ContabilitaDataGridView.Rows.Count - 1
            '        If Not DBNull.Value.Equals(ContabilitaDataGridView(5, r).Value) Then
            '            entrate += CType(ContabilitaDataGridView.Rows(r).Cells(5).Value, Double)
            '        End If
            '    Next
    
            '    LblTotale.Text = (entrate - uscite).ToString("c2")     
    
            '    If LblTotale.Text < 0 Then
            '        LblTotale.ForeColor = Color.Red
            '    Else
            '        LblTotale.ForeColor = Color.Green
            '    End If
    
            '    ContabilitaDataGridView.FirstDisplayedScrollingRowIndex = ContabilitaDataGridView.RowCount - 2
    
            'Catch ex As Exception
                 MessageBox.Show(ex.Message)
            'End Try
    

    Poi se inserisco una nuova operazione per esempio una entrata, non me la somma al saldo dell'anno precedente, ma mi somma solo l'operazione registrata. (Esempio che io vorrei: Saldo anno precedente =1.200 € + 200 = 1.400 €)

    Ma non è così, se inserisco una nuova oprazione di entrata di 200 €, il saldo è di 200 € e non 1.400€, non tiene conto del saldo precedente.

    Come posso risolvere?

    Se vedete le iimmagini che ho postato forse è più chiaro
    Ultima modifica di freddy60; 04-01-2021 19:17 

  3. #13
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,362
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    31
    Riparti da zero con UN ALTRO problema?

    Inizialmente avevi scritto

    Il problema è che quando clicco sul pulsate aggiungi mi ritorna questo errore:

    sintasi non corretta in prossimità della parola chiave 'And'
    e adesso hai un problema con un saldo a zero.

    Poi ti meravigli se voglio chiudere i tuoi thread?

    Ti faccio notare che in tutte e due le parti di codice tu scrivi il risultato in LblTotale quindi avrai in quella label SOLTANTO l'ultimo risultato in quanto il secondo risultato cancellerà il primo. Ma è OVVIO!
    ℹ️ Leggi di più su AntonioG ...

  4. #14
    L'avatar di freddy60
    freddy60 non è in linea Scolaretto
    Post
    227
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ma il saldo lo deve riportare sempre in LBLTOTALE, altrimenti lo dovrei riportare in un altra label, ma questo non mi piace, come posso ovviare a questo problema.

  5. #15
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,362
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    31
    Ma che c'entra l'errore di sintassi??
    ℹ️ Leggi di più su AntonioG ...

  6. #16
    L'avatar di freddy60
    freddy60 non è in linea Scolaretto
    Post
    227
    Like Inviati  
    0
    Like Ricevuti  
    0
    L'errore di sintassi lo visualizza quando aggiungo una nuova operazione da Form2, e ancora non riesco a venirne fuori.

    un problema alla volta se tu hai pazienza

  7. #17
    Post
    1,867
    Blogs
    21
    Like Inviati  
    13
    Like Ricevuti  
    11
    Quote Originariamente inviato da freddy60 Visualizza il messaggio
    L'errore di sintassi lo visualizza quando aggiungo una nuova operazione da Form2, e ancora non riesco a venirne fuori.

    un problema alla volta se tu hai pazienza
    scusa freddy , ma non è tanto questione di pazienza perchè se prima era confuso
    ora è nero come la notte !

    un problema <-> una discussione
    ℹ️ Leggi di più su sspintux ...

  8. #18
    L'avatar di freddy60
    freddy60 non è in linea Scolaretto
    Post
    227
    Like Inviati  
    0
    Like Ricevuti  
    0
    vabbè vuol dire che per altri problemi aprirò nuovi trend, per adesso come posso risolvere per il saldo sempre in LblTotale

  9. #19
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Post
    7,213
    Blogs
    3
    Like Inviati  
    17
    Like Ricevuti  
    9
    Quote Originariamente inviato da freddy60 Visualizza il messaggio
    come posso risolvere per il saldo sempre in LblTotale
    Come ti ha detto AntonioG, controlla nel tuo codice la parte di query dove è inserita la parola And, che ti viene segnalata dal debugger.
    Una cosa utile da fare è inserire un punto di interruzione dopo l'assegnazione della query alla variabile Sql e verificarne il contenuto in debug.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  10. #20
    L'avatar di freddy60
    freddy60 non è in linea Scolaretto
    Post
    227
    Like Inviati  
    0
    Like Ricevuti  
    0
    l'errore me lo da qui: DR.Read()

    sintasi non corretta in prossimità della parola chiave 'And'


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Form1.Panel8.Visible = False
    
            'ContabilitaTableAdapter.FillByAnnoCorrente(BudgetFamiliareDataSet.contabilita)
    
            ContabilitaBindingSource.EndEdit()
            ContabilitaTableAdapter.Update(BudgetFamiliareDataSet.contabilita)
            ContabilitaBindingSource.AddNew()
            Form1.ContabilitaTableAdapter.FillByAnnoCorrente(Form1.BudgetFamiliareDataSet.contabilita)
    
    
            Form1.BntFiltra.BackColor = Color.WhiteSmoke
            Form1.BntTuttiDati.BackColor = Color.WhiteSmoke
            Form1.BntMeseCorrente.BackColor = Color.WhiteSmoke
            Form1.BntAnnoCorrente.BackColor = Color.LightCyan
            Form1.Button3.BackColor = Color.WhiteSmoke
            Form1.BntAnnoScorso.BackColor = Color.WhiteSmoke
    
            Try 'qui calcolo il sado delle entrate e delle uscite anno precedente
    
                Dim cmd As SqlCommand
                Dim conn As New SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\My Project\BudgetFamiliare.mdf;Integrated Security=True")
                Dim Sql As String = "SELECT SUM(entrate) As TotaleE, SUM(uscite) As TotaleU FROM contabilita WHERE idconto = " & IdContoTextBox.Text & " And  (Year(Data) = Year(GETDATE())"
    
    
                cmd = New SqlCommand(Sql, conn)
                conn.Open()
    
                Dim DR As SqlDataReader
                DR = cmd.ExecuteReader
    
                DR.Read()
    
                Dim TotE As Decimal = IIf(IsDBNull(DR("TotaleE")), 0, DR("TotaleE"))
                Dim TotU As Decimal = IIf(IsDBNull(DR("TotaleU")), 0, DR("TotaleU"))
    
                Form1.LblTotale.Text = String.Format("{0:c2}", TotE - TotU).ToString()
                Form1.LblTotale.ForeColor = IIf(TotE - TotU < 0, Color.Red, Color.Green)
    
                cmd.Dispose()
                conn.Close()
    
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
    

Discussione chiusa
Pagina 2 di 3 primaprima 123 ultimoultimo

Potrebbero interessarti anche ...

  1. Risposte: 7
    Ultimo Post: 04-05-2017, 18:27
  2. Maschera per inserimento nuovo record
    Da gipsy nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 27-01-2012, 15:53
  3. Risposte: 4
    Ultimo Post: 02-03-2011, 13:18
  4. Inserimento e modifica record in nuovo form
    Da ken1986 nel forum Visual Basic .Net
    Risposte: 11
    Ultimo Post: 22-11-2010, 18:50
  5. [Access] Inserimento nuovo record con controllo duplicato.
    Da Dante87 nel forum Microsoft Access
    Risposte: 9
    Ultimo Post: 08-04-2010, 19:07