Como crear un informe en una sola hoja en access vba
Cordial Saludo
Estimados expertos solicito de su ayuda, estoy creando un informe desde vba access, sin embargo siempre me sale en hojas diferentes los registros, y me gustaria que este informe se mostrara en una sola hoja.
La tabla que uso es la siguiente:
Nombre: Datos Empresa
Campos: razonSocial, Identificacion, Direccion
y el código que uso es el siguiente:
Public Sub CreaInforme(ByVal CantidadCampos As Integer, ByVal cantidad_Registros As Integer)
Dim rptInforme As Report
Dim aControles(0 To 9) As Control
Dim strInforme As String
Dim ctl As Control
Dim lngColor As Long
Dim i As Long
Dim j As Long
Dim k As Long
Dim Valor_Inicial As Long
Dim cantidadRegistros As Integer
Dim altura As Integer
Valor_Inicial = 0
Set rptInforme = CreateReport
DoCmd.Restore
With rptInforme
strInforme = .Name
.RecordSource = "Tbl_DatosEmpresa"
' Dimensiono los elementos del informe _
Encabezado, y pie de página
.Width = 700
.Section(acPageHeader).Height = 200
.Section(acPageFooter).Height = 200
End With
'------------------------------------------------------------
For j = 0 To CantidadCampos
If j <> 0 Then
Valor_Inicial = Valor_Inicial + 2000
Else
Valor_Inicial = Valor_Inicial + 500
End If
Set aControles(j) = CreateReportControl( _
strInforme, _
acLabel, _
acDetail, "", "", _
Valor_Inicial, 400, _
1500, 300)
With aControles(j)
Select Case j
Case 0
.Caption = "RazonSocial"
.Name = "lblRazonSocial"
Case 1
.Caption = "IDENTI"
.Name = "LBLIDENTI"
Case 2
.Caption = "DIRECCION"
.Name = "lbl_DIRECCION"
Case 3
.Caption = "CIUDAD"
.Name = "CIUDAD"
End Select
End With
altura = 0
altura = altura + 500
Set aControles(j) = CreateReportControl( _
strInforme, _
acTextBox, _
acDetail, "", "", _
Valor_Inicial, 800 + altura, _
1500, 300)
With aControles(j)
Select Case j
Case 0
.ControlSource = "razonSocial"
.Name = "txt_Concepto"
Case 1
.ControlSource = "Identificacion"
.Name = "txt_PUC"
Case 2
.ControlSource = "Direccion"
.Name = "txt_Saldo"
Case 3
.ControlSource = "Ciudad"
.Name = "tx_DocFuente" & k
End Select
End With
Next
'-----------------------------------------------------------
lngColor = RGB(128, 0, 0)
For Each ctl In rptInforme.Controls
With ctl
.FontName = "Verdana"
If .ControlType = acTextBox Then
'.FontWeight = eoNegrita
.ForeColor = lngColor
.FontSize = 12
'.TextAlign = eoDerecha
Else
'.FontWeight = eoNormal
.ForeColor = vbBlack
.FontSize = 10
'.TextAlign = eoIzquierda
End If
End With
Next ctl
'Creamos ahora el título del encabezado, con sombra
Set aControles(6) = CreateReportControl( _
strInforme, _
acLabel, _
acPageHeader, _
"", "", _
100, 100, _
6000, 800)
With aControles(6)
.Caption = "Informe Prueba"
.Name = "lblTituloSombra"
.ForeColor = RGB(128, 128, 128)
End With
Set aControles(7) = CreateReportControl( _
strInforme, _
acLabel, _
acPageHeader, _
"", "", _
70, 70, _
6000, 800)
With aControles(7)
.Caption = "Informe Prueba"
.Name = "lblTitulo"
.ForeColor = RGB(0, 0, 128)
End With
For i = 6 To 7
With aControles(i)
.FontName = "Times New Roman"
.FontSize = 24
'.FontWeight = eoGrueso
End With
Next i
Set aControles(8) = CreateReportControl( _
strInforme, _
acLine, _
acPageHeader, _
"", "", _
0, 950, _
8000, 0)
With aControles(8)
.Name = "linEncabezado"
End With
' Muestra el informe
DoCmd.OpenReport strInforme, acViewPreview
End Sub