Avatar billede jmarques Nybegynder
17. marts 2011 - 23:37 Der er 34 kommentarer og
1 løsning

Hvordan åbner jeg et bestemt word dokument fra en access tekstboks

Hej alle,

Hvordan åbner jeg et bestemt word dokument fra en access tekstboks, ved at dobbelt klikke på denne.

Tekstboksen står som udgangspunt tom men med en inputmaske. Når word dokumentet er skrevet (i en anden afdeling i huset), vil jeg gerne kunne skrive navnet ind i min databases tekstboks/inputmaske. Derefter ved at dobbeltklikke på denne, åbne det word dokument jeg lige har skrevet ind i boksen.

Håber at det giver mening, jeg er ikke så rutineret accessbruger endnu.

Er der nogen der kan guide mig igennem? På forhånd tak for hjælpen.
Avatar billede mugs Novice
18. marts 2011 - 09:30 #1
Det nemmeste er nok at lave en kommandoknap og i dennes VedKlik hændelse indsætte denne kode:

Me.navn på kommandoknap.HyperlinkAddress = Me.felt1

hvor felt1 indeholder stien til dit word dokument.
Avatar billede Slettet bruger
18. marts 2011 - 10:41 #2
Givet:
  formularen: IHuset
  tekstboksen: fileRef

åbner følgende tekstboksens ved dobbeltklik hændelse, enhver i windows associeret filtype

Sub IHuset_DblClick(Cancel As Integer)
    shell "cmd /c start """" """ & fileRef & """"
End Sub
Avatar billede jmarques Nybegynder
18. marts 2011 - 12:00 #3
Jeg tror jeg prøver med:

Sub IHuset_DblClick(Cancel As Integer)
    shell "cmd /c start """" """ & fileRef & """"
End Sub

For lige at skære det ud i pap for en nybegynder som mig. Hvordan kommer koden til at se ud hvis formularen hedder: GS rapport og inputmasken i tekstboksen altid ser således ud: Hrnr.: 000-00.doc

Det der sker når word dokumentet er lavet og navngivet efter ovennævnte inputmaskes format (en aftale vi har lavet mellem vores to afdelinger), finder jeg navnet på en fælles server og skriver derefter navnet ind i tekstboksen (med inputmasken), i min database. Det kunne for eks. se således ud: Hrnr.: 123-11

Tusind tak for hjælpen allerede.

Mvh
Joachim
Avatar billede Slettet bruger
18. marts 2011 - 14:08 #4
'GS rapport' er ikke noget godt navn for en formular ;)  - men det er en anden snak.

Der er fejl det jeg skrev i #3.


Fortæl mig først følgende:
  tekstboksens navn
  fuldt stinavn til document på server - det som ville åbne filen i word,  hvis du skrev det i startknappen->kør

så vil jeg vende tilbage
Avatar billede terry Ekspert
18. marts 2011 - 18:50 #5
In the buttons OnClick event

Application.FollowHyperlink Me.NameOfFieldGoesHere
Avatar billede jmarques Nybegynder
18. marts 2011 - 20:02 #6
Hej brugerexpert,

Tekstboksens navn er: Hrnr
Det fulde sti navn er: "P:\Security\Security rapporter\2011\01-11.doc"

Ja som sagt er jeg ikke så skrap endnu men hvis man benytter denne sti i koden, vil man så ikke åbne rapport 01-11.doc hver gang man dobbelt klikker på tekstboksen?

Inputmasken er jo tom indtil man skriver et nummer og indeholder 3 ciffre en - og 2 ciffre igen. Når tekstboksen er tom ser den således ud: HR___-__ indtil man udfylder den.
Avatar billede jmarques Nybegynder
18. marts 2011 - 21:55 #7
YES jeg fik det næsten til at virke!!

Har fået den til at åbne rapporten 01-11.doc men som jeg lige spurgte om så ganske rigtigt, når jeg dobbeltklikker på tekstboksen i en ny rapport/formular hvor jeg har indtastet et andet .dok nummer, så åbner den stadigvæk 01-11.doc.

Det den skal er at åbne det dokument nummer jeg indtaster i tekstboksens inputmaske.

Jeg prøvede at slette det sidste i stien så den så således ud: P:\Security\Security rapporter\2011

På den måde åbner den rigtige mappe med de rigtige word dokumenter. Det er et stort skridt i den rigtige retning. Men det ville være super ekstra lækkert hvis den kunne forstå hvad jeg har tastet ind i inputmasken i den nye formular og åbne lige præcist det document!!
Avatar billede terry Ekspert
19. marts 2011 - 09:17 #8
If the folder (directory) is always the same then you cabn use

Application.FollowHyperlink "P:\Security\Security rapporter\2011\" & Me.Hrnr & ".doc"


This is assuming that th epath is always the same and you only enter the documenet number not .doc  EG: 01-11
Avatar billede Slettet bruger
19. marts 2011 - 11:07 #9
Det er lidt ualmindeligt at anvende dobbelklik i en tekst kontrolelementet så Mugs og Terry løsning er den nemmeste. Anyway - løsningen med dobbeltklik er interessant, så her kommer den.

Når dobbeltklik hændelsen fanges er tekst kontrolelementet ikke opdateret! Envidere vil der ske noget med markeringen at indholdet, som ikke harmonerer med det at gøre noget andet. En løsningen er at flyttes fokus til et andet kontrolelement - et dertil lavet.

Gør sådan:
  1.lav knappen med musen og tast <escape> når guiden dukker op.
  2.åben egenskabsarket (tast <alt><return>)
  3.navngiv CfocusCath i fanen 'andre'
  4.luk egenskabsarket og lav den ganske lille - til kun en prik
  5.Den kan nu kun flyttes vha. <cntl><piletaster> og gives fokus i designview vha kontrolelement dropdown vælgeren
  6.Vær opmærksom på tabulator rækkefølge

Det med inputmaske er en godt nok, men ikke væsentligt. For at forklare det enklest, så fjern det, i første omgang,  og lad os tage udgangspunkt i det fil navne du har givet.
Hvis der med "P:\Security\Security rapporter\2011\01-11.doc", blot ønskes at indtaste 01-11, ligger følgende  2 delstrenge fast:
  "P:\Security\Security rapporter\2011\"
  ".doc"


Koden for hændelse dobbeltklik i tekst kontrolelementet Hrnr er:

Private Sub Hrnr_DblClick(Cancel As Integer)
    Dim fileName
    Const path = "P:\Security\Security rapporter\2011\", ext = ".doc"
    focusCatch.SetFocus
    fileName = path & Hrnr.Value & ext
    If Len(Dir(fileName)) Then
        Shell "cmd /c start """" """ & fileName & """"
    Else
        MsgBox fileName & " don't exist!": End If
End Sub
Avatar billede jmarques Nybegynder
21. marts 2011 - 22:23 #10
Undskyld den lange reaktions tid. Har forsøgt at gøre som beskrevet men når jeg har tastet et dok nummer ind i feltet får jeg denne besked:

Run-time error ´424´

Objekt required.

Ja jeg har nok ikke evnet at følge dine instrukser ordenligt.
Avatar billede jmarques Nybegynder
21. marts 2011 - 22:48 #11
og dobbeltklikker efterfølgende
Avatar billede jmarques Nybegynder
21. marts 2011 - 23:12 #12
Aaah det er til at få lange ...... af. Jeg føler mig som en idiot at jeg ikke kan følge din instruks.
Avatar billede jmarques Nybegynder
22. marts 2011 - 03:09 #13
Har bøvlet hele natten og desuden forsøgt mig med både Terry og Mugs løsning. Her lykkedes det heller ikke !
Avatar billede Slettet bruger
22. marts 2011 - 13:06 #14
Vi kender det vist alle - at have travlt med at noget bare skal virke - At indsnævre virke til: det som vi vil have det til - så andre kan bruge det også!

Enhver fejlmeddelese er også et resultat - omend budskabet er eksklusivt!

(ser for mig den harmdirende kontordame, der i access udviklerens nærværd peger på et fejlmeddelelses vindue: 'hvad er det lige jeg skal her')

Ang. #10 - hvilken programlinie udløste:

Run-time error ´424´
Avatar billede jmarques Nybegynder
22. marts 2011 - 14:11 #15
HAha ja du har så ret. Især det med at andre også skal bruge det. Jeg er blevet valgt til at "renovere" denne database fordi min afdeling synes at jeg har flair for det....:-). Dvs. at de er om ikke andet har endnu større vanskeligheder ved bare at bruge access end jeg selv. Derfor skal muligheden for at taste, klikke eller gøre noget forkert minimeres så meget som muligt !

For at vende tilbage til dit spørgsmål, det var denne programlinie:

focusCatch.SetFocus
Avatar billede Slettet bruger
22. marts 2011 - 14:33 #16
Hvis du:
  1. I vba-editoen
    a. markerer focusCatch
    b. menuline->debug->add watch
    c. sætter breakpoint på linien (menuline->debug->toggle breakpoint
  2. åbner formularen og dobbeltklikker i Mrnr

Hvilken type angiver vinduet wathes, så focusCatch at have?
Avatar billede jmarques Nybegynder
22. marts 2011 - 20:43 #17
Er nået til:
1. I vba-editoen
    a. markerer focusCatch - OK
    b. menuline->debug->add watch - OK
    c. sætter breakpoint på linien (menuline->debug->toggle breakpoint - toggle breakpoint er passiv når jeg klikker debug?
  2. åbner formularen og dobbeltklikker i Mrnr - er ikke nået dertil
Avatar billede Slettet bruger
22. marts 2011 - 21:37 #18
Tekst makøren skal stå på den linie der skal sættes breakpoint på -  og dermed er det kodevinduet der skal have fokus. Man kan også blot taste <f9>.
Det burde virker - det er en helt basal funktion.
Avatar billede jmarques Nybegynder
22. marts 2011 - 22:09 #19
OK det virker men hvor længe skal den stå og debugge?

Hvis jeg prøver at lukke editor vinduet skriver den:"this command will stop the debugger"?
Avatar billede Slettet bruger
22. marts 2011 - 22:39 #20
Der gå formentligt kun et splitsekund fra du har dobbletklikket i mrnr til editoren toner frem og du kan aflæse i watchen hvilken type focusCatch er - hvad står der?
Avatar billede jmarques Nybegynder
22. marts 2011 - 22:44 #21
Der står Variant/Integer
Avatar billede Slettet bruger
22. marts 2011 - 23:19 #22
Det er derfor fejlen: missing objekt forekom - setFocus kræver et object (som godt kan være i en variant - derfor er det ikke syntaxfejl), men finder intet objekt. Hvis der var oprettet en komanmandoknap med navnet focusCatch ville det spille.
Du har snuppet hele min kode med klippebordet og bliver ikke 'briefet' på samme måde som når du selv skriver alle linier - for så snart man skriver punktum efter navnet på 'noget der skal være der' kommer der en dropdown liste - og kommer den ikke er man allerede i indskrivningsfasen gjort opmærksom.

Desuden bør linien:
option explicit

forkomme som anden linie i alle moduler - det forhindrer at variable oprettes uden dim. Der er general indstilling i tools->options der sørger for at 'option explicit' automatisk sættes i alle nye moduler

Nok om det - du kan bare udkommentere linien (et ' tegn forest) . det med at skrive i Mrnr kan jeg nu se ikke er meningen.
Avatar billede jmarques Nybegynder
26. marts 2011 - 12:06 #23
Jeg kan ikke rigtigt få det til at virke. Tror igen at jeg har fået forvirret mig selv.

Hvilken sætning skal jeg:

- udkommentere linien (et ' tegn forest)?

Og skal jeg stadigvæk bruge sætningen focusCatch.SetFocus og lave en kommandoknap til denne der minimeres så man ikke ser den i formularen?
Avatar billede Slettet bruger
26. marts 2011 - 16:04 #24
Linien: 'focusCatch.SetFocus' skal slettes - men prøv istedet at udkommentere den (sætte et ' tegn forest så den bliver grøn)

Prøv så at oprette en ny post i formularen og dobbelklikke i mrnr feltet for at chekke at mrnr er opdateret med standardværien - hvis det er tilfælder kan knappen FocusCatch slettes.
Avatar billede jmarques Nybegynder
26. marts 2011 - 16:24 #25
Har prøvet det du beskriver. Linien: 'focusCatch.SetFocus' bliver ganske rigtig grøn, men så modtager jeg denne besked når jeg dobbeltklikker i feltet (hvor jeg har skrevet dokument nr. 31-11 ind). 

Fejlmeddelse:
P:Security\Security rapporter\2011\03111.doc dosn´t exist

Det ser umiddelbart ud som om at noget er rigtigt eller ?

Jeg ved ikke om det betyder noget men dokumenterne i vindows mappen starter med at hedde 01-11 (sådan læser vi word dokument navnet eller rapporten = rapport nr. 1 år 11). Hvis man når op på 100 eller derover bliver navnet 3 ciffret. Men i formularen vil dokument nr 1-11 skrives ind i inputmasken som nr. 001-11.
Avatar billede Slettet bruger
26. marts 2011 - 16:59 #26
Det med standardværdi tilstedeværelse virker!

Der ligger to ting i det med filnavnet:

1. Når der oprettes en ny post, skal der laves et nyt word dokument - det kan ske ved kopiering fra et tomt 'standard dokument'.
Filcopy <standard dokument> fileName

2. Det med filnavnet forstår jeg ikke helt. Tidligere, i indlægget "Automatiks genereret raport nummer" er løbenummeret defineret som tæller vedrørende den enkelte dag og formatet: ddmmyy - svarende til at første nyoprettelse i dag kommer til at hedde: 26031101. Det kan laves som man ønkser, der skal blot være overenstemmelse mellem NewGDNumber(...) og ønsket filnavn. bindestreg er bare kosmetik.
Avatar billede jmarques Nybegynder
26. marts 2011 - 17:16 #27
Aaah jeg syntes nok vi talte forbi hinanden på et tidspunkt !!

Tråden "Automatisk genereret rapport nummer" handler om at når vi i min afdeling åbner en ny formular i access databasen (i vores verden, når vi skal skrive en ny rapport). Skal den formular have den type rapportnumre (GSddmmyy-løbenummer) som vi bruger og som du har hjulpet så kanon godt med at fikse, lave nummeret automatisk.

Vi er i samme formular men i 2 forskellige tekstbokse. Det er fordi at den ene rapport skriver vi i min afdeling imens den anden skrives i en anden afdeling og den skriver de i word. Den gemmes på P: drevet som min afdeling har adgang til. Vi noterer altid den anden afdelings rapport nummer og de skriver bare numrene fortløbene som beskrevet: den første hedder 01-11 osv. derudaf, indtil der bruges 3 ciffre (altid kun 2 ciffre til sidst der angiver årstallet).

DVS.: I den ene tekstboks står vores rapport nummer (GS nummeret) og i den anden står den anden afdelings rapport nummer (Hr nr.).

Og det er det den tekstboks (Hr nr.) hvori vi noterer hvad nummer den anden afdelings rapportnummer hedder.

Sorry sorry jeg ikke fangede den noget før!!
Avatar billede jmarques Nybegynder
26. marts 2011 - 17:36 #28
Jeg er på pinden igen i morgen, jeg når desværre ikke mere i dag.
Avatar billede Slettet bruger
27. marts 2011 - 15:16 #29
Det er lettere, hvis der kommer nogle navne:
Formular
tekst kontrolelementet med inputmaske
om denne:
  standardværi og koden bag, hvis der er nogen
  datakilde, hvis nogen
Avatar billede jmarques Nybegynder
27. marts 2011 - 15:43 #30
Formular = GS Rapport
Tekstboks/Kontrolelementkilde = Hrnr (Titeltekst Security Hr. nr.:)
Inputmaske = "Hr"000-99
Standardværdi = tomt felt (ingen kode bag)
Datakilde = ingen datakilde

(hændelseprocedure ved dobbeltklik er de vba koder du har forsøgt at få mig til at få til at virke)
Avatar billede Slettet bruger
27. marts 2011 - 17:46 #31
Ingen datakilde - ingen standardvædi? Skal det kun bruges til at åbne et word dokument ud fra kendskab til løbenummmer og år - har værdien i mrnr intet med poster i en tabel at gøre?
Avatar billede jmarques Nybegynder
27. marts 2011 - 18:03 #32
Ja det er rigtigt - jeg tror som sagt at vi har fået blandet 2 forskellige tråde godt og grundigt sammen!

Jeg vil gerne kunne åbne et bestemt word dokument der ligger et bestemt sted eller nærmere i en bestemt mappe et andet sted på vores P: server.

Det vil jeg gerne kunne gøre ved at dobbeltklikke på tekstboksen (Hrnr), hvori jeg selv skriver dokument navnet ind i tekstboksens inputmaske.

Disse dokumenter har i mappen på P: serveren altid et navn på mindst 2 ciffre, bindestreg og årstal. Uanset om det er nr. 1 (så døbes dokumentet 01-11)

I min tekstboks i GS formularen har jeg dog en inputmaske der ser således ud HR___-__ for at tvinge alle brugere i min afdeling til at skrive dokument nummeret på samme måde. Dvs. dokument nr. 1 hos os hedder i pricippet HR001-11.

Så nej det har intet med en tabel at gøre. Det drejer sig om at få åbnet et vindows vindue indeholdene et bestemt word dokument der ligger et andet sted på vores P:server.
Avatar billede jmarques Nybegynder
27. marts 2011 - 18:07 #33
Men vi er alligevel tæt på.

Hvis jeg dobbeltklikker i tekstboksen Hrnr så åbner den rigtige mappe med rapporterne i.

Det er tilsyneladende er problemet er at finde det dokument navn som jeg har skrevet ind i Hrnr og kun åbne det ene dokument.
Avatar billede Slettet bruger
27. marts 2011 - 19:00 #34
Ok - vi er tilbage i den problematik, hvor jeg lokkede dig til det med focusCatch. Håber du synes det er i orden at du lærte lidt - for hermed løses det enklere.

Private Sub Mrnr_DblClick(Cancel As Integer)
    Dim loebeNr, fileName
    Const path = "P:Security\Security rapporter\2011\", ext = ".doc"
   
    DoCmd.RunCommand acCmdSaveRecord
    loebeNr = val(Left(Mrnr, 3))
    fileName = path & Format(loebeNr, Left("000", 3 + (loebeNr < 100))) & "-" & Right(Mrnr, 2) & ext
   
    Shell "cmd /c start """" """ & fileName & """"
End Sub
Avatar billede jmarques Nybegynder
27. marts 2011 - 19:17 #35
IGEN må jeg sige DU ER SGU GENIAL.

Jeg var lige ved at gå kold her til sidst.

Jeg rettede de steder i koden hvor der stod Mrnr til Hrnr og vupti!!!

Jeg takker mange MANGE gange!!
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