Avatar billede maria.cand Nybegynder
22. marts 2004 - 20:32 Der er 26 kommentarer og
1 løsning

Kommando knap der åbner word fil

Hjælp til at lave en kommandoknap der åbner word fil "Vurdering af ansøger"

Endvidere skal jeg have hjælp til knap der åbner excel fil timeseddel..
Avatar billede mugs Novice
22. marts 2004 - 20:42 #1
Private Sub Kommandoknap31_Click()
On Error GoTo err_open
Dim docname As String
Dim objword As Word.Application
Dim objdoc As Word.Document
Const dir As String = "STI TIL WORDDOKUMENTET"
Const ext As String = ".doc"
docname = dir & "Vurdering af ansøger" & 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
Exit Sub
err_open:
MsgBox "fejlkode: " & Err.Number
End Sub

Husk reference til Word
Avatar billede terry Ekspert
22. marts 2004 - 20:43 #2
place this in a module
and this in the on click event for the button

Private Sub cmdOpenDoc_Click()
Dim stAppName As String
Dim result As Integer

    On Error GoTo Err_cmdOpenDoc_Click

    result = ShellExecute(0, "Open", Me.txtWordDoc, "", "", SW_SHOW)

    If result < 32 Then
        MsgBox "Couldn't open file ..."
    End If
   
Exit_cmdOpenDoc_Click:
    Exit Sub

Err_cmdOpenDoc_Click:
    MsgBox Err.Description
    Resume Exit_cmdOpenDoc_Click
   
End Sub
Avatar billede mugs Novice
22. marts 2004 - 20:44 #3
Dim xls As New Excel.Application
xls.Visible = True
xls.Workbooks.Open Filename:="STI TIL EXCEL\timeseddel.xls"
DoCmd.Quit
Avatar billede terry Ekspert
22. marts 2004 - 20:45 #4
I see something went missing there :o)
In a module
Option Compare Database
Option Explicit

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


Public Const SW_HIDE = 0
Public Const SW_SHOW = 5





Me.txtWordDoc contains the name of the document you want to open-
Avatar billede maria.cand Nybegynder
22. marts 2004 - 21:00 #5
den giver en fejlkode i 5174 når den skal åbn word - den åbner godt nok word men ikke doc...Private Sub Kommandoknap338_Click()
On Error GoTo err_open
Dim docname As String
Dim objword As Word.Application
Dim objdoc As Word.Document
Const dir As String = "C:\Documents
Const ext As String = "Vurdering af ansøger.doc"
docname = dir & "Vurdering af ansøger" & 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
Exit Sub
err_open:
MsgBox "fejlkode: " & Err.Number
End Sub
Avatar billede terry Ekspert
22. marts 2004 - 21:01 #6
There is another solution which might work! 22/03-2004 20:43:46
Avatar billede terry Ekspert
22. marts 2004 - 21:03 #7
place the code 22/03-2004 20:45:01 in a module

and then use the code  from 22/03-2004 20:43:46 as the buttons on click event.

Replace Me.txtWordDoc with the name of th edocument you want to open

for example: "c:\Vurdering af ansøger.doc"
Avatar billede mugs Novice
22. marts 2004 - 21:04 #8
Koden fungerer perfekt. Kontroller disse 2 linier, og lav dine egne magen til:

Const dir As String = "STI TIL WORDDOKUMENTET"
Const ext As String = ".doc"
Avatar billede maria.cand Nybegynder
22. marts 2004 - 21:10 #9
Jeg tror sku det er mig der er dum mugs - den skriver forsat denne fejl - hmm jeg har enda sat reference på modulet
Avatar billede mugs Novice
22. marts 2004 - 21:12 #10
Hvad er den nøjagtige adresse til Word-filen?
Avatar billede maria.cand Nybegynder
22. marts 2004 - 21:16 #11
jeg kan sagtens gøre det ved excel ...
Avatar billede mugs Novice
22. marts 2004 - 21:17 #12
Må jeg se din rettede kode.
Avatar billede maria.cand Nybegynder
22. marts 2004 - 21:17 #13
C:\Documents and Settings\smallsystems\Skrivebord\marketing den. 23-03-04

og filen hedder Vurdering af ansøger
Avatar billede maria.cand Nybegynder
22. marts 2004 - 21:19 #14
Private Sub Kommandoknap338_Click()
On Error GoTo err_open
Dim docname As String
Dim objword As Word.Application
Dim objdoc As Word.Document
Const dir As String = "C:\Documents and Settings\smallsystems\Skrivebord\marketing den. 23-03-04
Const ext As String = ".doc"
docname = dir & "Vurdering af ansøger" & 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
Exit Sub
err_open:
MsgBox "fejlkode: " & Err.Number
End Sub

den åbner godt nok word programmet op
Avatar billede mugs Novice
22. marts 2004 - 21:21 #15
Du mangler et afsluttende anførselstegn her:

Const dir As String = "C:\Documents and Settings\smallsystems\Skrivebord\marketing den. 23-03-04
Avatar billede maria.cand Nybegynder
22. marts 2004 - 21:23 #16
jamen jeg skal vel angive et sted at filet hedder Vurdering af ansøger
Avatar billede mugs Novice
22. marts 2004 - 21:25 #17
Prøv nu at sætte det anførselstegn.
Avatar billede maria.cand Nybegynder
22. marts 2004 - 21:27 #18
dumme mig det har jeg selvfølgelig angivet, men den giver stadig fejl - prøver lige at lege med det!1
Avatar billede mugs Novice
22. marts 2004 - 21:32 #19
Fejl 5174 skyldes, at Access ikke kan finde filen. Kontroller at du har indtastet den korrekte sti samt navn op word-filen.
Avatar billede maria.cand Nybegynder
22. marts 2004 - 21:37 #20
jamen det synes jeg nu jeg har tjekket
Avatar billede mugs Novice
22. marts 2004 - 21:38 #21
Kan du sende db:

mugs@mail.dk
Avatar billede maria.cand Nybegynder
22. marts 2004 - 21:51 #22
jeg tror bare det er fordi jeg er lidt små træt..
Avatar billede maria.cand Nybegynder
22. marts 2004 - 22:09 #23
Jeg manglede en \ efter den. 23-03-04 mugs har løst min fejl!! jeg takker som altid
Avatar billede mugs Novice
22. marts 2004 - 22:11 #24
Selv tak.
23. marts 2004 - 09:19 #25
En lille indskydelse til Mugs' eks:

Det viste kodeeksempel blander 2 metoder sammen.
Ved at lave reference til Word, får man muligheden for at arbejde med Word.Application-objektet. Grunden til at man ønsker dette, er at man derved kan benytte "Early binding":

Dim objword As New Word.Application

Denne ene sætning erstatter disse alle disse:
  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

Hvis man i stedet vælger at benytte "Late binding", som i dette eksempel, så kan man helt fjerne referencen til MS Word, hvis blot man skifter disse 2 sætninger:
  Dim objword As Word.Application
  Dim objdoc As Word.Document
ud med disse:
  Dim objword As Object
  Dim objdoc As Object

Og da man altid bør begrænse antallet af referencer mest muligt for at undgå konflikter, forbedre performance samt undgå problemer med forskellige versioner på forskellige maskiner, så er denne metode ofte den mest optimale.

Dette var blot en servicemeddelelse :o)

/Thomas
Avatar billede mugs Novice
23. marts 2004 - 10:10 #26
Tak til Thomas igen igen. Det bliver implementeret i min testdb senere idag .o)
23. marts 2004 - 10:19 #27
Det skal lige bemærkes, at når du fjerner referencen til Word, så fjerner du også code-compleation (altså at der ruller en liste med tilgængelige kommandoer frem efter et punktum). Derfor er det en hjælp, hvis man har referencen mens man udvikler, og når så koden er færdig, så fjerner man referencen og laver de 2-3 småændringer i koden. (Med mindre selvfølgelig, at Word-VBA-koderne ligger på rygraden, så man ikke behøver den hjælp :o)
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