Access - Campos en informe access

   
Vista:

Campos en informe access

Publicado por salvaorama (9 intervenciones) el 27/07/2009 10:45:16
He diseñado un informe en access en el que un campo para texto le he asignado el tipo "memo" porque en ocasiones es necesario introducir más de 255 caracteres. Me surgen dos problemas:
1- ¿Cómo puedo hacer que este campo quede justificado a derecha e izquierda, es decir, con justificación completa como en word? En las propiedades sólo da opción para alinear a izquierda, centrar, o derecha, pero no justificación completa.
2- Cuando introduzco muchos caracteres, parte no se ven, porque en el diseño del informe el espacio que he dejado hasta el siguiente campo no es suficiente. Tampoco quiero dejar demasiado espacio porque en los registros en los que no se necesiten tantos caracteres quedará un espacio en blanco muy grande. ¿Hay alguna forma para que el tamaño entre campos se ajuste automáticamente al número de caracteres introducidos?
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

RE:Campos en informe access

Publicado por Raziel (61 intervenciones) el 27/07/2009 16:51:25
1.- selecciona el textbox y busca en:
Propiedades--->Formato---> Alineacion del texto: Distribuir
2.-selecciona el textbox y busca en:
Propiedades--->Formato--->Autoextensible--->Si

Saludos!!!
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

RE:Campos en informe access

Publicado por salvaorama (9 intervenciones) el 28/07/2009 12:59:09
Gracias Raziel,
La propiedad "autoextensible" me va como anillo al dedo.

Con respecto al comando distribuir aparece un problema y es que "distribuir" no es lo mismo que "justificar". Aunque en el cuadro tenga una única palabra, si pongo distribuir la palabra se expande en toda la línea, efecto este que no es el que busco. Yo sólo quiero que alinee a izquierda y derecha el texto si hay más de una línea, como en word.
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

RE:Campos en informe access

Publicado por Jefferson (4 intervenciones) el 28/07/2009 16:24:58
Hola Salvaorama

Distribuir es lo mas parecido a Justificar que trae Access, si no deseas esta aplicacion oroginal... usa este codigo

Public Function Justifica(lpzText, ControlText As Control, objReport As Report) As String

Dim Carac As String, Newtext As String
Dim Numspaces As Long, WidthSpace As Integer
Dim WidthControl As Integer
Dim i As Integer, Inicio As Integer
Dim LastPos As Integer, PosSpace As Integer, PoscharBreak As Integer
Dim FinalText As String, SpacesInStr As Integer
Dim SizeText As Integer
Dim POSI As Long, CI As Integer
Dim NextCarac As String
Dim n As Long

objReport.FontName = ControlText.FontName
objReport.FontSize = ControlText.FontSize
objReport.FontBold = ControlText.FontBold
objReport.FontItalic = ControlText.FontItalic

WidthControl = ControlText.Width

WidthSpace = objReport.TextWidth(" ")

SizeText = Len(lpzText)

i = 1
Inicio = 1
POSI = 0
Do While i < SizeText + 1
Carac = Mid(lpzText, i, 1)
Newtext = Newtext + Carac
Select Case Carac
Case Chr(13) 'se o caracter for ENTER
FinalText = FinalText + Left(Newtext, Len(Newtext) - 1) + Chr(13) + Chr(10)
Newtext = ""
i = i + 1
LastPos = 0
Inicio = i + 1
Case " "
If objReport.TextWidth(Newtext) > WidthControl Then

Newtext = Mid(lpzText, Inicio, LastPos - Inicio)

Numspaces = Fix((WidthControl - objReport.TextWidth(Newtext)) / WidthSpace) - 1
For n = 1 To Len(Newtext)

Carac = Mid(Newtext, n, 1)
If Carac = " " Then SpacesInStr = SpacesInStr + 1
Next n
POSI = 1
CI = 1
PoscharBreak = 0
Do While CI < Numspaces

Carac = Mid(Newtext, POSI, 1)
If Carac = " " Then
NextCarac = Mid(Newtext, POSI + 1, 1)
If NextCarac <> " " Then
Newtext = Mid(Newtext, 1, POSI) + String(1, " ") + Mid(Newtext, POSI + 1)
POSI = POSI + 1
CI = CI + 1
End If
PoscharBreak = PoscharBreak + 1
If PoscharBreak = SpacesInStr Then
PoscharBreak = 0
POSI = 0
End If
End If
If POSI < (SizeText + 1) Then
POSI = POSI + 1
Else
POSI = 1
End If
Loop
FinalText = FinalText + Newtext + Chr(13) + Chr(10)
Newtext = ""
i = LastPos
LastPos = 0
Inicio = i + 1
Else
LastPos = i
End If
End Select
i = i + 1
Loop
Justifica = FinalText & Newtext

Exit_Justifica:
Exit Function

Err_Justifica:
Resume Exit_Justifica

End Function

No Recuerdo su Autor, pero hace exactamente lo que solicitas..... Creo hay otros codigos menos complejos que este, si mal no recuerdo creo que Enrique alguna vez lo publico

Espero te sirva
Desde Venezuela
Jefferson
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

RE:Campos en informe access

Publicado por salvaorama (9 intervenciones) el 29/07/2009 13:24:08
¿Y dónde meto todos esos códigos en el programa?

Gracias.
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

RE:Campos en informe access

Publicado por Chea (1015 intervenciones) el 07/08/2009 21:56:19
Una posibilidad para imitar la justificación es poner el texto como distribuido y añadirle una serie de caracteres al final. En el texto quedará alguna línea en blanco al final, dependiendo de la longitud de la secuencia de caracteres que usemos, pero, por su sencillez, puede merecer la pena:

Private Sub Texto0_AfterUpdate()
Dim CadenaFinal As String
CadenaFinal = " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31) & " " & Chr(31)
Me.Texto0 = Replace(Me.Texto0, CadenaFinal, "")
Me.Texto0 = Me.Texto0 & CadenaFinal

End Sub

Saludos
José Bengoechea Ibaceta
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

RE:Campos en informe access

Publicado por carlos camara castillo (1 intervención) el 31/07/2009 01:46:10
hola quiero k me ayudes a crear un tabla en access quiero hacer una tabla de asistencia y llevar a un formulario para hacerlo como presentacion tu crees que me puedes ayudar te lo agradeceria jejej bueno cuidate oajal tenga respuestas tuyas
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

RE:Campos en informe access

Publicado por SERGIO (1 intervención) el 04/12/2014 15:35:01
En mi caso en el punto 2. ya tiene activada la propiedad "Autoextensible" pero aun sale cortado el texto, a pesar de que el formato del campo es "Memo". que puedo hacer???
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