Avatar billede steensommer Praktikant
24. marts 2003 - 22:58 Der er 26 kommentarer og
1 løsning

Excel-Access-Word problem!

Hej

Jeg har følgende problem:
Jeg har i Excel udfærdiget en grafisk brugerflade hvori der skal indtastes 16 stk person navne og cpr.nr. For hver person skal der anbringes en kommandoknap der tildeles en makro der skal hente data fra en access-database (Personregister.mdb)udfra oplysningerne i excel og overføre disse til et worddokument (der fungerer som skabelon).
Jeg ved ikke om det er fortståeligt og om det overhovedet er muligt vha makro/VBA i Excel?
vh Steen
Avatar billede jkrons Professor
24. marts 2003 - 23:04 #1
Hvorfor inddrage Excel? Kan du ikke lave brugergrænsefladen i Access. Det er vel bare en omvej at involvere Excel i at overføre data fra Access til Word.
Avatar billede steensommer Praktikant
24. marts 2003 - 23:08 #2
Hmm . det er egentlig fordi jeg efterhånden har rimelig erfaring med brugen af excel herunder VBA men kun dårligt kender Access - jeg har endda overvejet helt at skippe Access.
Men kan man da udfra Access udføre ovenstående og er det tilgængeligt?
Avatar billede jkrons Professor
24. marts 2003 - 23:18 #3
Ja, man kan sagtens overføre det fra Access til Word, også ved et tryk på en knap.

Alternativt kan du selvfølgelig udelade Access og have alle data i Excel, som du selv foreslår. Med kun 16 personer burde det også være til at overse.

Og koden kan være næsten den samme på knapperne.
Avatar billede aovergaard Nybegynder
24. marts 2003 - 23:21 #4
Enig med jkrons.
Opret en database med din personer.
Gå i Word og opret et standardbrev som skabelon og flet oplysningerne med din database. Tager under 1/2 min. af flette til samtlige. Derudover kan du også oprette en skabelon hvor du udtrækker data fra din database ved hjælp af at du i Word indsætter database og benytter din database.
Avatar billede steensommer Praktikant
24. marts 2003 - 23:26 #5
Ja jeg er bekendt med at kunne flette det er præcist det vores sekretær gør pt og som jeg skal forsøge at effektivisere - vi har 16 personer (patienter) indlagt af gangen og der skal være hurtig adgang til kontinuationer (word). Desuden skal hun ha' mulighed for at let at finde tidl. patienter der ex. ringer (udfra navn cpr el.lign). - ovenstående er egentlig sagens kerne og grunden til at jeg nok er nødt til at anvende access (alt er i forvejen indtastet der).
Avatar billede aovergaard Nybegynder
24. marts 2003 - 23:35 #6
Hvis i let skal kunne finde tidl. patienter, har I kun brug for Access. I har oprettet en database i Access. Nu skal i så oprettte en forespørgelse i Access, hvor i forespørger på f.eks. navn, personnr. eller andet. Resultatet fra forespørgelsen tager under 1 sek. Dette er set udfra at I har alle patienter indskrevet i databasen.
Avatar billede steensommer Praktikant
24. marts 2003 - 23:42 #7
Det lyder rigtigt MEEEN sekretæren har desværre oprettet flere databaser - en for hver operationstype (3 stk ialt) hvilket gør det ret besværlig at søge eller kan man vha en forespørgsel søge på tværs at databaser?
Man kunne måske også samle databasen - men pågældende sekretær er ikke glad for at man piller ved hendes arbejde?
Avatar billede aovergaard Nybegynder
24. marts 2003 - 23:45 #8
Ja det kan man sagtens. Når man opretter en forespørgelse kan man forespørge i flere forskellige tabeller bare ved at tilføje dem i sin forespørgelse.
Avatar billede steensommer Praktikant
24. marts 2003 - 23:48 #9
Som sagt er jeg ikke speciel Access kyndig men tabeller er vel ikke det samme som separate databaser eller hva'?
Avatar billede aovergaard Nybegynder
24. marts 2003 - 23:51 #10
Nej det er ikke det samme, men de tabeller som ligger andre steder kan let importeres til aktuelle database. Jeg prøver lige at se om man også kan oprette en forespørgelse ud fra andre tabeller i andre databaser øjeblik.
Avatar billede steensommer Praktikant
24. marts 2003 - 23:52 #11
OK afventer - hvis det er muligt kunne det løse dele af problemet!
Avatar billede aovergaard Nybegynder
25. marts 2003 - 00:04 #12
Ok. Du kan kun forespørege fra den samme database. Har i flere forskellige databaser skal i tilføje diverse tabeller i den samme database og derefter er det ikke noget problem. Det er ikke noget problem at tilføje en ny tabel i en eksisterende database.
Avatar billede steensommer Praktikant
25. marts 2003 - 00:07 #13
Ja jeg vil desværre ikke sige at det helt har løst mit problem men måske givet mig en ide om hvad jeg kan gøre - tak for interessen
Avatar billede aovergaard Nybegynder
25. marts 2003 - 00:13 #14
Velbekommen og takker for point :)

Jeg håber også at det har givet dig en idé om hvad i kan gøre, for hvis i har flere databaser kan i samle det til 1 og derfra foretage en forespørgelse helt uden om andre programmer, og i løbet af sek. Håber at det er til hjælp, eller spørg bare her igen og jeg skal uddybe svaret.
Avatar billede jkrons Professor
25. marts 2003 - 01:02 #15
steen-> Du kan lave en ny tom database. Men i stedet for at importere tabellerne til denne, kan du i stedet sammenkæde tabellerne. Så kan de vedligeholdes i de oprindelige databaser, men kan forespørges i den nye.
Avatar billede steensommer Praktikant
25. marts 2003 - 08:10 #16
Vil det sige at man IKKE behøver at "røre" ved de gamle for at lave denne sammenkædning af flere databaser. Hvorledes foregår sammenkædningen? vh Steen
Avatar billede jkrons Professor
25. marts 2003 - 09:23 #17
Nej, du behøver ikke at røre de "gamle" databaser.

Opret en ny, tom database. Vælg Tabel. Klik på Ny. Vælg Sammenkæd Tabel. Find Databasefilen, vælg tabellen.

Gentag for hver tabel du ønsker at sammenkæde. Nu kan du arbejde med tabellen præcis som om den befandt sig i den nye database - herunder også opdatere, hvilket man selvfølgelig skal passe lidt på med, med mindre der er helt styr over, hvem der gør hvad.
Avatar billede jkrons Professor
25. marts 2003 - 10:47 #18
For god ordens skyld vil jeg lige gentage mit svar omkring en "ren" excel/word løsning fra usenet her, til benfice for de ekspertenbrugere, der ikke læser usenet.

"Koden nedenfor forventer at skabelonen hedder kontination.dot ("en rigtig
skabelon"), og at den ligger i standardskabelon biblioteket. Du må selv
eventuelt rette filnavn og -sti.

Mit eksempel indeholder to bogmærker i anbragt i skabelonens header.
(Indsæt - Bogmærke). De hedder hhv. cpr og navn. Lav et bogmærke for hver
information, du vil have skrevet, og gentag linierne, der anbringer tekst i
bogmærket. Koden skal selvfølgelig tilsvarende udvides med variable til den
info, der skal anbringes i andre bogmærker, samt kode der henter værdierne
fra Excel.
Du behøver heller ikke slå fornavn og efternavn sammen som jeg gør, men kan
placere to bogmærker lige ved siden af hinanden'. Husk også at rette stien
til den placering hvor dokumentet gemmes.

'Vi erklærer lige nogen variable
    Dim Wdapp As Object
    Dim Cprnr As String
    Dim Fnavn As String
    Dim Enavn As String
    Dim Navn As String

'Og tildeler dem en værdi baseret på indholdet af arket

    Cprnr = Range("a2").Value
    Fnavn = Range("b2").Value
    Enavn = Range("c2").Value
    Navn = Fnavn & " " & Enavn

'Undersøger om Word er startet
    On Error Resume Next
    Set Wdapp = GetObject(, "Word.application")
    If Err.Number <> 0 Then

'Ellers starter vi word
        Set Wdapp = CreateObject("Word.Application")
    End If

'Så laver vi et nyt tomt dokument baseret på den relevante skabelon
  Wdapp.Documents.Add ("c:\windows\application
data\microsoft\skabeloner\kontinuation.dot")

'Skabelonen indeholder to bogmærker i headeren. De hedder cpr og navn
'I disse bogmærker indsætter vi den variable information fra arket.
    Wdapp.ActiveDocument.Bookmarks("cpr").Range.Text = Cprnr
    Wdapp.ActiveDocument.Bookmarks("Navn").Range.Text = Navn

'Så skal dokumentet gemmes med indholdet af cpr variable som filnavn
' Husk at ret stien til det rigtige i dit tilfælde
    Wdapp.ActiveDocument.SaveAs Filename:="c:\test\" & Cprnr & ".doc"

'Så gør vi Word synlig så der kan skrives i kontinuationen
    Wdapp.Visible = True

'Og frigiver lidt hukommelse når Word lukkes
    Set Wdapp = Nothing
Avatar billede hobz Nybegynder
30. april 2003 - 00:39 #19
jkrons. Jeg har indsat dit script i excel nu, og det virker også til en hvis grad. Det starter word.

Hvordan definerer jeg Cprnr & Navn i excel, så den ved at det er navnet på fields og ikke entry's?
Avatar billede jkrons Professor
30. april 2003 - 08:35 #20
Det gør du ikke :-)  Du skal bare undlade at pege på de celler, der indeholder overskrifterne. Peg på de celler, der indeholder det enty, du vil overføre.
Avatar billede hobz Nybegynder
30. april 2003 - 12:53 #21
Okaj. Jeg får ikke noget output i mine formfields ?? Den laver et dokument der hedder noget med cprnr'et.
Kan man ikke lave det sådan, at det loop'er, altså tager ALLE entries i et excel ark?
Avatar billede jkrons Professor
30. april 2003 - 12:55 #22
Det kan man godt, men så ville det være nemmere bare at benytte almindelig brevfletning i Word med Excelarket som datakilde.
Avatar billede jkrons Professor
30. april 2003 - 12:57 #23
Løsningen til steensommer arbejder ikke med formfields, men med bookmarks, da det oprindelige spørgsmål handlede om at overføre nogle helt specifikke informationer fra Escel til headeren i et word-dokument.
Avatar billede hobz Nybegynder
30. april 2003 - 13:02 #24
Ahaaa.. men er brevfletning ikke også kun specifikke data ?
Vil gerne kunne skrive det samme brev til 10 mennesker, men adressere dem med de 10 menneskers adresser.
Avatar billede jkrons Professor
30. april 2003 - 13:04 #25
Og det er præcis det, du gør med brevfletning.

Løsningen ovenfor er beregnet til, at du kan overføre navn og adresse på en enkelt person til et dokument, og hvor selve dokumentteksten er forskellig fra gang til gang.
Avatar billede hobz Nybegynder
30. april 2003 - 13:13 #26
Okay, tak for svar!
Avatar billede jkrons Professor
30. april 2003 - 13:15 #27
Velbekomme! Volder brevfletning med Excel problemer, så opret et spørgsmål i Teksbehandlingskategorien, Så ser vi på det der :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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