Access - Error 3144 Error de sintaxis en la instriccion Update

 
Vista:
sin imagen de perfil
Val: 20
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Error 3144 Error de sintaxis en la instriccion Update

Publicado por Jose (10 intervenciones) el 03/07/2018 05:39:33
Buenas noche, Al querer editar un registro me genera error 3144, lo que pretendo es desde el cuadro de lista pinchar un registro con el evento click los pasa a las cajas de texto, luego con el boton editar guardo los cambios, alguien que me ayude por favor.
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

Error 3144 Error de sintaxis en la instriccion Update

Publicado por Anonimo (2079 intervenciones) el 03/07/2018 09:18:59
Analizando la tabla (en particular los campos declarados como de tipo MEMO) se aprecia que la longitudes máximas cuantificables son:

Campo 'Nombre' ==> 124 caracteres
Campo 'Giro' ==> supera el tamaño de 255 caracteres
Campo 'Dirección' ==> 72 caracteres

Es el diseñador el que define lo que desea o necesita, pero si se admite una opinión:

.- se debería analizar la necesidad de utilizar campos de tipo MEMO para cualquier uso que no sea un 'cuarto de los trastos', pues cualquier manipulación (de los campos de tipo MEMO) requiere tratamiento especial (no actúan de forma correcta con ellos las funciones incorporadas en Access)
.- en el supuesto mejor de los casos, recortarían su contexto al tamaño máximo de un campo alfanumérico (255 caracteres, el byte 256 lo requiere internamente Access para definir el tipo)

Se debería replantear el diseño de las tablas lo antes posible, con el fin de poder seguir avanzando en la construcción de una base solida.

Sobre el tratamiento de campos de tipo Memo y su uso/aplicación hay mucha literatura (Access tiene unos 26 años y mucha historia escrita).
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
Imágen de perfil de Antoni Masana
Val: 78
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Error 3144 Error de sintaxis en la instriccion Update

Publicado por Antoni Masana (31 intervenciones) el 03/07/2018 13:04:22
Sobre el error creo que la causa es la coma después del último campo (TIPO CUENTA) y antes del WHERE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub cmdeditar_Click()
'On Error Resume Next
 
 Dim StrSQl As String
 
    StrSQl = "Update T_proveedores" & _
    " Set Nombre= '" & Me.txtNombre & "', " & _
    " Giro= '" & Me.txtGiro & "', " & _
    " Direccion= '" & Me.txtDireccion & "', " & _
    " Ciudad= '" & Me.txtCiudad & "', " & _
    " Comuna= '" & Me.txtcomuna & "', " & _
    " Telefono= '" & Me.txtTelefono & "', " & _
    " Correo= '" & Me.txtCorreo & "', " & _
    " Cnta_Corriente= '" & Me.txtCnta_Corriente & "', " & _
    " Banco= '" & Me.txtBanco & "', " & _
    " Tipo_Cuenta= '" & Me.txtTipo_Cuenta & "', " & _
    " Where Rut = '" & Me.txtRut & "'"


Si la quitas ya no da error, el resto lo desconozco, si graba o no.

Saludos.
\\//_
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
Val: 20
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Error 3144 Error de sintaxis en la instriccion Update

Publicado por Jose (10 intervenciones) el 03/07/2018 15:19:25
Excelente Antoni muchas gracias por su ayuda, funciona perfecto.
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
sin imagen de perfil
Val: 20
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Error 3144 Error de sintaxis en la instriccion Update

Publicado por Jose (10 intervenciones) el 03/07/2018 17:48:56
Antoni ahora tengo otra consulta con otra tabla que quiero actualizar, el código anterior trataba solo cadenas de texto, pero como se trata que un campo sea numérico ¿?, en este caso el campo codigo_cuenta y COD_CLASIFICACION son numéricos en mi tabla y al tratar de actualizar ahora me genera el error "3464 no coinciden los tipos de datos en la expresion de criterios", soy novato en esto es por eso tanta consulta. De ante mano gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub cmdeditar_Click()
Dim StrSQl As String
Dim ok As String
Dim mensaje As String
 
    ok = MsgBox("Esta seguro de guardar los cambios", vbYesNo + vbCritical)
    If ok = vbYes Then
    cmdeditar.Enabled = True
 
    StrSQl = "Update T_Plan" & _
    " Set Cuenta= '" & Me.cuenta & "', " & _
    " Gestion= '" & Me.txtgestion & "', " & _
    " COD_CLASIFICACION= '" & Me.CodClasificacion & "'" & _
    " Where Codigo_Cuenta = '" & Me.CodigoCuenta & "'"
    CurrentDb.Execute StrSQl, dbFailOnError
 
 
     mensaje = MsgBox("Cuenta Editada correctamente", vbInformation)
     lstItems.Requery
 
    Call DesabilitarTexto
    cmdNuevo.Enabled = True
    cmdeditar.Enabled = False
    cmdCancelar.Enabled = False
    cmdBorrar.Enabled = True
 
    Else
    DoCmd.CancelEvent
End If
End Sub
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
sin imagen de perfil
Val: 20
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Error 3144 Error de sintaxis en la instriccion Update

Publicado por Jose (10 intervenciones) el 03/07/2018 18:31:07
Ya lo solucione, elimine las comillas simples, de a poco voy aprendiendo.
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