Avatar billede t-johansen Juniormester
31. marts 2006 - 13:30 Der er 20 kommentarer og
1 løsning

listboks til makro KørProgram (program + fil sti)

Jeg har en listboks med en tabel indeholdende navn og en filsti.

og så har jeg en makro der bliver kørt ved klik på en knap.

Den makro består af 2 handlinger
OverførTekst:
Eksporter brevfletning med Word til Windows
forespørgselnavn Servicebrev-email
filnavn c:\servicebreve\servicebreve.csv

KørProgram:
winword.exe "c:\servicebreve\servicebrev.doc"

hvor servicebrevet.doc i forvejen fletter med servicebreve.csv


Den sidste del "kørProgram"

kan man ikke på en eller anden måde lave det om til
winword.exe "listboks tabel"
dvs så den henter brev fil stien fra det valgte navn i listboksen
Avatar billede t-johansen Juniormester
31. marts 2006 - 14:01 #1
Eller er der en anden måde at lave det på? uden "kørprogram" kommandoen
Avatar billede mugs Novice
31. marts 2006 - 14:23 #2
Du åbner Word i en forudbestemt fil således:

Dim objword As New Word.Application
Dim WordDoc As New Word.Document
Set WordDoc = objword.
Documents.Add("DREV:\MAPPE\FIL.doc")
objword.Visible = True

Kræver en reference til Word.
Avatar billede mugs Novice
31. marts 2006 - 14:27 #3
Prøv denne referende til en combo i din formular, stadig en reference til Word:

On Error GoTo err_open

Dim docname As String
Dim objword As Word.Application
Dim objdoc As Word.Document
Const dir As String = Me.DIN COMBO
Const ext As String = ".doc"
docname = dir & 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 t-johansen Juniormester
31. marts 2006 - 14:31 #4
jow men hvordan "lænker" jeg det sammene med min list boks som indeholder stierne?
Avatar billede t-johansen Juniormester
31. marts 2006 - 14:31 #5
det prøver jeg lige
Avatar billede t-johansen Juniormester
31. marts 2006 - 14:40 #6
Den siger
Compile error constant expression required
og highlighter "Const dir As String"


Skal man ikke definere om den skal tage navn(felt1) eller sti(felt2) fra combo boksens tabel?




Private Sub Kommandoknap17_Click()
On Error GoTo err_open

Dim docname As String
Dim objword As Word.Application
Dim objdoc As Word.Document
Const dir As String = Me.Kombinationsboks15
Const ext As String = ".doc"
docname = dir & 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
End Sub
Avatar billede mugs Novice
31. marts 2006 - 14:50 #7
Me!DIN COMBO og Me!Nr er 2 felter på din formular. Den er afprøvet og fungerer:

On Error GoTo err_open
Dim docname As String
Dim objword As Word.Application
Dim objdoc As Word.Document
Const ext As String = ".doc"
docname = Me!Tekst40 & "\" & 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
Exit Sub
err_open:
MsgBox "fejlkode: " & Err.Number
Avatar billede fdata Forsker
31. marts 2006 - 14:51 #8
Du kan hente data ud af din listboks med f.eks.:
  MsgBox Me.Kombinationsboks4.Column(1)
Kolonnerne er nummereret fra 0 og opefter.
Avatar billede mugs Novice
31. marts 2006 - 14:57 #9
Nåå - Var der flere kolonner!!
Avatar billede t-johansen Juniormester
31. marts 2006 - 15:14 #10
forstår ikke dette?

Me!DIN COMBO og Me!Nr er 2 felter på din formular.

docname = Me!Tekst40 & "\" & Me.Nr & ext


min komboboks hedder:
Etiket17
Kombinationsboks15
Rækkekilde: servicebreve brevsti

servicebreve brevsti:
navn: servicebrev
sti c:\service\servicebrev.doc

og det hele bliver udført fra
Kommandoknap 17
Avatar billede mugs Novice
31. marts 2006 - 15:20 #11
Hvis brevet ALTID liger på C:\service og filnavnet er indeholdt i kombinationsboks15 skal den se sådan ud:

On Error GoTo err_open
Dim docname As String
Dim objword As Word.Application
Dim objdoc As Word.Document
Const ext As String = ".doc"
docname = C:\service & "\" & Me.Kombinationsboks15 & 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

Hvis både stien og filnavnet er variabel og indeholdt i 2 felter på formularen burde min kode Kl 14:50 fungere. Hvis der er tale om forskellige kolonner i din kombo, skal du prøve fdata's forslat med at hente informationer ud af kombo'en.
Avatar billede t-johansen Juniormester
31. marts 2006 - 15:21 #12
docname = Me.Kombinationsboks4.Column(1)

så virker det :-)

point til jer begge, hvordag giver jeg engentlig til jer begge?
Avatar billede t-johansen Juniormester
31. marts 2006 - 15:26 #13
lige et tillæg

hvis jeg skal have den kode i en modul fil istedet og køre den i makro med en funktion

er der så andet der skal med?
Avatar billede t-johansen Juniormester
31. marts 2006 - 15:32 #14
skal denne linje så ikke defineres lidt bedre så den ogs åved hvilken formular den kommer fra. og hvordan gøres det?

docname = Me.Kombinationsboks15.Column(1)
Avatar billede mugs Novice
31. marts 2006 - 15:33 #15
Det reserverede ord Me refererer til den aktuelle formular.
Avatar billede t-johansen Juniormester
31. marts 2006 - 15:33 #16
har lavet sådan en i et modul istedet

Public Function openletter()


Dim docname As String
Dim objword As Word.Application
Dim objdoc As Word.Document
Const ext As String = ".doc"
docname = Me.Kombinationsboks15.Column(1)
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
End Function
Avatar billede t-johansen Juniormester
31. marts 2006 - 15:39 #17
dvs nu da formularen hedder Serviceind2

så skal den linje være
docname = Serviceind2.Kombinationsboks15.Column(1)

ik?
Avatar billede t-johansen Juniormester
31. marts 2006 - 15:45 #18
den vil ikke med
docname = Serviceind2.Kombinationsboks15.Column(1)
Avatar billede mugs Novice
31. marts 2006 - 15:46 #19
Dit kald af funktionen skal se således ud, idet du skal overføre komboen's værdi til modulet:

CPR.Check Kombinationsboks15.Column(1)

Derefter skal modulet vide at der overføres en værdi:

Public Function openletter(Kombinationsboks15.Column(1)

Men jeg har ike nogenn erfaring med at overføre bestem,te kolonner til et modul, men princippet er godt nok.
Avatar billede t-johansen Juniormester
31. marts 2006 - 15:56 #20
Grunden til jeg skal køre set som modul er at jeg bliver nød ti lat køre den fra en makro hvor den først
OverførTekst:
Eksporter brevfletning med Word til Windows
forespørgselnavn Servicebrev-email
filnavn c:\servicebreve\servicebreve.csv

mit modul ser sådan ud nu. hvor der er fejl i
docname = Serviceind2.Kombinationsboks15.Column(1)

hvor
Serviceind2= formular
Kombinationsboks15= comboboks



modul code:
Public Function openletter()


Dim docname As String
Dim objword As Word.Application
Dim objdoc As Word.Document
Const ext As String = ".doc"
docname = Serviceind2.Kombinationsboks15.Column(1)
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
'err_open:
'MsgBox "fejlkode: " & Err.Number
End Function
Avatar billede fdata Forsker
31. marts 2006 - 16:58 #21
docname = Forms!Serviceind2.Kombinationsboks15.Column(1)
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