Hej! Du har ju rapporter i VB också... DataReports. Lite trixiga att göra avancerade rapporter i, men det går. Hej Dan,Utskrift från VB via rapport i Access?
Kan man skriva ut en rapport som är skapad i Access (baserad på en fråga med eller utan parametrar) från Visual Basic? Hur i så fall? Ska man deklarera någon sorts variabel för själva rapporten (mer än för frågan och dess eventuella parametrar)?
Har precis installerat Crystal Reports och vet inte riktigt hur det fungerar så jag tänkte höra mig för om man kan köra via Access istället...?
Mvh
Dan...Sv: Utskrift från VB via rapport i Access?
Ang. Access antar jag att du kan (om Office m. Access är installerat på datorn) kan printa ut rapporter i Access via Access Object library, typ (får ju öppna rätt db mm först):
Dim a As New Access.Report
a.Print
/SSv: Utskrift från VB via rapport i Access?
Här kommer lite mer information som du bör finna intressant:
Nedanståend kod är användbar i både Acc97 och 2000 och använder sig av Late Binding för att kunna vara kompatibelt med båda versionerna.
Option Explicit
Private Const acViewNormal = 0
Private Sub Command1_Click()
On Error GoTo ErrorHandler
Dim oAccess As Object 'Access.Application
Set oAccess = CreateObject("Access.Application")
'These 2 lines are for testing:
Stop ' Enter Debug mode. Use F8 to step through each line.
oAccess.Visible = True 'Make Access window visible to user.
oAccess.OpenCurrentDatabase App.Path & "\db1.mdb", False
'List all reports in the database, based on Q119471:
Dim i As Integer
For i = 0 To oAccess.CurrentDb.Containers("Reports").Documents.Count - 1
Debug.Print oAccess.CurrentDb.Containers("Reports").Documents(i).Name
Next i
'Print a particular report:
oAccess.DoCmd.OpenReport "Default", acViewNormal
CleanUp:
On Error Resume Next
'Close the database and quit Access:
oAccess.CloseCurrentDatabase
oAccess.Quit
Set oAccess = Nothing
Exit Sub
ErrorHandler:
MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
Resume CleanUp 'ensure you quit Access if error occurs
End Sub
KB articles of interest:
(why we recommend late binding if you plan to target both Access 97 and 2000)
Q246237 - BUG: Access 2000 Object Model Breaks Binary Compatibility
http://support.microsoft.com/support/kb/articles/q246/2/37.asp
Q245115 - INFO: Using Early Binding and Late Binding in Automation
http://support.microsoft.com/support/kb/articles/q245/1/15.asp
Q119471 - ACC: Using Data Access Objects (DAO) to List Object Names
http://support.microsoft.com/support/kb/articles/q119/4/71.asp
(has example of using WhereCondition on OpenReport)
Q145707 - ACC: How to Use Automation to Print Microsoft Access Reports
http://support.microsoft.com/support/kb/articles/q145/7/07.asp
How to print Access 2000 Reports from VB
http://support.microsoft.com/default.aspx?scid=kb;EN-US;210132
Samma som ovan men för 2002
How to print Access 2002 Reports from VB
http://support.microsoft.com/default.aspx?scid=kb;EN-US;296586
mvh
Nicholas