problemas con Update
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
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
Por lo que veo faltan las comillas:
orden = "update usuario set password='?' where login='?' "
orden = "update usuario set password='?' where login='?' "
porque no lo haces asi:
orden= "update usuario set password='" & text1.text & "' where login='" & text2.text & "'"
actua.CommandText = orden
actua.Execute
orden= "update usuario set password='" & text1.text & "' where login='" & text2.text & "'"
actua.CommandText = orden
actua.Execute
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
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
