Access - UpDate

 
Vista:
sin imagen de perfil

UpDate

Publicado por Jose (3 intervenciones) el 25/08/2022 20:00:33
Tengo el siguiente código en un boton y las variables que no estén estan declaradas como Global en un Módulo.
Recibo los datos bien pero cuando se ejecuta el UdDate, pongo el código

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
On Error GoTo Err_Comando6_Click
 
    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim SQL As String
    Dim NewEstado
    Dim OldEstado
    NewEstado = 1
    OldEstado = 0
 
MsgBox "Pruebas de Caja  ... Mesa: " & Mesa & " AND Estado: " & Estado & " AND IdPedido: " & IdPedido & " AND NewEstado: " & NewEstado
 
DoCmd.SetWarnings False 'Desactivar mensajes del sistema
SQL = "UPDATE Pedidos SET Estado = '1' WHERE IdPedido =  IdPedido "
DoCmd.RunSQL SQL
DoCmd.SetWarnings True 'Activar mensajes del sistema
 
    stDocName = "Comandas"
 
    MsgBox "El Importe ha sido grabado con EXITO.", vbCritical, "Aceptar"
 
    DoCmd.GoToRecord , stDocName, acNewRec
    DoCmd.Close
Me cambia los valores en toda la tabla Pedidos. He probado todas, o casi todas, las comibaciones de escribir el código, y la que no da error no funciona.
Me esta sacando de quicio
Gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Eduardo

UpDate

Publicado por Eduardo (317 intervenciones) el 25/08/2022 23:02:58
Revise esta línea

SQL = "UPDATE Pedidos SET Estado = '1' WHERE IdPedido = IdPedido "

Cámbiela por:
1
SQL = "UPDATE Pedidos SET Estado = '1' WHERE IdPedido = " &  IdPedido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

UpDate

Publicado por Anonimo (3316 intervenciones) el 26/08/2022 01:52:22
No puede evaluar la condición por estar la referencia dentro de las comillas (la considerara un texto).

Hay un detalle que puede dar error, se dimensionan dos variables (NewEstado, OldEstado) como variant y se les asigna un valor numérico.

En la SQL al campo Estado se le asigna el valor como texto (es solo una impresión, quizás nada los relacione)

Para evitar los mensajes utilizaría este método:

---- original---
DoCmd.SetWarnings False 'Desactivar mensajes del sistema
SQL = "UPDATE Pedidos SET Estado = '1' WHERE IdPedido = IdPedido "
DoCmd.RunSQL SQL
DoCmd.SetWarnings True 'Activar mensajes del sistema

---- alternativa ---
-- Se presupone que el referente (idPedido) es un objeto del formulario y (Estado) es de tipo numérico --

SQL = "UPDATE Pedidos SET Estado = 1 WHERE IdPedido = " & Me.IdPedido
CurrentDb.Execute SQL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

UpDate

Publicado por Jose (3 intervenciones) el 26/08/2022 14:01:54
Maestro, Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar