Avatar billede xfox Nybegynder
22. marts 2002 - 10:48 Der er 6 kommentarer og
1 løsning

udprintning af access rapport fra VB

Jeg skal have udskrevet en Access-rapport fra mit Visual Basic program. Det hele skal ske automatisk ved at trykke på en knap fra VB. På den måde skal VB så åbne access, og derefter få access til at udskrive den aktuelle rapport.
Er der nogen der har et bud på hvordan det kan lade sig gøre?
Avatar billede terry Ekspert
22. marts 2002 - 10:57 #1
yes! but you need access installed on the PC, you cant just have the MDB file.
You need to automate access (start access) vi you VB program and open the report from there
Avatar billede juggalo Nybegynder
22. marts 2002 - 11:24 #2
en anden mulighed er at lave en data-report i VB
Avatar billede tubber Juniormester
24. marts 2002 - 22:10 #3
Lav en form hvor du sætter det op som du vil have din rapport skal se ud, og så hente hvert recordset ind og sætte det i de felter du skal bruge......

jeg gør det altid med Sql - kan ikke lide den funktion der er i VB....

Først skal refferencen Microsoft DAO 3.51/3.6 Object Library tilføjes.....

Dim ws As Workspace
Dim db As Database
Dim rs As Recordset

'Her tilføjer den alle navnene til en combobox, og giver hver record
'et tag, som er lig med id (primær nøgle)

Private Sub Form_Load()
Set ws = Workspaces(0)
Set db = ws.OpenDatabase(App.Path & "\database.mdb")
Set rs = db.OpenRecordset("SELECT * FROM table")
If Not rs.EOF Then
    rs.MoveFirst
    Do While Not rs.EOF
        Combo1.AddItem rs!navn
        comNavn.ItemData(comNavn.NewIndex) = rs!id
        rs.MoveNext
    Loop
End If
End Sub

'Når man vælger et navn i comboboxen så vælger den det tilhørende
'navn ud fra primær nøgle, og derved kan der være flere der hedder
'der samme i sin database.....

Private Sub Combo1_Click()
Set ws = Workspaces(0)
Set db = ws.OpenDatabase(App.Path & "\adressebog.mdb")
Set rs = db.OpenRecordset("SELECT * FROM adressebog")
rs.MoveFirst
Do While rs.EOF = False
    If rs!id = comNavn.ItemData(comNavn.ListIndex) Then
            Text1.Text = rs!adresse
            Text2.Text = rs!postnr
            Text3.Text = rs!minBy
            Text4.Text = rs!land
            Text5.Text = rs!tlf
            Text6.Text = rs!mobil
            Text7.Text = rs!email
    End If
rs.MoveNext
Loop
End Sub

Tubber
Avatar billede tubber Juniormester
24. marts 2002 - 22:10 #4
Hov skulle være et svar :O)
Avatar billede xfox Nybegynder
25. marts 2002 - 11:51 #5
I er inde på noget af det rigtige. Jeg har installeret access på min computer, men jeg mangler koden til hvordan man får VB til at aktivere den bestemte rapport i Access og derefter aktiver udskrift-funktionen. Det er sådan set det hele.
Avatar billede terry Ekspert
25. marts 2002 - 13:42 #6
well as I mentioned in my answer 10:57 you have to automate Access:

Dim acc As Object

Set acc = CreateObject("Access.Application")
   
    acc.OpenCurrentDatabase FilePath:="C:\YourDb.mdb"

'to preview
    acc.Visible = True
        acc.DoCmd.OpenReport datReports.Recordset.ReportRptName, acViewPreview

'to print
acc.Visible = False
        acc.DoCmd.OpenReport datReports.Recordset.ReportRptName, acViewNormal
        acc.Quit
Avatar billede terry Ekspert
25. marts 2002 - 13:43 #7
replace datReports.Recordset.ReportRptName with the name of your report
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester