Newsgroup: it.comp.appl.access
Titolo: Eseguire query update da codice

Ciao a tutti, sto imparando a usare Access e mi trovo con un problema:
Devo aggiornare un record mediante i dati ricavati da una maschera
Cerca/seleziona, ho creato un bottono che dovrebbe:
- eseguire la query di update
- chiudere il form
- alla chiusura eseguire il requery su un campo nella maschera
sottostante
L'operazione viene eseguita solo in parte e il flusso viene interrotto
da alert, in particolare:
- mi chiede conferma di aggiornare il record dopo il click
- non chiude il form
- alla chiusura manuale mi dice che il record era stato aperto da un
altro utente, se confermo le modifiche.
- se ricarico il form sottostante le modifiche sono comunque state
salvate
il codice VBA è il seguente:
------------------------------------------
Private Sub Salva_Click()
On Error GoTo Err_Salva_Click
'Public Sub DoSQL()
    Dim SQL As String
    SQL = "UPDATE Products " & _
          "SET Products.Player_ID = me.ElencoPlayers " & _
          "WHERE Products.Prod_ID = me.Product"
    DoCmd.RunSQL SQL
    DoCmd.Close acForm, Me.Name
Exit_Salva_Click:
    Exit Sub
Err_Salva_Click:
    MsgBox Err.Description
    Resume Exit_Salva_Click
End Sub
-----------------------------------
ho anche provato nell'ordine:
eseguire una query interna (OpenQuery)
usare execute.database(query)
in entrambi i casi il problema è lo stesso
grazie a chi volesse aiutarmi


La stringa SQL è ovviamente errata... la sintassi Me.NomeControllo non
può essere risolta nell'espressione, quindi devi esplicitarla.
Prova questa:
SQL = "UPDATE Products " & _
           "SET Products.Player_ID = " & me.ElencoPlayers & _
           " WHERE Products.Prod_ID = " & me.Product
altrimenti lasciando fare a JET-ENGINE dovevi scrivere la versione
implicita:
SQL = "UPDATE Products " & _
           "SET Products.Player_ID = Forms!NomeForm!NomeControllo " &
_
           "WHERE Products.Prod_ID = Forms!NomeForm!NomeControllo"
In ogni caso non capisco perchè devi chiudere la Form... non basta
usare il metodo Requery sull'oggetto....??
@Alex


Grazie! ora provo, la cosa strana è che, giusta o sbagliata la query
alla fine funziona (l'UPDATE lo fa)... la "versione JET" la ho provata
anche quella, stessa sintassi, funziona pure quella, ma stessi
problemi! :_(

problemi! :_(
Scusa...partito il mess...
dicevo
Form1 su bottone
docmd openform "Form2",,,,, acdialog
me.requery
su Form2 sul bottone MODIFICA
Private Sub Salva Click() 
On Error GoTo Err Salva Click 
Dim SQL As String 
Dim Dbs as database
set dbs=currentdb
SQL = "UPDATE Products " & _
"SET Products.Player ID = " & me.ElencoPlayers.value & " " & _
"WHERE Products.Prod ID = " & me.Product.value & ";" 
dbs.execute strsql,dbfaionerror
DoCmd.Close acForm, "Form2"
Exit Salva Click: 
Exit Sub 
Err Salva Click: 
MsgBox Err.Description 
Resume Exit Salva Click 
End Sub 
attento a "Player ID" ....se c'� davvero lo spazio tra le parole e nn � un problema di viasualizzazione del mio browser allora diventa [Player ID]
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it

 attento a "Player ID" ....se c'è davvero lo spazio tra le parole e nn è un problema di viasualizzazione del mio browser allora diventa [Player ID]
sono io che mi sa che mi sono perso un _!