Como evitar que una “coma” (,) altere el orden de inserción de campos en Access y VBA

Señores buen día, tarde o noche …

Estoy programando con Access y VBA y tengo el siguiente problema.

Tengo una tabla llamada “tblAlumno” con la siguiente estructura.

id_alumno

Nombre

Apellido

Domicilio

Grupo

Tengo un formulario con sus respectivas cajas de texto y con los valores que intento guardar (Muestro una imagen)

txt_idalumno: 1

txt_nombre: Juan

txt_apellido: Pérez

txt_domicilio: Calle el Pedregal, Interior 8

txt_grupo: 1E

Ejecuto la instrucción INSERT al presionar el botón “Guardar”, para registrar el contenido de los TextBox en la Tabla. (Muestro mi instrucción para guardar los datos)

Dim guardaAlumno as string
guardaAlumno = “INSERT INTO  tblAlumno”
guardaAlumno =  guardaAlumno  & “ (id_alumno, nombre, apellido, domicilio, grupo)”
guardaAlumno =  guardaAlumno  & ” VALUES”
guardaAlumno =  guardaAlumno  & “ ( “ & txt_idalumno & ”, ‘” & txt_nombre & ”’, ‘” & txt_apellido & ”’, ‘” & txt_domicilio & ”’, ‘” & txt_grupo & ”’ )”
DoCmd. RunSQL guardaAlumno

Y es aquí donde está el problema, ya que al revisar los valores insertados en la tabla me muestra los siguientes datos:

Idalumno: 1

Nombre: Juan

Apellido: Pérez

Domicilio: Calle el Pedregal

Grupo: Interior 8

Marco con Negritas y Cursiva el campo “Domicilio” y “Grupo” ya que parte del “Domicilio” aparece en el campo de “grupo” y esto es debido a la “Coma” (,) que se ingresó en txt_Domicilio.

Tenengo otro formulario en donde agrego texto con “comas” (,) y no me muestra este problema.

¿Alguien tiene alguna sugerencia?

Quizá estoy realizando algún proceso inadecuado que no logro ver.

Espero no ser confuso con la explicación pero llevo un par de días y no logro resolverlo

De antemano gracias, saludos…

.

.

.

1 respuesta

Respuesta
2

Acabo de probar tu código, en una BD con una tabla y un formulario con los mismos nombres, y después de reemplazar las comillas dobles y sencillas (las que pones en el código son un poco "extrañas"), funciona correctamente:

Dim guardaAlumno as string
guardaAlumno = "INSERT INTO  tblAlumno"
guardaAlumno =  guardaAlumno  & " (id_alumno, nombre, apellido, domicilio, grupo)"
guardaAlumno =  guardaAlumno  & " VALUES"
guardaAlumno =  guardaAlumno  & " ( " & txt_idalumno & ", '" & txt_nombre & "', '" & txt_apellido & "', '" & txt_domicilio & "', '" & txt_grupo & "' )"
DoCmd. RunSQL guardaAlumno

Amigo, gracias por tu tiempo.
Las comillas son un poco extrañas ya que ese código lo tenia escrito en "Microsoft Word" y lo copie a esta página. (Cabe mencionar que esas comillas no están en VBA)
Sin embargo, voy a realizar nuevamente la prueba, ya que en el formulario al ingresar un registro en el campo "Domicilio" me sigue separando la información escrita si se agrega una coma (,).
Incluso, al realizar una consulta de tblAlumno e intentar mostrarla en el formulario, parte del campo "Domicilio" se muestra en el Textbox "txt_grupo".
De antemano gracias por la respuesta y ojala puedas darme algún otra sugerencia

Saludos

.

.

.

Para hacer una prueba y ver la SQL que te genera, cambia DoCmd. RunSQL guardaAlumno por Debug. Print guardaAlumno, vete a la ventana de inmediato (Alt+F5 en el editor de VBA) y ponme aquí la SQL que te genera el código con los datos del ejemplo.

Tendría que quedarte así:

INSERT INTO  tblAlumno (id_alumno, nombre, apellido, domicilio, grupo) VALUES (1, 'Juan', 'Pérez', 'Calle el Pedregal, Interior 8', '1E')

Y esa consulta funciona perfectamente (comprobado de nuevo)

También la puedes probar pegando esa SQL en la vista SQL de una consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas