Access - Error 3059

   
Vista:

Error 3059

Publicado por Jose (42 intervenciones) el 28/08/2017 19:39:28
Hola tengo una duda sobre el el error 3059: "Operación cancelada por el usuario."

Intento agregar registros a una de mis tablas y me aparece este error. Lo estoy realizando por un botón de enviar para poder mandar los registros aquí les dejo lo que tengo como código y una foto del error.

1
2
3
4
5
6
7
8
9
Private Sub Comando4_Click()
 
    Dim instruccion As String
 
    instruccion = "INSERT INTO Abrir_caso (OT,Fecha_Inicio, Hora_Inicio, Codigo_Componente, Codigo_Equipo, Componente, Equipo, Tipo_Intervencion) VALUES (c_ot,c_fecha,c_hora,c_codcomp,c_codequipo,c_comp,c_equipo,c_tipoint)"
 
    DoCmd.RunSQL instruccion, False
 
End Sub

3059
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 3059

Publicado por Anonimo (814 intervenciones) el 29/08/2017 10:23:01
Un consejo (para que lo puedas apreciar con claridad):

tras asignar el valor a la variable y ANTES de ejecutar la SQL añade esta línea (es para mostrar el contenido de la variable):
Msgbox instruccion


Y después tomate tu tiempo para reconstruir la lista de valores ya que Access en VBA espera que se lo den bien cocinado (y tiene la buena costumbre de no modificar los textos entre comillas, tras analizar si es correcta su sintaxis: los ejecuta 'tal cual')
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 Oscar Pérez

Error 3059

Publicado por Oscar Pérez (73 intervenciones) el 29/08/2017 15:45:16
Buenas!

A mi cómo siempre me gusta la simplicidad lo resumiría en una única línea, pero ojo, una vez depurado el insert y bien construido, porque lo que te falla es la construcción del sql.

No es tan fácil como mirar google y copiar el primer resultado... XD

1
Docmd.RunSQL("INSERT INTO Abrir_caso (OT,Fecha_Inicio, Hora_Inicio, Codigo_Componente, Codigo_Equipo, Componente, Equipo, Tipo_Intervencion) VALUES (" & c_ot & ",'" & c_fecha & "','" & c_hora & "','" & c_codcomp & "'," & c_codequipo & ",'" & c_comp & "','" & c_equipo & "'," & c_tipoint & "'" & )")

Te da error porque... no puedes utilizar las variables de un formulario directamente en una sentencia SQL (Sí, si las pones con forms!formulario!campo). Pero también te dá error porque en los campos de texto has de poner comillas simples al inicio y al final.

Saludos!
Óscar.
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

Error 3059

Publicado por Anonimo (814 intervenciones) el 29/08/2017 21:42:21
No tengo nada claro lo de que la referencia a los objetos de un formulario (utilizadas en el propio formulario) necesiten una referencia absoluta y no funcionen con una referencia relativa .....

Me atrevería a decir que es mas 'rápido' localizar a un objeto del formulario con 'Me.' que con un 'Forms.nombreFormulario.'

En uno (la absoluta) ha de localizar el objeto recorriendo toda la jerarquía , en el otro (la relativa ==> Me) el entorno es mas próximo y el conjunto en el que localizar algo es mas pequeño.

Dejemos a un lado que la construcción sea 'la correcta', porque (por ejemplo) a unos campos que parecen ser de tipo date (c_hora como referente) se le ha 'tratado como texto' (y eso no es una comida bien cocinada), aceptaría que tras la adecuada conversión se le pasase como numero (por ejemplo en lugar de "9:00" ==> 9/24 o también 0,375 y si no como es lo clasico: #9:00#)
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

Error 3059

Publicado por Raul (19 intervenciones) el 06/09/2017 08:33:18
Yo creo que te faltan """" y &&&.

Pero ademas que se supone que tiene que hacer el texto...
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
Revisar política de publicidad