problemas con Update

jorge
24 de Noviembre del 2004
Tengo un problema al modificar un campo de la BD con la instrucción UPDATE. Al ejecutar el evento me envia el mensaje "Error de sintaxis en la instrucción Update". El c{odigo utilizado es el siguiente:

Public conecta As Connection
Dim actua As Command
Dim orden As String

Private Sub Command3_Click()
orden = "update usuario set password=? where login=?"
actua.CommandText = orden
actua.Parameters(0) = Text1.Text
actua.Parameters(1) = Text2.Text
actua.Execute
End Sub

Private Sub Form_Initialize()
ChDir App.Path
End Sub

Private Sub Form_Load()
Set conecta = New Connection
Set actua = New Command
With conecta
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "claves.mdb"
.Open
End With
With actua
.ActiveConnection = conecta
.CommandType = adCmdText
.Prepared = True
End With
End Sub

Baltasar
24 de Noviembre del 2004
Por lo que veo faltan las comillas:

orden = "update usuario set password='?' where login='?' "


krizall
24 de Noviembre del 2004
porque no lo haces asi:

orden= "update usuario set password='" & text1.text & "' where login='" & text2.text & "'"
actua.CommandText = orden
actua.Execute

tolotoco2001
24 de Noviembre del 2004
Jorge, dos cosas a tener en cuenta:

1.- Si el dato que pasas es alfanumérico debe ir entre comillas simples.
2.- Aparte del punto anterior, si los datos los pasas por parámetro, si quieres evitar problemas como el que te pasa, debes convertir los datos con CStr(valor) sean numéricos o alfanuméricos.

Prueba a hacerlo así:

orden = "UPDATE usuario SET password = '" + Cstr(Texto1.Text) + "' WHERE login = '" + Cstr(Text2.Text) + "'"

Ya me dirás que tal te va. Un saludo