День добрый. Суть проблемы в следующем: необходимо с помощью кода VBA создать отчет MS Access. И вроде бы все хорошо, только почему-то вместо нормально отформатированного вывода (границы полей, закраска, линеечки-полосочки там всякие и т. д.) на предварительный просмотр выводятся голые числа из раздела данных. И больше ничего. Подскажите, каким образом я могу создать отчет с графическими прибамбасами, с нормальным заголовком и т. п. Вот простой примерчик кода того, как я реализую задачу. Что здесь не так? Dim appAccess As New Access.Application Dim intLeft As Integer intLeft = 0 Dim rpt As Access.Report Dim ctlText As Access.TextBox Dim ctlLabel As Access.Label Dim db As DAO.Database Dim tdf As DAO.TableDef Dim fld As DAO.Field appAccess.OpenCurrentDatabase ("c:\Reports.mdb") Set db = appAccess.CurrentDb Set tdf = db.TableDefs!Table1 Set rpt = appAccess.CreateReport(, "Report") rpt.RecordSource = tdf.Name
For Each fld In tdf.Fields Set ctlText = appAccess.CreateReportControl(rpt.Name, acTextBox, acDetail, , fld.Name, intLeft, , , Int(567 / 2)) intLeft = intLeft + ctlText.Width ctlText.BorderColor = acColorIndexBlack ctlText.BorderStyle = acSolid ctlText.BorderWidth = 1 Next fld
intLeft = 0 For Each fld In tdf.Fields Set ctlLabel = appAccess.CreateReportControl(rpt.Name, acLabel, acHeader, fld.Name, , intLeft, , , Int(567 / 2)) ctlLabel.Caption = CStr(fld.Name) intLeft = intLeft + ctlLabel.Width ctlLabel.BorderColor = acColorIndexBlack ctlLabel.BorderStyle = acSolid Next fld ' ctlText.SizeToFit ' rpt.Section(acDetail).CanShrink = True ' rpt.Section(acHeader).CanShrink = True rpt.Section(acHeader).Height = Int(567 / 2) rpt.Section(acDetail).Height = Int(567 / 2) appAccess.DoCmd.OpenReport rpt.Name, acViewNormal 'Preview appAccess.DoCmd.Restore ' appAccess.DoCmd.Close ' AppActivate "Microsoft Access"
Заранее благодарен.
Ответить
|