Sangría, registro de datos

Dudas sobre cualquier tema relacionado con Access que no tenga cabida expresa en los otros hilos
spider1386
Nivel 2
Mensajes: 35
Registrado: Jue Ene 28, 2016 9:58 pm

Sangría, registro de datos

Mensajepor spider1386 » Mar Jun 21, 2022 6:02 pm

Muy buenos días, tardes para la comunidad Europea, como siempre muchas gracias por compartir sus conocimientos agradezco me pueden ilustrar con respecto a el almacenamiento de datos en una BD, resulta que al ejecutar una Query para la inserción de datos a una tabla, esta query al ejecutarse, le coloca una sangría o un espacio a los registros ingresados, en la base de datos (tablas )he buscado por internet pero No logro dar como eliminar esta sangría, ¿ como se elimina la sangría que aplica vba en access?

Avatar de Usuario
Neckkito
Moderador
Mensajes: 1244
Registrado: Dom Oct 25, 2015 3:42 pm

Re: Sangría, registro de datos

Mensajepor Neckkito » Mar Jun 21, 2022 7:05 pm

Hola!

Ante todo decirte que las consultas de Access no se inventan nada: si te colocan espacios (porque imagino que de lo que se trata son espacios iniciales y no sangrías) es porque los datos originales los tienen, los veas o no.

Busca información sobre la función LTrim(). Puedes echar un ojo aquí: https://is.gd/aQBE8l

Si, como supongo, es tema de espacios, aplica la función LTrim() a tu consulta y ya debería solucionarse.

Saludos.
Access MVP 2017-2022
http://bit.ly/NckAccess

spider1386
Nivel 2
Mensajes: 35
Registrado: Jue Ene 28, 2016 9:58 pm

Re: Sangría, registro de datos

Mensajepor spider1386 » Vie Jun 24, 2022 10:39 pm

Hola Neckkito muchas gracias por tu respuesta, primero.. te doy las gracias por que yo aprendí a programar con tu de VBA, fenomenal, ya lei la estructura de la función LTrim, pero no se como acomodar la en mi código, es algo muy simple lo que yo tengo, te referencio e código igual no quita el espacio en la base de datos al aplicar la función.

Private Sub btnCrear_Click()
DoCmd.SetWarnings False
Dim qry As String
qry = LTrim(" INSERT INTO tbl_cl(Cliente) VALUES (' " & Me.txtCli.Value & " ' ) ")
If IsNull(Me.txtCli.Value) Then
MsgBox "Debes Ingresar Un Cliente Valido", vbCritical, "IDISOFT"
Else
DoCmd.RunSQL qry
Me.txtCli.Value = Null
MsgBox " Registro Satisfactorio", vbInformation, "IDISOFT "
End If
End Sub
Adjuntos
fotico.png
fotico.png (9.07 KiB) Visto 545 veces

Avatar de Usuario
Neckkito
Moderador
Mensajes: 1244
Registrado: Dom Oct 25, 2015 3:42 pm

Re: Sangría, registro de datos

Mensajepor Neckkito » Sab Jun 25, 2022 11:58 am

Hola!

Visto tu código, permíteme un par de comentarios:

1.- El espacio se introduce porque tú le dices que se introduzca. Eso lo haces porque, después de la comilla simple de apertura y antes de la comilla simple de cierre, dejas un espacio. Es decir, y situadas las ubicaciones en rojo: qry = " INSERT INTO tbl_cl(Cliente) VALUES (' " & Me.txtCli.Value & " ' ) "). También dejas un espacio antes del INSERT. Esto último no tiene mayor importancia, pero duele a los ojos.

2.- La solución sería tan simple como construir tu query así:

Código: Seleccionar todo

qry = "INSERT INTO tbl_cl(Cliente) VALUES ('" & Me.txtCli.Value & "')")


3.- Desactivas los warnings y después no los vuelves a activar. Eso hace que se desactiven los warnings PARA TODA LA APLICACIÓN, no solo para el código de ese evento. Es IMPORTANTÍSIMO volver a activar los Warnings si los desactivas.

4.- Siguiendo con lo anterior, si hubiera algún error en tu código antes de la ejecución de la SQL no te enterarías porque Access no te avisaría del error, y no te avisa porque tú has desactivado los warnings. Si el código fuera más complicado te volverías loco intentando averiguar por qué no funciona. Moraleja: desactiva los warnings justo antes de la instrucción que te provoca el aviso y no al principio del código. Es decir, elimina el docmd.set warnings de donde lo tienes (primera línea) y ponlo así:

Código: Seleccionar todo

docmd.setwarnings false
DoCmd.RunSQL qry
docmd.setwarnings true


Conclusión: los espacios SÍ SON IMPORTANTES en VBA.

Saludos.
Access MVP 2017-2022
http://bit.ly/NckAccess

spider1386
Nivel 2
Mensajes: 35
Registrado: Jue Ene 28, 2016 9:58 pm

Re: Sangría, registro de datos

Mensajepor spider1386 » Lun Jun 27, 2022 10:28 pm

Muchas gracias, comentarios aceptados y ya quedo solucionado, te agradezco enorme mente todos tus conocimientos, muchas gracias.


Volver a “Cajón de sastre”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados