23. oktober 2003 - 11:30Der er
38 kommentarer og 1 løsning
Oprette et "felt" som viser en popupbesked for brugeren
Hvordan indsætter jeg et "felt" i en skabelon som viser en popupbesked for brugeren.
Brugeren skal anvende en skabelon, hvor han/hun først udfylder nogle filin-felter. Til sidst i dokumentet skal brugeren så huskes på et eller andet og det er her popupbeskeden kommer ind - men hvordan???
Det skal ske lige efter alle filin felter er udfyldt... inden dokumentet lukkes men ikke når det lukkes.
Kan man ikke også få vist dokumentet inden man begynder at udfylde alle filin-felter? Det kunne være ret rart at kunne se hvilket dokument man sidder med hvis man ikke er helt sikker. Som det er nu vises bare en blank side indtil alle filin-felter er udfyldt.
Fill-in felter er sat til at starte, når dokumentet åbnes, hvilket gør at man ikke kan se dokumenet :-(
Men hvis du ikke har Fill-in felter i sidehovedet, så ville jeg erstatte dem med formularfelter og beskytte dokumentet. På det sidste formularfelt ville jeg så lave en makro, der viser din besked. Jeg kan send dig et eksempel *S*
Jeg ville nu overveje at lave en userform, men det kræver at man kan lidt VBA. Du kan se (og hente) et par eksempler her: http://www.kursusmaterialer.dk/Word%202000%20skabeloner/Filer/Oversigt.aspx Husk at filerne skal gemmes som .dot filer og at du skal have dit makro sikkerhedsniveau til mellem eller lav, hvis det skal virke. Der er også lidt materiale om at lave userforms på www.kursusmaterialer.dk, men det er mest beregnet til at støtte undervisning og ikke så meget til selvstudie.
->thor.ostergaard: Jeg er enig med dig i at man kan lave en userform, men det kræver jo at man kan programmere, hvilket almindelige formularfelter ikke kræver. Samtidigt er den store fordel ved formularfelter, at man kan se dokumentet og udfylde det løbende (også hvis det bare er nogle få oplysninger, der skal indsættes før dokumentbeskyttelsen fjernes).
Det kan også være at I kan hjælpe med om jeg egentligt gør det her jeg laver rigtigt i stedet - for det er nok egentligt det i sidste ende.
Jeg har en række .dot-skabeloner som (næsten) alle skal anvende en VB-kode der består af to moduler, som jeg har lavet. VB-koden henter adresseoplysninger mv. fra en Notesdatabase ud fra hvilken bruger der er logget på maskinen. Som det er nu, har jeg tilføjet de to moduler til alle dokumenter, og det er jo ikke særligt smart da der er ca. 300 stk. og hvis jeg bare skal rette en lille ting skal jeg til at igennem alle dokumenter igen. Det jeg gør nu ved hvert dokument er:
1. Jeg går ind i VB-editoren fra word og tilføjer de 2 moduler 2. Tilføje en kode til ThisDocument, som starter VB-koden når dukumentet åbnes. 3. Tilføje en reference til Lotus Notes (Lotus Domino Objects)
Er det den rigtige måde jeg gør det på - jeg synes det virker besværligt. Man man ikke få alle de .dot dokumenter til at anvende de 2 moduler??
Ok - lige for at sætte niveauet, så har jeg programmeret over 4 år i VB og har allerede lavet den VB-kode som jeg lige har beskrevet. Det er egentligt bare hvordan man får word til at bruge det rigtigt og mest smart!!!
Du skal ligge din kode i en dot-fil og ligge dot-filen i startup biblioteket på brugernes computere. På den måde ligger din kode kun et sted og du skal derfor ikke vedligeholde 300 dot-filer, men kun 1.
Ja, men er det så simpelt?? Hvordan får man så alle de .dot filer som skal bruge den ene .dot-fil til det? Den må heller ikke gøre det i alle dokumenter som åbnes i word nemlig.
Okay.. men stadig hvordan får man fortalt de 300 .dot-fil at de skla bruge den ene .dot-fil hvor koden ligger i?? Skriver man en sti til den fil eller??
Når du har placeret Kodebibliotke.dot i brugerenes StartUp bibliotek, vil filen blive åbnet som et tilføjelsesprogram, når Word åbnes, og du har derfor altid adgang til dine makroer, når Word er åben.
Jeg sender dig et eksempel om et øjeblik - skal lige gøre det klar *S* Du får den store forkromede løsning med kodebibliotek, skabelon og standartekster.
Alletiders... nu prøver jeg lige at lave den fil du kalder kodebibliotek. Her ligger jeg så selve koden som henter fra notesdatabasen og opdaterer bogmærkerne i de .dot dokumenter som anvender den.
Jeg kan se man godt kan lave STARTUP mappen om men er det klogt at gøre, eller er det ligemeget? Det er for at slippe for at alle brugere skal have kopieret kodebib ind på c, så kan de jo lige så godt hente den fra en server!?
Hvis du har massere netværksplads (her mener jeg hastighed), så kan du bare lave en mappe på netværket og så lave brugernes StartUp sti om til denne mappe - men så kan de ikke arbejde med systemet offline (men det kan de sikkert heller ikke alligevel, når du hente indfomationer fra Notes)
Men... jeg vil anbefale dig at lave en produktionsmappe og en testmappe, da du ikke kan ændre i kodebibliotek.dot, hvis en bruger har den åben (d.v.s. Word åben)
Kan man så sende en parameter med over til den makro som laver msgbox'en om hvad der skal stå i boksen, så jeg ikke skal til at oprette en makro til hver messagebox?
Jep - du skal bruge navnet på formularfeltet (det er egenskaben bogmærke) - her er koden til det:
'Finder det aktive formularfelts bogmærke If Selection.FormFields.Count = 1 Then 'No textbox but a check- or listbox svar = Selection.Bookmarks(Selection.Bookmarks.Count).Name ElseIf Selection.FormFields.Count = 0 And Selection.Bookmarks.Count > 0 Then svar = Selection.Bookmarks(Selection.Bookmarks.Count).Name End If
Du kan så lave en Case select, hvor du spørger på "svar"
Det kører - du får lige dine point, men skal også lige høre...
Jeg har et sted hvor jeg får opdateret et bogmærke vha. den kode jeg har skrevet i VB. Lidt længere nede har jeg så indsat en reference til det bogmærke { REF bogmærke }.
Men referencen bliver ikke opdateret!?!? Der skal jeg ned og stille mig i på referencen og trykke F9, så opdaterer den. Jeg kan jeg få den til at gøre det automatisk??
Ja det virker også sådan da... men på den måde skal man igennem alle filin-felterne igen, for dem vil den også have opdateret... tror du man bare kan opdatere REF felterne???
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.