Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22
  1. #11
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    129
    Macchè niente!

    ti posto il codice sotto.
    Grazie mille

    ------
    Nota: GiornaleOld e CostoOld sono due variabili globali che assumono il valore iniziale delle rispettive textbox

    '** PULSANTE SALVA DEL FORM DI MODIFICA DEL GIORNALE **
    '-- Funzione di aggiornamento della Tabella Relazioni
    Call AggiornaTabellaRelazioni
    '-- Salva ed aggiorna il recorset
    Form22.Adodc1.Recordset.Save
    Form22.Adodc1.Refresh
    '-- Pulisce il Text1.Text del form23
    Form15.Text1.Text = ""
    Form22.Hide
    Form1.Show
    '-- Azzera la variabile globale 'Controllo'
    Controllo = 0

    ***FUNZIONE 'AggiornaTabellaRelazioni' ***
    '-- Dichiarazione oggetti
    Dim cn As ADODB.Connection
    Dim rs_titolo As ADODB.Recordset
    Dim rs_costo As ADODB.Recordset

    Set cn = New ADODB.Connection

    '-- Apro la connessione
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\PGMVB6\clienti.mdb;Persist Security Info=False"

    '-- Imposto la modifica dei dati che hanno il nome uguale a quello modificato
    Set rs_titolo = cn.Execute("UPDATE TabellaRelazioni SET Titolo = '" & Form22.Text1.Text & "' WHERE Titolo = '" & GiornaleOld & "'")

    Set rs_costo = cn.Execute("UPDATE TabellaRelazioni SET Costo = '" & Form22.Text2.Text & "' WHERE Costo = '" & CostoOld & "'")

  2. #12
    Credo che il problema sia su questa linea:

    codice:
    Set rs_costo = cn.Execute("UPDATE TabellaRelazioni SET Costo = '" & Form22.Text2.Text & "' WHERE Costo = '" & CostoOld & "'")
    1) Non serve assegnare il risultatop della query ad un recorset in quanto non si tratta di una select ma di una update. Quindi fai solo:
    codice:
    cn.Execute("UPDATE TabellaRelazioni SET Costo = '" & Form22.Text2.Text & "' WHERE Costo = '" & CostoOld & "'")
    Lo stesso vale per l'istruzione precedente.
    2) Verifica il contenuto della query visualizzandola nella finestra Immediate di VB; basta fare:

    codice:
    Debug.print "UPDATE TabellaRelazioni SET Costo = '" & Form22.Text2.Text & "' WHERE Costo = '" & CostoOld & "'"
    poi, dopo averla visualizzata, copiala in una query di access e provala.

    Penso che così dovresti identificare in modo più preciso qual è il problema.

    Ciao
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  3. #13
    Inoltre se Costo è numerico non devi specificare gli apici nella query (').

    codice:
    cn.Execute("UPDATE TabellaRelazioni SET Costo = " & Form22.Text2.Text & " WHERE Costo = " & CostoOld & ")"
    ciao :adhone:
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  4. #14
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    129
    Ho sostituito la riga sulla quale effettivamente il debug si fermava e l'ho cambiata con la riga che mi hai detto ma lo stramaledetto errore mi perseguita ancora
    Comunque la riga del titolo del giornale non mi ha mai dato problemi...solo quella del costo.

    Poi alla riga di debug non ci arriva

    La seconda riga di codice che mi hai dato:
    cn.Execute("UPDATE TabellaRelazioni SET Costo = " & Form22.Text2.Text & " WHERE Costo = " & CostoOld & ")"

    mi va in errore prima ancora di fare la prova...l'errore è
    "Compile error: Expected: list separator or )"

  5. #15
    Ho fatto casino con le parentesi
    La riga corretta è questa:

    codice:
    cn.Execute "UPDATE TabellaRelazioni SET Costo = " & Form22.Text2.Text & " WHERE Costo = " & CostoOld
    ma ti conviene scrivere prima di essa la riga di debug:

    codice:
    Debug.print "UPDATE TabellaRelazioni SET Costo = " & Form22.Text2.Text & " WHERE Costo = " & CostoOld
    Se poi non funziona, nella finestra immediate avrai la query SQL che il programma cerac di eseguire. La copi in una query di Access e la esegui direttamente da lì. In questo modo access dovrebbe darti delle indicazioni più precise sull'errore.

    Ciao
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  6. #16
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    129
    rettifico il punto della finestra Immediate di VB6:

    mi esce questo risultato:
    "UPDATE TabellaRelazioni SET Costo = '50' WHERE Costo = '100,00'"

    L'errore ti confermo è sempre sulla riga del costo...anche quella modificata

  7. #17
    Trattandosi di un campo numerico (Costo) non si possono utilizzare gli apici ma la query deve essere così:

    codice:
    UPDATE TabellaRelazioni SET Costo = 50   WHERE Costo = 100,00
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  8. #18
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    129
    aspetta....cioè la riga dovrebbe non dovrebbe avere gli apici sui form e sulla variabile come sotto?

    cn.Execute "UPDATE TabellaRelazioni SET Costo = & Form22.Text2.Text & WHERE Costo = & CostoOld "

  9. #19
    Solo l'apice singolo va tolto (') quelli doppi(") restano com'erano:

    codice:
    cn.Execute "UPDATE TabellaRelazioni SET Costo = " & Form22.Text2.Text & " WHERE Costo = " & CostoOld
    lupusinfabula

    Programmatore VB, ASP, Delphi.

  10. #20
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    129
    acc....cambia l'errore ora

    "Run-time error -2147217900 (80040e14)
    Errore di sintassi (virgola) nell'espressione della query 'Costo = 25,00'

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 © 2026 vBulletin Solutions, Inc. All rights reserved.