PrintReport




Flag = EnumReports("C:\MioDb.mdb",form1.list1)
Public Function EnumReports(DbName As String, TheControl As Control) As Boolean
On Error GoTo ErrHandle
Dim IntRep As Integer
GetReports = False
If Not Exists(DbName) Then
MsgBox "Errore: " + vbCrLf + _
"Il file" + DbName + vbCrLf + _
"non esiste.", vbCritical
Exit Function
End If
If Not TypeOf TheControl Is ListBox Then
MsgBox "Errore: " + vbCrLf + _
"Il controllo non e' una ListBox", vbCritical
Exit Function
Else
TheControl.Clear
End If
Screen.MousePointer = vbHourglass
Set objAccess = CreateObject("Access.Application")
With objAccess
.OpenCurrentDatabase (DbName)
Set dbs = .CurrentDb
With dbs.Containers("Reports")
For IntRep = 0 To .Documents.Count - 1
If Left(.Documents(IntRep).Name, 4) <> "~TMP" Then
TheControl.AddItem .Documents(IntRep).Name
End If
Next IntRep
End With
End With
GetReports = True
Screen.MousePointer = vbDefault
Exit Function
ErrHandle:
MsgBox "Errore #" + Str(Err.Number) + ": " + Err.Description + ".", _
vbCritical
Screen.MousePointer = vbDefault
End Function

'Questa funzione crea la stampa un report presente nel DB.

Public Function PrintReport(WhichReport) As Boolean
On Error GoTo ErrHandle
'Const acPreview = 2 'Costanti definite di Access

'Const acReport = 3

Screen.MousePointer = vbHourglass
PrintReport = False
If WhichReport = "" Then
MsgBox "Internal Error: " + vbCrLf + _
"Report String not passed.", vbCritical, ProgTitle
Exit Function
End If
objAccess.DoCmd.OpenReport WhichReport ', acPreview per l'anteprima
'objAccess.DoCmd.Maximize

'objAccess.DoCmd.SelectObject acReport, WhichReport

PrintReport = True
Screen.MousePointer = vbDefault
Exit Function
ErrHandle:
MsgBox "Error #" + Str(Err.Number) + ": " + Err.Description + ".", _
vbCritical, ProgTitle
Screen.MousePointer = vbDefault
End Function

'Scarica l'esempio (report.zip)

Con le seguenti funzioni e' possibile ottenere i nomi dei report all'interno
di un DB Access ed in seguito visualizzarli o stamparli Per funzionare, deve
essere presente un copia del programma Access sul PC dove dovra' girare il
software che utilizza queste funzioni. Potete scaricare il file report.zip
con un'esempio in VB5 sull'uso delle due funzioni:
Questa funzione ottiene la lista dei reports presenti nel DB e carica i loro
nomi in una ListBox passatagli come argomento. Esempio di utilizzo:










( printreport.html )- by Paolo Puglisi - Modifica del 17/12/2023