Avatar billede hugopedersen Nybegynder
31. august 2006 - 13:02 Der er 8 kommentarer og
2 løsninger

Udskrive Word dokument fra Access

Et gammelkendt problem:

Jeg har en database med en masse sjove funktioner, men jeg vil gerne kunne åbne et givet dokument i Word, udskrive det og afslutte Word igen uden at skulle gøre andet en at trykke på en knap på min formular i Access.

Hvordan er det lige man gør det?
Avatar billede mugs Novice
31. august 2006 - 13:07 #1
On Error GoTo err_open
Dim docname As String
Dim objword As Word.Application
Dim objdoc As Word.Document
Const dir As String = "D:\Opskrifter\"
Const ext As String = ".doc"
docname = dir & Me.Nr & ext
On Error Resume Next
Set objword = GetObject(, "Word.Application")
Err.Clear
On Error GoTo err_open
If objword Is Nothing Then
Set objword = GetObject("", "Word.Application")
End If
objword.Visible = True
AppActivate "Microsoft Word"
objword.Documents.Open docname
objword.PrintOut
objword.Visible = False
MsgBox "Opskriften er sendt til printer." & vbNewLine & vbNewLine & "Vent et øjeblik."
Exit Sub
err_open:
MsgBox "fejlkode: " & Err.Number & " " & Err.Description
Avatar billede -anders- Juniormester
31. august 2006 - 13:12 #2
Hej, jeg plejer at bruge denne, koden kræver et reff. til Wordobjektet.

Ved klik på knappen:

Dim oApp As Object
Dim sDoc As String

sDoc = "C:\test.doc"

    Set oApp = CreateObject("Word.Application")
    oApp.Documents.Open sDoc
    oApp.PrintOut Background:=True
    oApp.Visible = False
    oApp.Quit
Avatar billede -anders- Juniormester
31. august 2006 - 13:17 #3
Hvis du gemmer oplysninger om stien til worddokumentet feks. i et felt i tabellen kan det gøres dynamisk ved at spørge på feltets indhold feks (som skal være på formen).


Dim oApp As Object
Dim sDoc As String

sDoc = Me!NavnPåDitFelt

    Set oApp = CreateObject("Word.Application")
    oApp.Documents.Open sDoc
    oApp.PrintOut Background:=True
    oApp.Visible = False
    oApp.Quit
Avatar billede hugopedersen Nybegynder
31. august 2006 - 13:36 #4
-anders- > din kode virker perfekt bortset fra end detalje.  Word kommer og spørger om jeg vil gemme det dokument jeg har haft åbnet og udskrevet. Det vil jeg jo ikke da jeg ikke har ændret i det.  I Access ville det kræve en acSaveNo parameter, men hvordan sender man det til Word?

Mugs> din kode virker sandsynligvis også (det plejer det) der er bare en del ekstra så -anders-' var mere overskuelig i første omgang.
Avatar billede hugopedersen Nybegynder
31. august 2006 - 13:43 #5
OK - den fandt jeg så selv ud af

objWord.Quit SaveChanges:=wdDoNotSaveChanges
Avatar billede hugopedersen Nybegynder
31. august 2006 - 13:43 #6
-anders- > kast lige et svar for at få del i point
Avatar billede -anders- Juniormester
31. august 2006 - 13:46 #7
Okay her et svar, glad for du fik det til at virker :o). Jeg forstår ikke helt at word promter for at gemme ændringer, dette sker ikke for mig og jeg har brugt det længe, men det vel MS urangsalige vej :o)
Avatar billede hugopedersen Nybegynder
31. august 2006 - 13:52 #8
Ja M$' veje har jeg opgivet at forstå.

Jeg har de sidste dage siddet og rodet lidt med den online testversion af Office 2007 der er tilgængelig. Den er godt nok styg synes jeg. Nu skal man nærmest være uddannet pædagog for at kunne programmere VBA eller i det hele taget bruge programmet :-)
Avatar billede -anders- Juniormester
31. august 2006 - 13:54 #9
Helt ening, jeg har på arbejdet installeret den fulde betaversion, det dælme noget anderledes må man sige, men vi kommer vel efter det :o)
Avatar billede -anders- Juniormester
31. august 2006 - 13:54 #10
Ups, og tak for point
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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