Informe access no muestra todos el texto de un campo

Tengo un informe que se lanza desde un formulario previamente filtrado todo funciona correctamente, pero me di cuenta que tengo un campo descripción (Texto largo) y no muestra en el informe todo lo que se ha registrado en ese campo solo muestra parte de ello.

He probado cambiando las propiedades del campo de autoextensible en si y también insertando un subinforme sobre dicho campo y no consigo que me muestre todo el texto, por si tiene importancia el formulario de donde procede es un formulario continuo y los campos en el informe están dentro del detalle. Lo que muestra este informe son todos aquellos registros que cumplían los requisitos del filtro, y se van mostrando unos seguidos de otros.

Os pido ayuda porque me resulta raro ya que tengo un informe que lanzo desde un formulario filtrado por el id para imprimir solo ese registro activo y aqui si que me muestra todo lo que este en el campo descripción.

1 respuesta

Respuesta
1

Kike: Si tienes una consulta para el informe, creo que no te mostrará más de 250 caraceres aproximadamente.

Mira de hacer el informe directamente sobre la Tabla y creo que te los mostrará todos.

Mis saludos >> Jacinto

Muchas gracias Jacinto lo he comprobado y justo 253 como máximo me entran, lo tengo sobre una consulta porque tengo unos datos que están en otra tabla y asociados mediante un id en común en esa tabla me faltan unos datos.

Tu crees que si creo el formulario sobre la tabla directamente, y en el informe añado un subinforme basándome en el id en cuestión me funcionaria?.

Un saludo

Como bien dices tenia el formulario basado en una consulta en la cual aprovechaba para filtrar los resultados entre dos fecha mediante un formulario previo, este es el código que tenía en el campo fecha de la consulta:

>=[Formularios]![FConsultas]![txtDesde] Y <=[Formularios]![FConsultas]![txtHasta]

Ahora bien como le paso los parámetros desde el propio Formulario? en el cmd del formualrio que usaba para insertar las fechas tengo este codigo:

Private Sub cmdAbreFFiltros_Click()
    Dim vFD As Variant, vFH As Variant 
    vFD = Nz(Me.txtDesde.Value, 0)
    vFH = Nz(Me.txtHasta.Value, 0)
    If vFD = 0 Then
        MsgBox "No ha indicado la fecha inicial", vbInformation, "SIN FECHA"
        Exit Sub
    End If
    If vFH = 0 Then
        MsgBox "No ha indicado la fecha final", vbInformation, "SIN FECHA"
        Exit Sub
    End If
    DoCmd.OpenForm "FFiltroFechas1"
    DoCmd.Close acForm, "FInicio"
    With Forms!FFiltroFechas1
        .txtDesdeF.Value = vFD
        .txtHastaF.Value = vFH
    End With
End Sub

Como puedo solucionar esto para ver si de esta forma, puedo solucionar lo del campo descripcion?

Espero que me puedas ayudar porque abrir el formulario filtrado por codigo sin la consulta no se como hacerlo.

Gracias de antemano

Un saludo

Kike: Como no sé si solo lo vas a utilizar al abrir el Formulario o más vece, te pongo el código y lo pones en un Botón o donde lo necesitas.

Dim FiltroFechas As string

FiltroFechas = "FechaEntrega BETWEEN #" & Format(Nz(Me.DesdeFecha, #1/1/1900#), "mm/dd/yyyy") & _
"# AND #" & Format(Nz(Me.HastaFecha, #12/31/9999#), "mm/dd/yyyy") & "#"
If FiltroFechas <> "" Then
Me.Filter = FiltroFechas
Me.FilterOn = True
Else
Me.FilterOn = False
End If

Y si quieres quitar el filtro, en otro botón

Me.Filter = ""

Me.FilterOn = False

Espero no tengas dificultades. Mis saludos >> Jacinto

Kike: Aunque se me ha olvidado comentarte que tienes que sustituir.

FechaEntrega, DesdeFecha y HastaFecha por los nombres que tu tengas me imagino que así lo has entendido y abundando:

FechaEntrega >> será el Nombre del Campo de tu tabla y DesdeFecha y HastaFecha son los Nombres de Tus cuadros de Texto en el Formulario. Saludos >> Jacinto

Buenas noches, y gracias de antemano como siempre. He solucionado el problema simplemente cambiando el origen del informe y basándolo sobre la tabla directamente y aplicándole el filtro del formulario y aunque este basado en la consulta me funciona correctamente.

Pero por aprender algo nuevo he intentado realizar lo que me dijiste, primero basar el formulario sobre la tabla directamente y luego acoplar el código que me pasaste junto con el que yo tenia.

 Private Sub cmdAbreFFiltros_Click()
    Dim FiltroFechas As String
    Dim vFD As Variant, vFH As Variant
        vFD = Nz(Me.txtDesde.Value, 0)
        vFH = Nz(Me.txtHasta.Value, 0)
        FiltroFechas = "Fecha BETWEEN #" & Format(Nz(Me.txtDesde, #1/1/1900#), "mm/dd/yyyy") & _
    "# AND #" & Format(Nz(Me.txtHasta, #12/31/9999#), "mm/dd/yyyy") & "#"
    If vFD = 0 Then
        MsgBox "No ha indicado la fecha inicial", vbInformation, "SIN FECHA"
        Exit Sub
    End If
    If vFH = 0 Then
        MsgBox "No ha indicado la fecha final", vbInformation, "SIN FECHA"
        Exit Sub
    End If
    If FiltroFechas <> "" Then
        Me.Filter = FiltroFechas
        Me.FilterOn = True
        DoCmd.OpenForm "FFiltroFechas1"
         With Forms!FFiltroFechas1
                .txtDesdeF.Value = vFD
                .txtHastaF.Value = vFH
            End With
        Else
        Me.FilterOn = False
    End If

Ya que en el formulario que abre tengo dos campos txtDesde y txtHasta y coge los valores del formulario que uso para filtrar que es lo único que me funciona.

El campo por el que tengo que filtrar se llama Fecha y los campos del Formulario que uso para ello se llaman txtDesde y txtHasta, me he dado cuenta que no indico la Tabla (TDatos) en la cual están los datos a Filtrar y sobre el cual base ya el formulario.

Para que te hagas una pequeña idea:

Formulario FConsultas tiene dos campos txtDesde y txtHasta y un cmd en el cual puse el código que puse arriba y es el cual me debería de abrir el formulario FFiltroFechas1 el cual ya lo base en la tabla TDatos y en el cual están los campos con las fechas filtradas además de otro tipo de campos más para filtrar.

Un saludo

Kike: En lo que me citas estás duplicando instrucciones sin ninguna necesidad.

Ignoro la utilidad de dos Formularios, ya que los filtros a mi modo de ver deberían de estar todos en el Formulario final.

En cuanto al citar la Tabla, ya lo haces de Forma implicita en >>

FiltroFechas = "Fecha...

Y una Observación. El tener un Campo llamado Fecha puede causarte algún problema, por ser Fecha() una palabra reservada de Access.

Ya me contarás. Saludos >> Jacinto

Buenas noches Jacinto estoy trabajando en este problema que creía haber solucionado pero no es así todavía. He seguido su consejo y he basado el formulario directamente sobre la tabla y estoy intentando acoplar el código del filtro que tengo en el formulario junto con el de las fechas que me pasaste por separado funcionan correctamente pero claro si filtro las fechas y luego uso los otros campos pues de las fechas ya no hace caso, este es el código de los filtros que tengo dentro del icono de filtro:

Private Sub cmdFiltrar_Click()
    Dim vAccion As String
    Dim vMenor As String
    Dim vFamilia As String
    Dim vLargo As Integer
    Dim miFiltro As String
    vAccion = Nz(Me.cboAccion.Value, "")
    vMenor = Nz(Me.cboMenor.Value, "")
    vFamilia = Nz(Me.cboFamilia.Value, "")
    miFiltro = ""
    If vFechas <> "" Then
        miFiltro = miFiltro & " AND [Fecha]=#" & Format(vFecha, "mm/dd/yyyy") & "#"
    End If
    If vAccion <> "" Then
        miFiltro = "AND [Accion]='" & vAccion & "'"
    End If
    If vMenor <> "" Then
        miFiltro = miFiltro & "AND [Menor]='" & vMenor & "'"
    End If
    If vFamilia <> "" Then
        miFiltro = miFiltro & "AND [Familia]='" & vFamilia & "'"
    End If
    vLargo = Len(miFiltro)
    If vLargo > 0 Then
        miFiltro = Right(miFiltro, vLargo - 4)
    End If
    Me.Filter = miFiltro
    Me.FilterOn = True
    

 Y esta una imagen para que te hagas una idea

Pues bien he intentado mezclar ambos códigos el que tu me pasaste (que lo puse en el cmd que se ve y funciona correctamente) y el otro código para que sume todos los filtros primero filtrar entre fechas y luego ir filtrando según necesite pero siempre dentro de ese rango de Fechas.

Private Sub cmdFiltrar_Click()
    Dim vFechas As String
    Dim vAccion As String
    Dim vMenor As String
    Dim vFamilia As String
    Dim vLargo As Integer
    Dim miFiltro As String
    vAccion = Nz(Me.cboAccion.Value, "")
    vMenor = Nz(Me.cboMenor.Value, "")
    vFamilia = Nz(Me.cboFamilia.Value, "")
    vFechas = "Fecha BETWEEN #" & Format(Nz(Me.txtDesdeF, #1/1/1900#), "mm/dd/yyyy") & _
                "# AND #" & Format(Nz(Me.txtHastaF, #12/31/9999#), "mm/dd/yyyy") & "#"
    miFiltro = ""
    If vFechas <> "" Then
        miFiltro = miFiltro & " AND [Fecha]=#" & Format(vFecha, "mm/dd/yyyy") & "#"
    End If
    If vAccion <> "" Then
        miFiltro = "AND [Accion]='" & vAccion & "'"
    End If
    If vMenor <> "" Then
        miFiltro = miFiltro & "AND [Menor]='" & vMenor & "'"
    End If
    If vFamilia <> "" Then
        miFiltro = miFiltro & "AND [Familia]='" & vFamilia & "'"
    End If
    vLargo = Len(miFiltro)
    If vLargo > 0 Then
        miFiltro = Right(miFiltro, vLargo - 4)
    End If
    Me.Filter = miFiltro
    Me.FilterOn = True
End Sub

y si no uso las fechas funciona correctamente pero cada vez que las uso me da este error:

y me marca linea de Me.Filter=miFiltro

Espero que me pueda ayudar a solucionarlo.

Un saludo

En el código hay un error que corregí en esta línea:

If vFechas <> "" Then
        miFiltro = miFiltro & " AND [Fecha]=#" & Format(vFechas, "mm/dd/yyyy") & "#"
    End If

Pero me da el mismo error

Kike: No veo de donde sale esa parte de la línea

miFiltro = miFiltro & " AND [Fecha]=#" & Format(vFechas, "mm/dd/yyyy") & "#"

pon ésto:

miFiltro = MiFiltro & vFechas

Saludos >> Jacinto

Lo he probado he dejado el código así como me dices:

Private Sub cmdFiltrar_Click()
    Dim vFechas As String
    Dim vAccion As String
    Dim vMenor As String
    Dim vFamilia As String
    Dim vLargo As Integer
    Dim miFiltro As String
    vAccion = Nz(Me.cboAccion.Value, "")
    vMenor = Nz(Me.cboMenor.Value, "")
    vFamilia = Nz(Me.cboFamilia.Value, "")
    vFechas = "Fecha BETWEEN #" & Format(Nz(Me.txtDesdeF, #1/1/1900#), "mm/dd/yyyy") & _
                "# AND #" & Format(Nz(Me.txtHastaF, #12/31/9999#), "mm/dd/yyyy") & "#"
    miFiltro = ""
    If vFechas <> "" Then
        miFiltro = miFiltro & vFechas
    End If
    If vAccion <> "" Then
        miFiltro = "AND [Accion]='" & vAccion & "'"
    End If
    If vMenor <> "" Then
        miFiltro = miFiltro & "AND [Menor]='" & vMenor & "'"
    End If
    If vFamilia <> "" Then
        miFiltro = miFiltro & "AND [Familia]='" & vFamilia & "'"
    End If
    vLargo = Len(miFiltro)
    If vLargo > 0 Then
        miFiltro = Right(miFiltro, vLargo - 4)
    End If
    Me.Filter = miFiltro
    Me.FilterOn = True
End Sub

y pongo dos fechas y me sale este imputbox con la letra a:

Si sabes de otra solución para resolver esto estoy dispuesto a cambiarlo de la otra forma al tenerlo en una consulta solo me daba en el formulario los resultados de esa tabla entre esas dos fechas y luego allí aplicaba los filtros.

Como te dije ayer creía haberlo solucionado dejando así pero el informe basandolo en la tabla directamente (para que me escribiera todo el campo texto largo) pasándole el filtro a la hora de abrirlo con este código:

Private Sub cmdImprimir_Click()
    DoCmd.OpenReport "InfFiltroFechas", acViewPreview, , Me.Filter
End Sub

Pero me di cuenta que me filtraba los resultados pero no me respetaba el rango de fechas, por eso intente adaptarlo de esta forma y con este nuevo codigo pero veo que no es tan sencillo.

Gracias por ayudarme de verdad te lo agradezco mucho.

Kike: Justo iba a cerrar el Pc y he visto tu mensaje.

Mañana me haré un resument y le dedico un rato. Te comentaré.

Mis saludos >> Jacinto

Kike: Después de revisar el historial de la pregunta, creo que lo mejor es que veas y apliques si quieres, el código completo de Filtrado, confección de una Tabla temporal etc., hasta la salida de un informe.

Tengo dos ejemplos, muy parecidos que puedes ver en:

http://www.mediafire.com/download/31xj4jpn6r48yq7/BDIngSocial_00.rar 

y éste otro

http://www.mediafire.com/download/j2tnbpvxs61inpz/BDIngSocial_02.rar 

Además si lo quieres utilizar, hay una forma de ordenar, Filtro alfabético...

Mira en los controles ocultos, porque hay Combos vacíos que puedes utilizar haciendolos visibles. A partir de ahí y sobre el código, si tienes dudas las podemos comentar.

Mis saludos >> Jacinto

Buenas tardes Jacinto:

He estado echando un ojo a tus ejemplos y me parecen interesantes pero he visto que el filtro de las fechas funciona independientemente de los demás. Los otros filtros si son sumatorios pero las fechas ya no cuentan al usarlo y yo lo que quería es que si contaran es decir filtrar entre dos fechas y que luego los filtros que hay se apliquen dentro de ese rango de fechas.

Te paso un ejemplo de la bd con el formulario en concreto y el informe para que le eches un vistazo y veas lo que intento explicarte.

el FConsultas es como lo tenia yo en un principio le paso mediante un formulario las fechas a la consulta y esta abre el formulario filtrado, luego aquí yo usaba los demás filtros y siempre se regían entre los rangos de fechas marcados, pero me encontré con el problema de que no me escribía más de 250 caracteres en un campo por lo que base el informe directamente sobre la tabla y le pase el filtro y me lo escribe todos los caracteres en el campo deseado pero me pasa el filtro que yo haga si pero sin respetar el rango de Fechas que haya marcado es decir me saca todos los registro que coincidan con el filtro sin respetar el rango de fechas.

Te añadí luego el formulario FFiltroFechas_Modificando que es el que use para intentar aplicar el codigo que miramos ayer pero no consigo que me funcione.

Te dejo el enlace para ver si hice algo mal en el codigo y veas como se comporta la bd que igual es más simple de lo que parece.

https://mega.nz/#!1hskFILJ!4htex01yk59-CMhDuU2KtC2d6VmsRkoddxm6pmhb-Uo

Muchas gracias por todo de verdad con estos ejemplos sacare gran partido para mis conocimientos.

De acuerdo Kike: Le doy una mirada y te contesto. Saludos >> Jacinto

¡Gracias! 

Kike: Al final, en lugar de ir repasando y probando errores, he preferido hacerte el filtro completo y así te sirve de base para otros casos que puedas necesitar.

Lo he probado con unos cuantos valores y me

Lo primero Muchísimas Gracias de verdad seguro que me servirá para el futuro y intentare comprender como se hace para no tener estos problemas más adelante.

Me lo podrías mandar? Creo que se te olvido el enlace

Kike: Mis disculpas, porque justo te contesté para ponerte el enlace y no te lo hepuesto.

http://www.mediafire.com/download/3ul2211no530sj0/BaseKikeFiltro.rar 

Mis saludos >> Jacinto

¡Gracias! y mil gracias he estado ojeando el codigo y  es mas complejo que el que tenía. Funciona Correctamente y el informe también. Voy a detenerme mañana en el codigo más detenidamente e intentare crear algo yo distinto para intentar comprender el funcionamiento del mismo. Si te parece bien podríamos tener esta respuesta abierta un dar de días como mucho por si me surgen dudas sobre el código?

Por curiosidad el filtro que yo estaba usando encadenarlo con las fechas como quería sería posible o sería más complejo que de esta forma, aunque ya se que cada cosa se puede realizar de muchas formas.

De nuevo muchas gracias y una cosa más aprendida.

Un saludo

Kike: No te preocupe el repreguntar.

El método que estabas utilizando es muy válido, pero dado que tengo bastante facilidad con el que te he enviado y se trataba que de momento salieras he preferido hacertelo con el que yo utilizo.

Ahora con más calma me miraré la causa por la que no funcionaba el que me has enviado. Lo corregiré y ya sea en éste hilo o en alguno que vea tuyo te haré mención y te facilitaré el enlace pero será dentro de unos días porque voy un poco justo de tiempo.

Mis saludos >> Jacinto

Muchas gracias, por ser tan amable intentare familiarizarme también con este método para ampliar conocimientos.

gracias por intentar encontrar el error en ese método  cuando tengas tiempo para tener más posibilidades y conocimientos sobre filtros

Saludos

Kike: Ya que parece que tú estás bastante acostumbrado al tipo Original de Filtro que me enviaste, te pongo el enlace con el problema que tenías solucionado.

Quería mejorarte un poco más el diseño de tu BD, pero por cuestiones de tiempo no he seguido profundizando en el análisis. Mira, porque algo he modificado.

http://www.mediafire.com/download/w3gtxtakxe5gyx0/BaseKikeSusFiltros.rar 

Mis saludos >> Jacinto

¡Gracias! ¿Me podrías dar un mail donde preguntarte otra cosa? Mándame un mail al mio [email protected] si lo prefieres.

Muchas gracias le echo un ojo para ver los cambios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas