Actualizar campo por vba

Por medio de un formulario en el evento al dar doble click, he puesto el siguiente código:

Set dbs = CurrentDb
str = "UPDATE ChequeoPedido SET ChequeoPedido.Chequeo = True"
str = str & " WHERE IdPedido=" & Forms!ControlReservasSub!IdPedido
Dbs. Execute (str)

Es decir, en la tabla ChequeoPedido busque el campo Chequeo y colóquelo verdadero, al registro que he seleccionado en el formulario ControlReservasSub, o al menos es lo que pienso.

El problema es que arroja un error "Error de sintanxis (falta operador) en la expresión de la consulta "IdPedido=el registro que he seleccionado" y se frena el código en dbs.Execute(str)

Por favor ayudame llevo toda la mañana con esto

1 Respuesta

Respuesta
5

Prueba así:

str="UPDATE ChequeoPedido SET Chequeo = True "

str=str & "WHERE IdPedido=" & Forms!ControlReservasSub.IdPedido.Value

Dbs. Execute str

O prueba con DoCmd. RunSQL str.

Buenos días, al parecer el problema radica en que el IdPedido es un campo de texto y no de numero, lo he probado creando un campo numero y funciona, pero lo necesito con el campo texto.

Entonces pon:

str=str & "WHERE IdPedido='" & Forms!ControlReservasSub.IdPedido.Value & "'"

No funciona, sigue saliendo error

Cambiemos de método:

Dim dbs as Database

Dim rst as Recordset

Dim miPedido as string

Dim Crit as string

miPedido=Forms!ControlReservasSub.IdPedido.Value

set dbs=CurrentDB

set rst = dbs.OpenRecordset("ChequeoPedido",dbOpenDynaset)

Crit="[IDPedido]='" & miPedido & "'"

rst.FindFirst Crit

rst.edit

rst("Chequeo").Value=True

rst.Update

rst.Close

dbs.Close

set rst=Nothing

set dbs=Nothing

Todo esto suponiendo que el IdPedido es único.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas