[Risolto]Problema CurrentDb.Execute

di il
5 risposte

[Risolto]Problema CurrentDb.Execute

Buonasera a tutti, eccomi cn un nuovo problema e penso perchè sicuramente mi sfugge o ho errato qualcosa...
Per la creazione dei documenti ho una form madre FormInserisciDocumenti (che poggia sulla tabella tblScarichi) cui contiene una sottomaschera FormInserisciDocumentiSottoMaschera collegata con campi master.
Nella sottomaschera, vi sono una serie di conteggi che, al temine, vorrei ribaltare all'interno della tabella "tblScarichi".

Vi sono quindi riferimenti agli articoli, quantità, prezzo,iva e sconto.
Se creo un documento senza inserire lo sconto, il codice funge senza problemi, se inserisco lo sconto, mi da errore Errore di run-time '3144': errore di sintassi nell'istruzione UPDATE
Ecco il codice, spezzettato perchè mi crea problemi solo sulla stringa relativa all'ImportoIva. Passatemi il fatto che sono spezzettate ma l'ho fatto per verificare il blocco...
SqlStrAgg = "UPDATE tblScarichi SET tblScarichi.Imponibile = " & Me!Imponibile & " WHERE (tblScarichi.IDScarico) = " & Me!IDScarico
CurrentDb.Execute SqlStrAgg
SqlStrAgg = "UPDATE tblScarichi SET tblScarichi.Imponibile = " & Me!ImportoIva & " WHERE (tblScarichi.IDScarico) = " & Me!IDScarico
CurrentDb.Execute SqlStrAgg

SqlStrAgg = "UPDATE tblScarichi SET tblScarichi.TotaleDocumento = " & Me!TotaleDocumento & " WHERE (tblScarichi.IDScarico) = " & Me!IDScarico
CurrentDb.Execute SqlStrAgg
I campi Imponibile, Imponibile e TotaleDocumento sono di tipo valuta con 2 decimali e formato euro

5 Risposte

  • Re: [Risolto]Problema CurrentDb.Execute

    Intanto resta da capire come mai aggiorni Imponibile prima con il campo imponibile e poi con il campo ImportoIva (ma magari è un banale errore di copia/incolla), poi dici che ti da problemi quando inserisci lo sconto ma io non vedo traccia di alcun campo sconto ... credo sia meglio che chiarisci il problema.

    P.S. sei sicuro che il problema non sia dato dal fatto che il campo ImportoIva magari sia impostato a Null ???
  • Re: [Risolto]Problema CurrentDb.Execute

    Quale delle 3 da errore...?
    Fai un Debug.Print del predicato SQL prima di mandarlo in esecuzione e lo analizzi in finestra immediata CTRL+G

    P.s. il campo Valuta non ha 2 decimali... eventualmente è la visualizzazione che viene formattata con 2 decimali... Non è una sottigliezza.
  • Re: [Risolto]Problema CurrentDb.Execute

    Buondi e grazie per l'interessamento. Effettivamente ho commesso un errore di copia ed incolla e la stringa che resituisce errore è questa
        SqlStrAgg = "UPDATE tblScarichi SET tblScarichi.ImportoIva = " & Me!ImportoIva & " WHERE (tblScarichi.IDScarico) = " & Me!IDScarico
        CurrentDb.Execute SqlStrAgg
    Effettuando il Debug, ho ho messo di riportarlo, mi restituisce quanto segue non chè il valore effettivo prodotto dal documento.
    "UPDATE tblScarichi SET tblScarichi.ImportoIva = 52,8 WHERE (tblScarichi.IDScarico) = 54"
    Per chiarezza, il documento viene creato in questo modo:
    Nella form principale, vengono immessi i dati relativi ai clienti, nella sottomaschera vi sono i campi relativi ad articolo, quantità, unità di misura, prezzo(unitario per articolo), % iva, importo, imposta e totale.
    Nel piè di pagina della sottomaschera, le varie textbox che effettuano i vari totali relativi ai dati contabili (importo, imposta e totale)

    Nella form principale, vi sono le 3 textbox Imponibile, ImportoIva e TotaleDocumento. Di queste 3 textbox, tramite le query, solo il valore ImportoIva restituisce l'errore.
    Ecco il codice inserito dopo l'aggiornamento del campo Sconto e penso che il problema sia prp qui..
        Dim vVal, vImposta, vTotale, vScoImporto, vScoImposta, var3 As Currency
        vScoImporto = (100 - Me.Sconto)
        vVal = 0#
        vImposta = 0#
        vTotale = 0#
        If Not IsNull(Me!ID_Articolo) Then
            vVal = Me.Prezzo
            If Not IsNull(Me.Quantità) And Me.Quantità <> "" Then
                vVal = vVal * CSng(Me.Quantità) * (vScoImporto / 100)
                
                vImposta = Me.Prezzo * Me.Iva * CSng(Me.Quantità)
                
                vScoImposta = (vImposta / 100) * CSng(Me.Sconto)
                var3 = vImposta - vScoImposta
                vTotale = vVal + vImposta
            End If
        End If
        
        Me.Importo = vVal
        Me.Imposta = var3
        Me.Totale = vTotale
  • Re: [Risolto]Problema CurrentDb.Execute

    Il problema credo siano i decimali o meglio il separatore...
    Usa
    str(Riferimentovlauta)
    SqlStrAgg = "UPDATE tblScarichi SET tblScarichi.ImportoIva = " & str(Me!ImportoIva) & " WHERE (tblScarichi.IDScarico) = " & Me!IDScarico
        CurrentDb.Execute SqlStrAgg
    
  • Re: [Risolto]Problema CurrentDb.Execute

    @Alex ha scritto:


    Il problema credo siano i decimali o meglio il separatore...
    Usa
    str(Riferimentovlauta)
    SqlStrAgg = "UPDATE tblScarichi SET tblScarichi.ImportoIva = " & str(Me!ImportoIva) & " WHERE (tblScarichi.IDScarico) = " & Me!IDScarico
        CurrentDb.Execute SqlStrAgg
    
    Grazie Alex, era proprio quello il problema...Ho risolto con il tuo suggerimento
    P.s. per completezza, ho prontamente aggiustato la stringa del codice poiche la vTtotale è data da
    vTotale = vVal + var3
Devi accedere o registrarti per scrivere nel forum
5 risposte