Avatar billede speedpete Nybegynder
17. april 2007 - 08:54 Der er 5 kommentarer og
1 løsning

importere og vise | separeret datafil i Word

Jeg vil gerne lave et word-dokument (da vores kunder har Word), som kan:
1. Vælge hvilken datafil (en | separeret tekstfil), som skal hentes ind.
2. Vise filens indhold. Filen har de første 5 linier fast definererede (det er overskrifterne i regnskabet), og så kommer fra 0 til flere hundrede konti.

Jeg kender brevfletning i Word, og har engang lavet en knap i Excel, som beregnede en masse kolonner (bare lige for at angive mit niveau)
Avatar billede word-hajen Nybegynder
17. april 2007 - 16:36 #1
Hvorfor ikke bruge Words flettefunktion? Her kan du vælge datakilde og bagefter få vist data via Mail Merge Recipients. Eller skaber de første 5 linjer med overskrifterne problemer?

For ellers skal du kode det.

Hvad skal der egentlig ske med data bagefter? For de skal vel ikke "bare" vises - eller hvad?
Avatar billede speedpete Nybegynder
18. april 2007 - 08:16 #2
Jo, de skal "bare" vises (Det er bare en præsentation af data i tekstfilen): 000-006 er de faste, og så kommer der en række konti - i eksemplet startende fra 240, men det kan være hvad som helst:

000|Andeby Kasse|1
001|Regnskab|2006
002|Regnskabsmæssig kassebeholdning primo regnskabsåret|50545
003|- ikke udførte synsudsatte arbejder, budgetteret til regnskabsåret eller senere|0,00
004|+ allerede udførte synsudsatte arbejder, budgetteret til året efter regnskabsåret eller senere|0,00
005|+/- andre forhold|0
006||0
0240|Rengøring|20000
0510|Medhjælp, diæter m.v.|35562,50
0730|Formand|24568,17
0810|ATP|13500,00
... osv derudaf


Jeg har fundet ud af at optage følgende makro, som et andet program sørger for at kalde, når det åbner word-dokumentet:

    Selection.MoveDown Unit:=wdScreen, Count:=1
    Selection.Range.InsertDatabase Format:=0, Style:=0, LinkToSource:=False, _
        Connection:="", SQLStatement:="" & "", PasswordDocument:="", _
        PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:= _
        "", DataSource:="C:\Udtraek.txt", From:=-1, To:=-1, _
        IncludeFields:=True


Den springer forbi overskriften, som jeg har tastet ind i dokumentet, og så viser den tesktfilen som en tabel. Det virker, men har du et bedre forslag?
Avatar billede word-hajen Nybegynder
18. april 2007 - 09:23 #3
Hvis du får det ud af det, som du har behov for, er der ingen grund til at lave noget andet :-) Men havde du ikke behov for at kunne udvælge datafilen - eller er det den samme hver gang?

(ps! har ferie, så slipper pc'en om et kort øjeblik og vender tilbage om et par dage)
Avatar billede speedpete Nybegynder
18. april 2007 - 10:06 #4
Det virker sådan her: Regnskabsprogrammet danner en unik fil a la Id1234XXXDato041807.txt for hvert udtræk, som vi så laver en kopi af og overskriver i Udtraek.txt. Man kunne måske også sende det originale filnavn Id1234XXXDato041807.txt som en parameter på en eller anden måde? Og/eller lave en Filvælger i worddokumentet?
Avatar billede word-hajen Nybegynder
21. april 2007 - 20:30 #5
Dvs. at filen Udtraek.txt reelt er "det-lange-filnavn" omdøbt til Udtraek.txt? Altså der foregår ingenting imellem de 2 versioner af filnavnene.

Du kan sagtens lave en filvælger i word-dokumentet (vba), men jeg synes, at det bør være afhængig af brugeren. Så du skal egentlig opveje fordele/ulemper ved de 2 måder at gøre det på. Det er jo ekstremt nemt for brugeren, at der ikke skal vælges en fil - her skal du selvfølgelig også tænke på fejlmuligheder, hvis du vil have brugeren til at finde/vælge den rigtige fil.
Avatar billede speedpete Nybegynder
15. juni 2007 - 10:16 #6
luk
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
Tag et kursus i Word og øg effektiviteten

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