Avatar billede jimse Nybegynder
28. januar 2003 - 12:40 Der er 15 kommentarer og
1 løsning

Flettebrev i word - hente data i access

Jeg har en database med de data jeg skal bruge i flettebrevet.

Spørgsmålet går så på hvordan jeg kan få data præsenteret rigtigt i word-dokumentet.

F.eks. ser data sådan ud:

Navn      Indhold

Jesper    Rød
Jesper    Blå
Jesper    Grøn
Poul      Blå
Poul      Gul
Per      Brun
Per      Grå

Data i word skulle gerne se nogenlunde sådan ud:

Navn: Jesper  Indhold
              Rød
              Blå
              Grøn
(Ny side)

Her står så næste person o.s.v

Indhold:
Avatar billede pnr Nybegynder
28. januar 2003 - 15:01 #1
Du bruger den funktion der hedder brevflet
Avatar billede pnr Nybegynder
28. januar 2003 - 15:04 #2
Hvis du går i Vis-->Værktøjslinier-->brevfletning

så får du en ekstra linie med komandoer til brevfletning
Avatar billede aovergaard Nybegynder
29. januar 2003 - 00:24 #3
Opret en fil som du kan bruge som datakilde - eller brug din Access fil. Du opretter nu et nyt dokument som skal bruges som hoveddok. Indsæt din tabel. Gå i funktioner - brevfletning. Start ved nr.1 opret hoveddokument, og vælg det aktive vindue. Gå til nr. 2. Opret datakilde og find den fil som du lige har oprettet (eller havde i forvejen)den bliver nu til din datakilde. Du får nu nogle nye felter i din menulinje som dels hedder indsæt fletfelt dels indsæt felt. Stil dig i første celle og indsæt fletfelt. Vælg hvilket felt som skal indsættes. Hvis du har en eller anden bestemt søgning skal du også indsætte et "indsæt felt" dette kunne evt. være "if, then, else" hvor du kan definere dit kriterie. Alle celler du vil have skal flettes i dokumentet skal have indsæt fletfelt, og alle celler der skal have et kriterie skal også have et "indsæt felt".
Avatar billede jimse Nybegynder
29. januar 2003 - 07:30 #4
Tak for indlæggene. Jeg kan godt finde ud af at lave et "almindeligt" brevfletning. Mit problem her er at der ved hver person er en masse underposter. Jeg vil så kun have personen til at figurere én gang og derefter have alle personens underposterne listet op under den enkelte person.
Avatar billede pnr Nybegynder
29. januar 2003 - 08:01 #5
Så må du lave en forspørgesel i access som retunere de felter du skal bruge.
Avatar billede jimse Nybegynder
29. januar 2003 - 08:18 #6
Det har jeg gjort. Problemet er at personen kun skal stå én gang pr. side (i brevhovedet). Resten af posterne skal stå nede i selve brevet.

F.eks

(poster)
Jesper    Rød
Jesper    Blå
Jesper    Grøn

(brevhoved)

Jesper

(liste i brev)

              Rød
              Blå
              Grøn
Avatar billede pnr Nybegynder
29. januar 2003 - 08:22 #7
det er et spørgsmål om hvordan du opbygger din forespørgsel? Prøv at smid sql sætningen
Avatar billede jimse Nybegynder
29. januar 2003 - 08:37 #8
SELECT leverandør.Leverandørnr, leverandør.[Vendor name], leverandør.[Name 2], leverandør.Street, leverandør.[Postal code street], leverandør.City, leverandør.Telephone, [cullets december 2002].[Indkøbsordre nr], [cullets december 2002].Vejeseddelnr, [cullets december 2002].Material, [cullets december 2002].Dato, [cullets december 2002].Kvantum, [cullets december 2002].enh, [cullets december 2002].Beløb
FROM [cullets december 2002] INNER JOIN leverandør ON [cullets december 2002].Leverandør = leverandør.Leverandørnr
GROUP BY leverandør.Leverandørnr, leverandør.[Vendor name], leverandør.[Name 2], leverandør.Street, leverandør.[Postal code street], leverandør.City, leverandør.Telephone, [cullets december 2002].[Indkøbsordre nr], [cullets december 2002].Vejeseddelnr, [cullets december 2002].Material, [cullets december 2002].Dato, [cullets december 2002].Kvantum, [cullets december 2002].enh, [cullets december 2002].Beløb;
Avatar billede jkrons Professor
29. januar 2003 - 10:42 #9
Problemet er, at din forespørgsel peroducerer en post pr. "farve" i stedet for en post pr. "navn", og så med farverne i forskellige felter, hvilket er hvad Word forventer.

Hvis det skal virke i Word er du nødt til at lave et output fr Access, der hedder:

Jesper  Rød Grøn Blå Gul
Poul    Blå Gul

osv.
Avatar billede jimse Nybegynder
29. januar 2003 - 10:53 #10
>>jkrons den er jeg med på, men hvordan laver jeg lige det?
Avatar billede jkrons Professor
29. januar 2003 - 10:56 #11
Godt spørgsmål ;-)

Jeg har en løsning, men den kræver involvering af Excel, og desuden lidt manuelt arbejde. Lad mig lige vide, om du er interesseret.
Avatar billede jimse Nybegynder
29. januar 2003 - 10:58 #12
Det ville være fint, hvis vi kunne komme det nærmere, så jeg er interesseret.
Avatar billede pnr Nybegynder
29. januar 2003 - 11:04 #13
prøv at smid dit spørgsmål under Access (hvis ellers det er en Access DB du har). Der plejer at være nogen der er skrappe til SQL.
Avatar billede jkrons Professor
29. januar 2003 - 11:05 #14
OK. For det første skal du have dine data over i et Excelark. Det kan du nemt fø ved at køre din forespørgsel i Access og så eksportere resultatet til Excel.

Derefter kører du nedenstående makro (skal måske modificeres lidt, da den højst accepterer 3 kolonner).

Den vil søge for, at der skrives

Jesper Rød  Blå Grøn

osv.

Desværre sletter den ikke dubletterne, så det må gøres manuelt. I hvert fald indtil jeg finder en kreativ løsning. Så skal der sættes overskrifter over de nye kolonner, regnearket skal gemmes, og dit word dokument skal flettes med regnearket i stedet for databasen.

Her er i hvert fald makrokoden. Prøv den, og lad mig vide om du kan bruge det til noget.

Sub KombinerPoster()
Dim c As Range
Dim r As Range
Dim col As New Collection

'Navn i kolonne A
'Farve i kolonen B
'Anden info i kolonne C. Denen kolonne behøver ikke være i brug
For Each c In Selection.CurrentRegion.Rows
  On Error Resume Next
  'Findes navnet allerede i samlingen?
  Set r = col(c.Range("A1").Text)
  If Err = 0 Then
  'Navnet er der allerede
  Err.Clear
  Call WorksheetFunction. _
        Match(c.Range("B1").Text, r.EntireRow, 0)
  If Err Then
    'Navnet er der ikke endnu
    With r.End(xlToRight)
      .Offset(0, 1) = c.Range("B1")
      .Offset(0, 2) = c.Range("C1")
    End With
  End If
Else
    'Tilføj et nyt navn til samlingen
    col.Add c.Range("A1"), c.Range("A1").Text
  End If
On Error GoTo 0
Next
Set col = Nothing
End Sub
Avatar billede jimse Nybegynder
10. februar 2003 - 14:19 #15
Da jkrons har lagt mest arbejde i det får jkrons points
Avatar billede jkrons Professor
10. februar 2003 - 14:21 #16
Takker ;-)
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