Access - Consulta

 
Vista:

Consulta

Publicado por Juancho (20 intervenciones) el 26/02/2007 15:20:17
Buenas,
Esyoy haciendo una consulta de datos anexos pero no entiendo porque no funciona, la sentencia SQL es esta

INSERT INTO Colorante (IdColorante, DescColorante) VALUES (600,Me.cmbDescColor.Value)

El primer campo es numerico y el segundo de texto, ya intenté convirtiendo el campo texto a texto con Cstr(), pero tampoco funciona, y si lo hago de la siguiente manera si funciona

INSERT INTO Colorante (IdColorante, DescColorante) VALUES (600,'Rojo')

pero si coloco la referencia al contenido del campo por medio de una variable funciona a medias porque de todas maneras me pregunta por la descripcion del color al momento de realizar la insercion, se lo coloco y realiza la insercion bien.

Me pueden explicar por qué sucede esto, también tengo el mismo problema al tratar de insertar fechas (DateTimePicker), me pueden colocar un ejemplo porfis!!!

GRACIAS!!!
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 Alejandro

Cómo insertar datos anexos con parámetros en consultas SQL

Publicado por Alejandro (4142 intervenciones) el 03/08/2023 19:49:16
Buenas, Juancho.

El problema que estás experimentando al intentar insertar datos anexos en una consulta se debe a cómo Access maneja los parámetros y las variables en una sentencia SQL. En tu consulta original, estás usando una referencia a un control del formulario para obtener el valor del campo "DescColorante" en lugar de un valor literal, lo cual puede estar causando el comportamiento inesperado.

Para resolver este problema, debes usar parámetros en la consulta para proporcionar los valores de los campos de forma segura. Aquí te muestro cómo hacerlo:

Para el caso del campo de texto "DescColorante":

1
INSERT INTO Colorante (IdColorante, DescColorante) VALUES (600, [Ingrese el nombre del color])

En este caso, Access te preguntará por el valor del campo "DescColorante" cuando ejecutes la consulta y te dará la opción de ingresar el nombre del color.

Para evitar que Access pregunte por el valor, debes crear un parámetro en la consulta. Veamos cómo hacerlo:

1
INSERT INTO Colorante (IdColorante, DescColorante) VALUES (600, [Ingrese el nombre del color: ])

Cuando ejecutes esta consulta, Access te pedirá que ingreses el valor del campo "DescColorante" en el cuadro de diálogo de parámetros.

Para el caso de fechas, el procedimiento es similar:

1
INSERT INTO Tabla (CampoFecha) VALUES ([Ingrese la fecha: ])

De esta manera, Access te pedirá que ingreses la fecha en el formato correcto cuando ejecutes la consulta.

Con respecto a la inserción de fechas desde un control DateTimePicker, puedes hacerlo de la siguiente manera:

1
INSERT INTO Tabla (CampoFecha) VALUES (#" & Format(Me.DateTimePicker.Value, "yyyy-mm-dd") & "#)

En este ejemplo, el control DateTimePicker se encuentra en el formulario y se accede a su valor usando "Me.DateTimePicker.Value". La función "Format" se utiliza para formatear la fecha en el formato correcto para Access.

Espero que estas explicaciones te ayuden a resolver tus problemas con las consultas y las inserciones de datos en Access. ¡Buena suerte!
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