Discussion:
Mailmerge: herhalen binnen één document ?
(te oud om op te antwoorden)
Guus
2007-02-05 09:19:00 UTC
Permalink
Hallo,
Voor het geven van Feedback heb ik 2 mailmerge-documenten:
- één detailoverzicht per patiënt
- één globaal overzicht van alle patiënten samen

Ik wil dit combineren tot één Mailmerge-document, maar ik vraag me af of dat
überhaupt mogelijk is?

De details:
Het uiteindelijk document begint met het globaal overzicht; hierin staat de
naam van de patiënt en het gescoorde cijfer. De regel wordt afgesloten met
«Next Record If» waardoor op de volgende regel de volgende patient komt met
zijn gescoorde cijfer. Het document bevat max. 10 patiënten, in het
totaaloverzicht staan, naast de overige opmaak dus max. 10 regels
SAMENGEVOEGDE gegevens.

Op het einde van deze bladzijde zet ik een sectie-einde, waarna ik het
detailoverzicht wil beginnen. Het probleem is echter dat in het
detailoverzicht één bladzijde per patiënt gemaakt wordt (en dat wil ik ook zo
houden).

CONCRETE VRAAG IS M.I.:
Hoe kan ik in een samenvoegdocument aangeven: «Record 1» zoals bijvoorbeeld
er ook is «Next Record If»?

Alvast bedankt,
Guus
Dave
2007-02-05 16:15:01 UTC
Permalink
Guus,

Zwaar balen dat Word (tot versie 2003 in ieder geval; ik heb versie 2007
niet) niet de opdrachten {Record nr.} of {Previous} kent, terwijl hij dus WEL
{Next} kent.

Concreet houdt dat in, dat hetgeen je wilt niet kan.

Alhoewel...
Je zegt dat de Overzichts blz. maximaal 10 regels samengevoegde regels
bevat. Als er per regel niet al te veel velden staan (je noemt alleen: "naam
van de patiënt en het gescoorde cijfer" - dus: 2)...
Dan zou je VOOR het {NEXT} veld aan het einde van het "detailoverzicht per
patiënt" de gegevens voor het Globale overzicht op moeten slaan in variablen,
met gebruik van het {SET} commando.

Je samenvoeg document zou dus moeten bestaan uit 11 blz. In tegenstelling
tot wat je nu hebt, op blz. 1-10 de gegevens van iedere patient (1 per blz.)
met aan het einde van de tekst een {NEXT} en wellicht een pagina einde.
Kwestie van kopieren en plakken. MAAR... vóór dat {NEXT} commando sla je de
twee gegevens voor het overzicht op in twee variablen. Op blz. 11 het
overzicht van die 10 patienten.

Dan krijg je aan het einde van elk van de eerste 10 blz. zoiets:
{SET Patient1 {Patient_Naam}}{SET Score1 {Score}}{NEXT}
Op de volgende blz. moet je de naam van de variabelen natuurlijk verhogen
tot Patient2 en Score2, enz.
Op blz. 11 druk je gewoon de variablen af per regel:
{Patient1} - {Score1}
{Patient2} - {Score2}
{Patient3} - {Score3}
enz.

Je weet toch dat je die accolades maakt met CTRL F9 en dat je alle velden
zichtbaar (en dus bewerkbaar) maakt met CTRL a en Shift F9?

Het is mogelijk, dat je de allerlaatste (dus op blz. 10) {NEXT} weg moet
laten, omdat wanneer Word ziet dat hij aan het einde van z'n samenvoeg slag
is, hij zelf al een {NEXT} commando geeft. Ik weet dit niet meer zeker, maar
het is vrij makkelijk te zien in het resultaat (via Samenvoegen naar Nieuw
Document) dat het eerste record van de volgende 10 patienten begint bij
patient nr. 12 i.p.v. bij patient nur 11 OF dat patient nr. 10 herhaald wordt.

Het is mogelijk dat ALS er het totaal aantal records niet een veelvoud is
van 10, Word bij de laatste pagina's de data van de ongebruikte SET
commando's gaat herhalen. Wellicht informatie van vorige patienten of de
informatie van de laatste patient. Dit is wellicht op te heffen door aan het
begin van het document alle variabelen die je gebruikt met 20 {SET}
commando's "Leeg" te maken. Bijv: {SET Patient1 ""} enz. Wat natuurlijk ook
kan (in plaats van alle eventualiteiten proberen af te vangen), is dat je
altijd Samenvoegt naar nieuwe document en in dat Nieuwe Document even
handmatig die laatste Overzichts pagina aanpast.

Als deze oefening er specifiek om gaat om deze pagina's zo uit de printer te
persen: Overzicht 10 patienten - 10 patienten blz. enz. dan zul je VEEL meer
informatie in variabelen moeten gaan proppen. Geen idee hoeveel dat is. Aan
jou om te beslissen of dat de moeite waar is. :-)

Als de data in Access staat, dan kun je overwegen om ze in een Rapport te
bundelen. Dat moet kunnen. Niet hier vragen HOE. Maar in de Access
gebruikersgroep! Trouwens, als de data in Excel staat, is dat probleemloos in
Access in te lezen en vandaar in een Rapport te verwerken.

David
Post by Guus
Hallo,
- één detailoverzicht per patiënt
- één globaal overzicht van alle patiënten samen
Ik wil dit combineren tot één Mailmerge-document, maar ik vraag me af of dat
überhaupt mogelijk is?
Het uiteindelijk document begint met het globaal overzicht; hierin staat de
naam van de patiënt en het gescoorde cijfer. De regel wordt afgesloten met
«Next Record If» waardoor op de volgende regel de volgende patient komt met
zijn gescoorde cijfer. Het document bevat max. 10 patiënten, in het
totaaloverzicht staan, naast de overige opmaak dus max. 10 regels
SAMENGEVOEGDE gegevens.
Op het einde van deze bladzijde zet ik een sectie-einde, waarna ik het
detailoverzicht wil beginnen. Het probleem is echter dat in het
detailoverzicht één bladzijde per patiënt gemaakt wordt (en dat wil ik ook zo
houden).
Hoe kan ik in een samenvoegdocument aangeven: «Record 1» zoals bijvoorbeeld
er ook is «Next Record If»?
Alvast bedankt,
Guus
Guus
2007-02-06 11:51:00 UTC
Permalink
Beste David,
Bedankt zover voor de uitgebreide uitleg.
Mijn probleem met jouw voorstel is, dat ik dus na élk record een SET krijg,
maar die moet ik dan toch VARIABEL nummeren.

Een andere optie heb ik ook al geprobeerd:
1. Overzicht samenvoegen tot document A.
2. Detailoverzicht samenvoegen tot document B.
3. Het resultaat van B plakken onder het resultaat van A.
Dat heb ik geprobeerd met de volgende code, maar NU kan ik weer niet
wisselen
van dataset, dat schiet dus ook niet op:

Dim Code As String
Code = InputBox("Geef de blokcode (bijvoorbeeld B13R074)", "Overzichten
samenvoegen en koppelen met Feedback")

Documents.Open _
FileName:="D\Primair_Overzicht.doc", _
ConfirmConversions:=True, _
Format:=wdOpenFormatAuto

With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.Name = "D:\" & Code & ".xls"
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With

Windows("Primair_Overzicht.doc (Read-Only)").Close savechanges:=False

'Maak een nieuwe sectie vanaf een nieuwe bladzijde voor Detail-Feedback
Selection.EndKey Unit:=wdStory
Selection.InsertBreak Type:=wdSectionBreakNextPage
With Selection.PageSetup
.Orientation = wdOrientLandscape
.TopMargin = CentimetersToPoints(0.5)
.BottomMargin = CentimetersToPoints(0.5)
.LeftMargin = CentimetersToPoints(1.5)
.RightMargin = CentimetersToPoints(1.5)
.HeaderDistance = CentimetersToPoints(0.4)
.FooterDistance = CentimetersToPoints(0.4)
.PageWidth = CentimetersToPoints(29.7)
.PageHeight = CentimetersToPoints(21)
.SectionStart = wdSectionNewPage
End With

Documents.Open FileName:="D:\Primair_Details.doc", _
ConfirmConversions:=True, _
Format:=wdOpenFormatAuto

With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.Name = "D:\" & Code & ".xls"
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = "^m"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.EndKey Unit:=wdStory
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
Selection.Copy
ActiveDocument.Close

Selection.PasteAndFormat (wdPasteDefault)
Selection.HomeKey Unit:=wdStory
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = "^m"
.Forward = True
.Wrap = wdFindContinue
End With

If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.EndKey Unit:=wdStory, Extend:=wdExtend
With Selection.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientLandscape
.HeaderDistance = CentimetersToPoints(0.4)
.FooterDistance = CentimetersToPoints(0.4)
.PageWidth = CentimetersToPoints(29.7)
.PageHeight = CentimetersToPoints(21)
End With
Selection.HomeKey Unit:=wdStory
ActiveDocument.SaveAs _
FileName:="D:\" & Code & ".doc", _
FileFormat:=wdFormatDocument
End Sub

Misschien moet ik concluderen, dat mijn wens niet helemaal reëel is.
Toch bedankt voor de hulp.
Groet,
Guus
Post by Dave
Guus,
Zwaar balen dat Word (tot versie 2003 in ieder geval; ik heb versie 2007
niet) niet de opdrachten {Record nr.} of {Previous} kent, terwijl hij dus WEL
{Next} kent.
Concreet houdt dat in, dat hetgeen je wilt niet kan.
Alhoewel...
Je zegt dat de Overzichts blz. maximaal 10 regels samengevoegde regels
bevat. Als er per regel niet al te veel velden staan (je noemt alleen: "naam
van de patiënt en het gescoorde cijfer" - dus: 2)...
Dan zou je VOOR het {NEXT} veld aan het einde van het "detailoverzicht per
patiënt" de gegevens voor het Globale overzicht op moeten slaan in variablen,
met gebruik van het {SET} commando.
Je samenvoeg document zou dus moeten bestaan uit 11 blz. In tegenstelling
tot wat je nu hebt, op blz. 1-10 de gegevens van iedere patient (1 per blz.)
met aan het einde van de tekst een {NEXT} en wellicht een pagina einde.
Kwestie van kopieren en plakken. MAAR... vóór dat {NEXT} commando sla je de
twee gegevens voor het overzicht op in twee variablen. Op blz. 11 het
overzicht van die 10 patienten.
{SET Patient1 {Patient_Naam}}{SET Score1 {Score}}{NEXT}
Op de volgende blz. moet je de naam van de variabelen natuurlijk verhogen
tot Patient2 en Score2, enz.
{Patient1} - {Score1}
{Patient2} - {Score2}
{Patient3} - {Score3}
enz.
Je weet toch dat je die accolades maakt met CTRL F9 en dat je alle velden
zichtbaar (en dus bewerkbaar) maakt met CTRL a en Shift F9?
Het is mogelijk, dat je de allerlaatste (dus op blz. 10) {NEXT} weg moet
laten, omdat wanneer Word ziet dat hij aan het einde van z'n samenvoeg slag
is, hij zelf al een {NEXT} commando geeft. Ik weet dit niet meer zeker, maar
het is vrij makkelijk te zien in het resultaat (via Samenvoegen naar Nieuw
Document) dat het eerste record van de volgende 10 patienten begint bij
patient nr. 12 i.p.v. bij patient nur 11 OF dat patient nr. 10 herhaald wordt.
Het is mogelijk dat ALS er het totaal aantal records niet een veelvoud is
van 10, Word bij de laatste pagina's de data van de ongebruikte SET
commando's gaat herhalen. Wellicht informatie van vorige patienten of de
informatie van de laatste patient. Dit is wellicht op te heffen door aan het
begin van het document alle variabelen die je gebruikt met 20 {SET}
commando's "Leeg" te maken. Bijv: {SET Patient1 ""} enz. Wat natuurlijk ook
kan (in plaats van alle eventualiteiten proberen af te vangen), is dat je
altijd Samenvoegt naar nieuwe document en in dat Nieuwe Document even
handmatig die laatste Overzichts pagina aanpast.
Als deze oefening er specifiek om gaat om deze pagina's zo uit de printer te
persen: Overzicht 10 patienten - 10 patienten blz. enz. dan zul je VEEL meer
informatie in variabelen moeten gaan proppen. Geen idee hoeveel dat is. Aan
jou om te beslissen of dat de moeite waar is. :-)
Als de data in Access staat, dan kun je overwegen om ze in een Rapport te
bundelen. Dat moet kunnen. Niet hier vragen HOE. Maar in de Access
gebruikersgroep! Trouwens, als de data in Excel staat, is dat probleemloos in
Access in te lezen en vandaar in een Rapport te verwerken.
David
Post by Guus
Hallo,
- één detailoverzicht per patiënt
- één globaal overzicht van alle patiënten samen
Ik wil dit combineren tot één Mailmerge-document, maar ik vraag me af of dat
überhaupt mogelijk is?
Het uiteindelijk document begint met het globaal overzicht; hierin staat de
naam van de patiënt en het gescoorde cijfer. De regel wordt afgesloten met
«Next Record If» waardoor op de volgende regel de volgende patient komt met
zijn gescoorde cijfer. Het document bevat max. 10 patiënten, in het
totaaloverzicht staan, naast de overige opmaak dus max. 10 regels
SAMENGEVOEGDE gegevens.
Op het einde van deze bladzijde zet ik een sectie-einde, waarna ik het
detailoverzicht wil beginnen. Het probleem is echter dat in het
detailoverzicht één bladzijde per patiënt gemaakt wordt (en dat wil ik ook zo
houden).
Hoe kan ik in een samenvoegdocument aangeven: «Record 1» zoals bijvoorbeeld
er ook is «Next Record If»?
Alvast bedankt,
Guus
Dave
2007-02-06 13:34:00 UTC
Permalink
Guus,

Van macro's en VBA heb ik geen kaas gegeten. Dus dat deel van je respons heb
ik genegeerd omdat ik er niets zinnigs over kan zeggen.

Ik heb toch aangegeven dat je de variabelen voor elk record moet
doornummeren? Je kunt na het aanmaken van de eerste Patient blz. (en
controleren dat die werkt), deze kopieren en 9x plakken tot je er 10 hebt.
Daarna kun je (vrij snel) handmatig alle nummers achter de variabelen in de
twee SET commando's per blz. (in mijn voorstel Patient1 en Score1) ophogen
tot Patient10 en Score10. Dit hoef je natuurlijk maar 1x te doen. Ik bedoel
dus 9x in 1 samenvoeg document. Daarna werkt het voortaan feilloos.

Dit lijkt mij een stuk minder werk dan macro's of VBA zitten schrijven -
zeker als dan blijkt dat deze niet werken! :-( Mijn voorstel moet werken,
misschien dat het hier en daar nog bijgeschaafd moet worden, (zoals bijv. of
je het laatste NEXT commondo moet verwijderen of niet) dat blijkt gaandeweg
wel. Je moet dan echter wel accepteren dat de Overzichtblz. NA de blz. voor
de 10 patienten komt. Als het ook daarom te doen was, dan moet je, zoals ik
al zei, veel meer dingen in variabelen gaan proppen.

Ik doe iets dergelijks ook om vanuit en database met Kinderen brieven te
produceren voor elk gezin met data over elk van hun kinderen in dezelfde
brief. Werkt perfect.

Rapporten maken vanuit Access (als de data daar in staat of vanuit Excel
naar Access over te brengen is) werkt misschien toch nog het handigst. Daar
reageer je niet op.

David
Post by Guus
Beste David,
Bedankt zover voor de uitgebreide uitleg.
Mijn probleem met jouw voorstel is, dat ik dus na élk record een SET krijg,
maar die moet ik dan toch VARIABEL nummeren.
1. Overzicht samenvoegen tot document A.
2. Detailoverzicht samenvoegen tot document B.
3. Het resultaat van B plakken onder het resultaat van A.
Dat heb ik geprobeerd met de volgende code, maar NU kan ik weer niet
wisselen
Dim Code As String
Code = InputBox("Geef de blokcode (bijvoorbeeld B13R074)", "Overzichten
samenvoegen en koppelen met Feedback")
Documents.Open _
FileName:="D\Primair_Overzicht.doc", _
ConfirmConversions:=True, _
Format:=wdOpenFormatAuto
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.Name = "D:\" & Code & ".xls"
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
Windows("Primair_Overzicht.doc (Read-Only)").Close savechanges:=False
'Maak een nieuwe sectie vanaf een nieuwe bladzijde voor Detail-Feedback
Selection.EndKey Unit:=wdStory
Selection.InsertBreak Type:=wdSectionBreakNextPage
With Selection.PageSetup
.Orientation = wdOrientLandscape
.TopMargin = CentimetersToPoints(0.5)
.BottomMargin = CentimetersToPoints(0.5)
.LeftMargin = CentimetersToPoints(1.5)
.RightMargin = CentimetersToPoints(1.5)
.HeaderDistance = CentimetersToPoints(0.4)
.FooterDistance = CentimetersToPoints(0.4)
.PageWidth = CentimetersToPoints(29.7)
.PageHeight = CentimetersToPoints(21)
.SectionStart = wdSectionNewPage
End With
Documents.Open FileName:="D:\Primair_Details.doc", _
ConfirmConversions:=True, _
Format:=wdOpenFormatAuto
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.Name = "D:\" & Code & ".xls"
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = "^m"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.EndKey Unit:=wdStory
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
Selection.Copy
ActiveDocument.Close
Selection.PasteAndFormat (wdPasteDefault)
Selection.HomeKey Unit:=wdStory
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = "^m"
.Forward = True
.Wrap = wdFindContinue
End With
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.EndKey Unit:=wdStory, Extend:=wdExtend
With Selection.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientLandscape
.HeaderDistance = CentimetersToPoints(0.4)
.FooterDistance = CentimetersToPoints(0.4)
.PageWidth = CentimetersToPoints(29.7)
.PageHeight = CentimetersToPoints(21)
End With
Selection.HomeKey Unit:=wdStory
ActiveDocument.SaveAs _
FileName:="D:\" & Code & ".doc", _
FileFormat:=wdFormatDocument
End Sub
Misschien moet ik concluderen, dat mijn wens niet helemaal reëel is.
Toch bedankt voor de hulp.
Groet,
Guus
Post by Dave
Guus,
Zwaar balen dat Word (tot versie 2003 in ieder geval; ik heb versie 2007
niet) niet de opdrachten {Record nr.} of {Previous} kent, terwijl hij dus WEL
{Next} kent.
Concreet houdt dat in, dat hetgeen je wilt niet kan.
Alhoewel...
Je zegt dat de Overzichts blz. maximaal 10 regels samengevoegde regels
bevat. Als er per regel niet al te veel velden staan (je noemt alleen: "naam
van de patiënt en het gescoorde cijfer" - dus: 2)...
Dan zou je VOOR het {NEXT} veld aan het einde van het "detailoverzicht per
patiënt" de gegevens voor het Globale overzicht op moeten slaan in variablen,
met gebruik van het {SET} commando.
Je samenvoeg document zou dus moeten bestaan uit 11 blz. In tegenstelling
tot wat je nu hebt, op blz. 1-10 de gegevens van iedere patient (1 per blz.)
met aan het einde van de tekst een {NEXT} en wellicht een pagina einde.
Kwestie van kopieren en plakken. MAAR... vóór dat {NEXT} commando sla je de
twee gegevens voor het overzicht op in twee variablen. Op blz. 11 het
overzicht van die 10 patienten.
{SET Patient1 {Patient_Naam}}{SET Score1 {Score}}{NEXT}
Op de volgende blz. moet je de naam van de variabelen natuurlijk verhogen
tot Patient2 en Score2, enz.
{Patient1} - {Score1}
{Patient2} - {Score2}
{Patient3} - {Score3}
enz.
Je weet toch dat je die accolades maakt met CTRL F9 en dat je alle velden
zichtbaar (en dus bewerkbaar) maakt met CTRL a en Shift F9?
Het is mogelijk, dat je de allerlaatste (dus op blz. 10) {NEXT} weg moet
laten, omdat wanneer Word ziet dat hij aan het einde van z'n samenvoeg slag
is, hij zelf al een {NEXT} commando geeft. Ik weet dit niet meer zeker, maar
het is vrij makkelijk te zien in het resultaat (via Samenvoegen naar Nieuw
Document) dat het eerste record van de volgende 10 patienten begint bij
patient nr. 12 i.p.v. bij patient nur 11 OF dat patient nr. 10 herhaald wordt.
Het is mogelijk dat ALS er het totaal aantal records niet een veelvoud is
van 10, Word bij de laatste pagina's de data van de ongebruikte SET
commando's gaat herhalen. Wellicht informatie van vorige patienten of de
informatie van de laatste patient. Dit is wellicht op te heffen door aan het
begin van het document alle variabelen die je gebruikt met 20 {SET}
commando's "Leeg" te maken. Bijv: {SET Patient1 ""} enz. Wat natuurlijk ook
kan (in plaats van alle eventualiteiten proberen af te vangen), is dat je
altijd Samenvoegt naar nieuwe document en in dat Nieuwe Document even
handmatig die laatste Overzichts pagina aanpast.
Als deze oefening er specifiek om gaat om deze pagina's zo uit de printer te
persen: Overzicht 10 patienten - 10 patienten blz. enz. dan zul je VEEL meer
informatie in variabelen moeten gaan proppen. Geen idee hoeveel dat is. Aan
jou om te beslissen of dat de moeite waar is. :-)
Als de data in Access staat, dan kun je overwegen om ze in een Rapport te
bundelen. Dat moet kunnen. Niet hier vragen HOE. Maar in de Access
gebruikersgroep! Trouwens, als de data in Excel staat, is dat probleemloos in
Access in te lezen en vandaar in een Rapport te verwerken.
David
Post by Guus
Hallo,
- één detailoverzicht per patiënt
- één globaal overzicht van alle patiënten samen
Ik wil dit combineren tot één Mailmerge-document, maar ik vraag me af of dat
überhaupt mogelijk is?
Het uiteindelijk document begint met het globaal overzicht; hierin staat de
naam van de patiënt en het gescoorde cijfer. De regel wordt afgesloten met
«Next Record If» waardoor op de volgende regel de volgende patient komt met
zijn gescoorde cijfer. Het document bevat max. 10 patiënten, in het
totaaloverzicht staan, naast de overige opmaak dus max. 10 regels
SAMENGEVOEGDE gegevens.
Op het einde van deze bladzijde zet ik een sectie-einde, waarna ik het
detailoverzicht wil beginnen. Het probleem is echter dat in het
detailoverzicht één bladzijde per patiënt gemaakt wordt (en dat wil ik ook zo
houden).
Hoe kan ik in een samenvoegdocument aangeven: «Record 1» zoals bijvoorbeeld
er ook is «Next Record If»?
Alvast bedankt,
Guus
Guus
2007-02-07 08:58:00 UTC
Permalink
Sorry Dave,
Ik geef het op, want:
1. Ik heb op het einde van mijn samenvoegdocument (ÉÉN bladzijde) de
set-commando's gezet om resp. {Naam Patient} en {Score Patient} in
afzonderlijke variabelen te zetten. Dat lukt nog wel. Maar dààr houdt het
primaire bestand voor mailmerge op, dus ik kan alleen bij het volgende record
komen door middel van commando {Next}.
Door het plaatsen van {Next} sla ik op deze manier steeds een record over,
wat ook niet de bedoeling is.

2. Jouw suggestie van Access-rapport: De bron van de berekeningen is SPSS
met ongeveer 200 variabelen. M.i. kan MS Access dat helemaal niet aan.
Aangezien MS-Office veel beter kan presenteren als SPSS, exporteer ik steeds
SPSS-data naar Excel voor deze toepassing.
Mailmerge met Word doet goed werk

3. De beschreven toepassing NU is de eerste, die naast één bladzijde details
voor elke patient òòk een totaaloverzicht bevat voor alle patienten.

Ik vind het fijn, dat je me op weg wilde helpen. Maar mijn vraag lijkt hoe
langer hoe meer niet te realiseren. Ik ga terug naar het oude:
1. Detailoverzicht met ca. 200 (jawel) variabelen, waaronder ook de
variabele rapportcijfer
2. Totaaloverzicht van alle patienten, waarin uitsluitend het rapportcijfer
staat, met een standaardafwijking en het aantal onderzoeken dat de patient
ondergaan heeft.

Groet,
Guus
Post by Dave
Guus,
Van macro's en VBA heb ik geen kaas gegeten. Dus dat deel van je respons heb
ik genegeerd omdat ik er niets zinnigs over kan zeggen.
Ik heb toch aangegeven dat je de variabelen voor elk record moet
doornummeren? Je kunt na het aanmaken van de eerste Patient blz. (en
controleren dat die werkt), deze kopieren en 9x plakken tot je er 10 hebt.
Daarna kun je (vrij snel) handmatig alle nummers achter de variabelen in de
twee SET commando's per blz. (in mijn voorstel Patient1 en Score1) ophogen
tot Patient10 en Score10. Dit hoef je natuurlijk maar 1x te doen. Ik bedoel
dus 9x in 1 samenvoeg document. Daarna werkt het voortaan feilloos.
Dit lijkt mij een stuk minder werk dan macro's of VBA zitten schrijven -
zeker als dan blijkt dat deze niet werken! :-( Mijn voorstel moet werken,
misschien dat het hier en daar nog bijgeschaafd moet worden, (zoals bijv. of
je het laatste NEXT commondo moet verwijderen of niet) dat blijkt gaandeweg
wel. Je moet dan echter wel accepteren dat de Overzichtblz. NA de blz. voor
de 10 patienten komt. Als het ook daarom te doen was, dan moet je, zoals ik
al zei, veel meer dingen in variabelen gaan proppen.
Ik doe iets dergelijks ook om vanuit en database met Kinderen brieven te
produceren voor elk gezin met data over elk van hun kinderen in dezelfde
brief. Werkt perfect.
Rapporten maken vanuit Access (als de data daar in staat of vanuit Excel
naar Access over te brengen is) werkt misschien toch nog het handigst. Daar
reageer je niet op.
David
Post by Guus
Beste David,
Bedankt zover voor de uitgebreide uitleg.
Mijn probleem met jouw voorstel is, dat ik dus na élk record een SET krijg,
maar die moet ik dan toch VARIABEL nummeren.
1. Overzicht samenvoegen tot document A.
2. Detailoverzicht samenvoegen tot document B.
3. Het resultaat van B plakken onder het resultaat van A.
Dat heb ik geprobeerd met de volgende code, maar NU kan ik weer niet
wisselen
Dim Code As String
Code = InputBox("Geef de blokcode (bijvoorbeeld B13R074)", "Overzichten
samenvoegen en koppelen met Feedback")
Documents.Open _
FileName:="D\Primair_Overzicht.doc", _
ConfirmConversions:=True, _
Format:=wdOpenFormatAuto
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.Name = "D:\" & Code & ".xls"
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
Windows("Primair_Overzicht.doc (Read-Only)").Close savechanges:=False
'Maak een nieuwe sectie vanaf een nieuwe bladzijde voor Detail-Feedback
Selection.EndKey Unit:=wdStory
Selection.InsertBreak Type:=wdSectionBreakNextPage
With Selection.PageSetup
.Orientation = wdOrientLandscape
.TopMargin = CentimetersToPoints(0.5)
.BottomMargin = CentimetersToPoints(0.5)
.LeftMargin = CentimetersToPoints(1.5)
.RightMargin = CentimetersToPoints(1.5)
.HeaderDistance = CentimetersToPoints(0.4)
.FooterDistance = CentimetersToPoints(0.4)
.PageWidth = CentimetersToPoints(29.7)
.PageHeight = CentimetersToPoints(21)
.SectionStart = wdSectionNewPage
End With
Documents.Open FileName:="D:\Primair_Details.doc", _
ConfirmConversions:=True, _
Format:=wdOpenFormatAuto
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.Name = "D:\" & Code & ".xls"
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = "^m"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.EndKey Unit:=wdStory
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
Selection.Copy
ActiveDocument.Close
Selection.PasteAndFormat (wdPasteDefault)
Selection.HomeKey Unit:=wdStory
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = "^m"
.Forward = True
.Wrap = wdFindContinue
End With
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.EndKey Unit:=wdStory, Extend:=wdExtend
With Selection.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientLandscape
.HeaderDistance = CentimetersToPoints(0.4)
.FooterDistance = CentimetersToPoints(0.4)
.PageWidth = CentimetersToPoints(29.7)
.PageHeight = CentimetersToPoints(21)
End With
Selection.HomeKey Unit:=wdStory
ActiveDocument.SaveAs _
FileName:="D:\" & Code & ".doc", _
FileFormat:=wdFormatDocument
End Sub
Misschien moet ik concluderen, dat mijn wens niet helemaal reëel is.
Toch bedankt voor de hulp.
Groet,
Guus
Post by Dave
Guus,
Zwaar balen dat Word (tot versie 2003 in ieder geval; ik heb versie 2007
niet) niet de opdrachten {Record nr.} of {Previous} kent, terwijl hij dus WEL
{Next} kent.
Concreet houdt dat in, dat hetgeen je wilt niet kan.
Alhoewel...
Je zegt dat de Overzichts blz. maximaal 10 regels samengevoegde regels
bevat. Als er per regel niet al te veel velden staan (je noemt alleen: "naam
van de patiënt en het gescoorde cijfer" - dus: 2)...
Dan zou je VOOR het {NEXT} veld aan het einde van het "detailoverzicht per
patiënt" de gegevens voor het Globale overzicht op moeten slaan in variablen,
met gebruik van het {SET} commando.
Je samenvoeg document zou dus moeten bestaan uit 11 blz. In tegenstelling
tot wat je nu hebt, op blz. 1-10 de gegevens van iedere patient (1 per blz.)
met aan het einde van de tekst een {NEXT} en wellicht een pagina einde.
Kwestie van kopieren en plakken. MAAR... vóór dat {NEXT} commando sla je de
twee gegevens voor het overzicht op in twee variablen. Op blz. 11 het
overzicht van die 10 patienten.
{SET Patient1 {Patient_Naam}}{SET Score1 {Score}}{NEXT}
Op de volgende blz. moet je de naam van de variabelen natuurlijk verhogen
tot Patient2 en Score2, enz.
{Patient1} - {Score1}
{Patient2} - {Score2}
{Patient3} - {Score3}
enz.
Je weet toch dat je die accolades maakt met CTRL F9 en dat je alle velden
zichtbaar (en dus bewerkbaar) maakt met CTRL a en Shift F9?
Het is mogelijk, dat je de allerlaatste (dus op blz. 10) {NEXT} weg moet
laten, omdat wanneer Word ziet dat hij aan het einde van z'n samenvoeg slag
is, hij zelf al een {NEXT} commando geeft. Ik weet dit niet meer zeker, maar
het is vrij makkelijk te zien in het resultaat (via Samenvoegen naar Nieuw
Document) dat het eerste record van de volgende 10 patienten begint bij
patient nr. 12 i.p.v. bij patient nur 11 OF dat patient nr. 10 herhaald wordt.
Het is mogelijk dat ALS er het totaal aantal records niet een veelvoud is
van 10, Word bij de laatste pagina's de data van de ongebruikte SET
commando's gaat herhalen. Wellicht informatie van vorige patienten of de
informatie van de laatste patient. Dit is wellicht op te heffen door aan het
begin van het document alle variabelen die je gebruikt met 20 {SET}
commando's "Leeg" te maken. Bijv: {SET Patient1 ""} enz. Wat natuurlijk ook
kan (in plaats van alle eventualiteiten proberen af te vangen), is dat je
altijd Samenvoegt naar nieuwe document en in dat Nieuwe Document even
handmatig die laatste Overzichts pagina aanpast.
Als deze oefening er specifiek om gaat om deze pagina's zo uit de printer te
persen: Overzicht 10 patienten - 10 patienten blz. enz. dan zul je VEEL meer
informatie in variabelen moeten gaan proppen. Geen idee hoeveel dat is. Aan
jou om te beslissen of dat de moeite waar is. :-)
Als de data in Access staat, dan kun je overwegen om ze in een Rapport te
bundelen. Dat moet kunnen. Niet hier vragen HOE. Maar in de Access
gebruikersgroep! Trouwens, als de data in Excel staat, is dat probleemloos in
Access in te lezen en vandaar in een Rapport te verwerken.
David
Post by Guus
Hallo,
- één detailoverzicht per patiënt
- één globaal overzicht van alle patiënten samen
Ik wil dit combineren tot één Mailmerge-document, maar ik vraag me af of dat
überhaupt mogelijk is?
Het uiteindelijk document begint met het globaal overzicht; hierin staat de
naam van de patiënt en het gescoorde cijfer. De regel wordt afgesloten met
«Next Record If» waardoor op de volgende regel de volgende patient komt met
zijn gescoorde cijfer. Het document bevat max. 10 patiënten, in het
totaaloverzicht staan, naast de overige opmaak dus max. 10 regels
SAMENGEVOEGDE gegevens.
Op het einde van deze bladzijde zet ik een sectie-einde, waarna ik het
detailoverzicht wil beginnen. Het probleem is echter dat in het
detailoverzicht één bladzijde per patiënt gemaakt wordt (en dat wil ik ook zo
houden).
Hoe kan ik in een samenvoegdocument aangeven: «Record 1» zoals bijvoorbeeld
er ook is «Next Record If»?
Alvast bedankt,
Guus
Dave
2007-02-08 10:05:01 UTC
Permalink
Guus,

Wat jij wil, kan WEL op de manier waarop ik het beschreef, maar dan moet je
1) mijn aanwijzingen beter opvolgen en 2) accepteren dat er eerst 10 Patient
blz. zullen worden afgedrukt met daarna de overzichts pagina met 10 patienten.

Als jij het op wilt geven, dan is dat natuurlijk jouw goed recht, maar doe
het niet omdat het "hoe langer hoe meer niet te realiseren" lijkt.

Als ik het goed lees is onderstaande hetgeen je fout doet / waarbij je mijn
aanwijsingen niet opvolgt.
Je schrijft dat je samenvoegdocument ÉÉN bladzijde groot is. Als ik dat
combineer met de rest van het probleem dat je beschrijft, dan klopt het dat
DAAR de fout zit. Zoals ik schreef moet je samenvoegdocument ELF bladzijden
groot zijn. Dat kan zondermeer. Word gaat niet automatisch naar een nieuw
record toe aan het einde van de blz, maar pas aan het einde van het document.
Het {NEXT} commando onderaan elke blz. (m.u.v. blz. 11 en wellicht blz. 10)
dwingt Word om het volgende record te pakken. Onderaan elke blz. worden
Patientnaam en Score in een nieuwe variabele gezet, zodat die gegegens
bewaard blijven voor afdruk op blz. 11 - de Overzichts Pagina.
Het LIJKT misschien veel werk, maar blz. 2-9 kun je kopieren en plakken van
blz. 1 en dan hoef je alleen de variabelen in de twee SET commando's onderaan
die blz. "op te hogen". Dus dat valt reuze mee.

Ik zou overigens niet weten waarom Access per record geen 200 velden aan zou
kunnen? ALS er een beperking is, lijkt met 255 een veel logischer getal. Maar
misschien heb je dit onderzocht en weet je meer dan ik? Als het naar Excel te
exporteren is, dan is het een schijntje om het in Access te frotten. Het
maken van het Rapport is dan natuurlijk een ander verhaal. Maar goed, dit was
alleen een voorstel als het echt perse uit de printer moet komen:
Overzichtspagina, 10 patient pagina's, enz.

Ik ben zo stellig in het beweren dat het in Word kán omdat 1) Ik meen te
lezen dat je mijn aanwijzingen niet opvolgt (ÉÉN bladzijde i.p.v. ELF) en 2)
Ik doe wat jij wilt ongeveer zelf en het werkt al jaren feilloos. Het
document in kwestie heb ik in Word 6 gemaakt. Maar als je het wilt laten
zoals je het nu doet, ook goed hoor.

David
Post by Guus
Sorry Dave,
1. Ik heb op het einde van mijn samenvoegdocument (ÉÉN bladzijde) de
set-commando's gezet om resp. {Naam Patient} en {Score Patient} in
afzonderlijke variabelen te zetten. Dat lukt nog wel. Maar dààr houdt het
primaire bestand voor mailmerge op, dus ik kan alleen bij het volgende record
komen door middel van commando {Next}.
Door het plaatsen van {Next} sla ik op deze manier steeds een record over,
wat ook niet de bedoeling is.
2. Jouw suggestie van Access-rapport: De bron van de berekeningen is SPSS
met ongeveer 200 variabelen. M.i. kan MS Access dat helemaal niet aan.
Aangezien MS-Office veel beter kan presenteren als SPSS, exporteer ik steeds
SPSS-data naar Excel voor deze toepassing.
Mailmerge met Word doet goed werk
3. De beschreven toepassing NU is de eerste, die naast één bladzijde details
voor elke patient òòk een totaaloverzicht bevat voor alle patienten.
Ik vind het fijn, dat je me op weg wilde helpen. Maar mijn vraag lijkt hoe
1. Detailoverzicht met ca. 200 (jawel) variabelen, waaronder ook de
variabele rapportcijfer
2. Totaaloverzicht van alle patienten, waarin uitsluitend het rapportcijfer
staat, met een standaardafwijking en het aantal onderzoeken dat de patient
ondergaan heeft.
Groet,
Guus
Post by Dave
Guus,
Van macro's en VBA heb ik geen kaas gegeten. Dus dat deel van je respons heb
ik genegeerd omdat ik er niets zinnigs over kan zeggen.
Ik heb toch aangegeven dat je de variabelen voor elk record moet
doornummeren? Je kunt na het aanmaken van de eerste Patient blz. (en
controleren dat die werkt), deze kopieren en 9x plakken tot je er 10 hebt.
Daarna kun je (vrij snel) handmatig alle nummers achter de variabelen in de
twee SET commando's per blz. (in mijn voorstel Patient1 en Score1) ophogen
tot Patient10 en Score10. Dit hoef je natuurlijk maar 1x te doen. Ik bedoel
dus 9x in 1 samenvoeg document. Daarna werkt het voortaan feilloos.
Dit lijkt mij een stuk minder werk dan macro's of VBA zitten schrijven -
zeker als dan blijkt dat deze niet werken! :-( Mijn voorstel moet werken,
misschien dat het hier en daar nog bijgeschaafd moet worden, (zoals bijv. of
je het laatste NEXT commondo moet verwijderen of niet) dat blijkt gaandeweg
wel. Je moet dan echter wel accepteren dat de Overzichtblz. NA de blz. voor
de 10 patienten komt. Als het ook daarom te doen was, dan moet je, zoals ik
al zei, veel meer dingen in variabelen gaan proppen.
Ik doe iets dergelijks ook om vanuit en database met Kinderen brieven te
produceren voor elk gezin met data over elk van hun kinderen in dezelfde
brief. Werkt perfect.
Rapporten maken vanuit Access (als de data daar in staat of vanuit Excel
naar Access over te brengen is) werkt misschien toch nog het handigst. Daar
reageer je niet op.
David
Post by Guus
Beste David,
Bedankt zover voor de uitgebreide uitleg.
Mijn probleem met jouw voorstel is, dat ik dus na élk record een SET krijg,
maar die moet ik dan toch VARIABEL nummeren.
1. Overzicht samenvoegen tot document A.
2. Detailoverzicht samenvoegen tot document B.
3. Het resultaat van B plakken onder het resultaat van A.
Dat heb ik geprobeerd met de volgende code, maar NU kan ik weer niet
wisselen
Dim Code As String
Code = InputBox("Geef de blokcode (bijvoorbeeld B13R074)", "Overzichten
samenvoegen en koppelen met Feedback")
Documents.Open _
FileName:="D\Primair_Overzicht.doc", _
ConfirmConversions:=True, _
Format:=wdOpenFormatAuto
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.Name = "D:\" & Code & ".xls"
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
Windows("Primair_Overzicht.doc (Read-Only)").Close savechanges:=False
'Maak een nieuwe sectie vanaf een nieuwe bladzijde voor Detail-Feedback
Selection.EndKey Unit:=wdStory
Selection.InsertBreak Type:=wdSectionBreakNextPage
With Selection.PageSetup
.Orientation = wdOrientLandscape
.TopMargin = CentimetersToPoints(0.5)
.BottomMargin = CentimetersToPoints(0.5)
.LeftMargin = CentimetersToPoints(1.5)
.RightMargin = CentimetersToPoints(1.5)
.HeaderDistance = CentimetersToPoints(0.4)
.FooterDistance = CentimetersToPoints(0.4)
.PageWidth = CentimetersToPoints(29.7)
.PageHeight = CentimetersToPoints(21)
.SectionStart = wdSectionNewPage
End With
Documents.Open FileName:="D:\Primair_Details.doc", _
ConfirmConversions:=True, _
Format:=wdOpenFormatAuto
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.Name = "D:\" & Code & ".xls"
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = "^m"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.EndKey Unit:=wdStory
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
Selection.Copy
ActiveDocument.Close
Selection.PasteAndFormat (wdPasteDefault)
Selection.HomeKey Unit:=wdStory
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
With Selection.Find
.Text = "^b"
.Replacement.Text = "^m"
.Forward = True
.Wrap = wdFindContinue
End With
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.EndKey Unit:=wdStory, Extend:=wdExtend
With Selection.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientLandscape
.HeaderDistance = CentimetersToPoints(0.4)
.FooterDistance = CentimetersToPoints(0.4)
.PageWidth = CentimetersToPoints(29.7)
.PageHeight = CentimetersToPoints(21)
End With
Selection.HomeKey Unit:=wdStory
ActiveDocument.SaveAs _
FileName:="D:\" & Code & ".doc", _
FileFormat:=wdFormatDocument
End Sub
Misschien moet ik concluderen, dat mijn wens niet helemaal reëel is.
Toch bedankt voor de hulp.
Groet,
Guus
Post by Dave
Guus,
Zwaar balen dat Word (tot versie 2003 in ieder geval; ik heb versie 2007
niet) niet de opdrachten {Record nr.} of {Previous} kent, terwijl hij dus WEL
{Next} kent.
Concreet houdt dat in, dat hetgeen je wilt niet kan.
Alhoewel...
Je zegt dat de Overzichts blz. maximaal 10 regels samengevoegde regels
bevat. Als er per regel niet al te veel velden staan (je noemt alleen: "naam
van de patiënt en het gescoorde cijfer" - dus: 2)...
Dan zou je VOOR het {NEXT} veld aan het einde van het "detailoverzicht per
patiënt" de gegevens voor het Globale overzicht op moeten slaan in variablen,
met gebruik van het {SET} commando.
Je samenvoeg document zou dus moeten bestaan uit 11 blz. In tegenstelling
tot wat je nu hebt, op blz. 1-10 de gegevens van iedere patient (1 per blz.)
met aan het einde van de tekst een {NEXT} en wellicht een pagina einde.
Kwestie van kopieren en plakken. MAAR... vóór dat {NEXT} commando sla je de
twee gegevens voor het overzicht op in twee variablen. Op blz. 11 het
overzicht van die 10 patienten.
{SET Patient1 {Patient_Naam}}{SET Score1 {Score}}{NEXT}
Op de volgende blz. moet je de naam van de variabelen natuurlijk verhogen
tot Patient2 en Score2, enz.
{Patient1} - {Score1}
{Patient2} - {Score2}
{Patient3} - {Score3}
enz.
Je weet toch dat je die accolades maakt met CTRL F9 en dat je alle velden
zichtbaar (en dus bewerkbaar) maakt met CTRL a en Shift F9?
Het is mogelijk, dat je de allerlaatste (dus op blz. 10) {NEXT} weg moet
laten, omdat wanneer Word ziet dat hij aan het einde van z'n samenvoeg slag
is, hij zelf al een {NEXT} commando geeft. Ik weet dit niet meer zeker, maar
het is vrij makkelijk te zien in het resultaat (via Samenvoegen naar Nieuw
Document) dat het eerste record van de volgende 10 patienten begint bij
patient nr. 12 i.p.v. bij patient nur 11 OF dat patient nr. 10 herhaald wordt.
Het is mogelijk dat ALS er het totaal aantal records niet een veelvoud is
van 10, Word bij de laatste pagina's de data van de ongebruikte SET
commando's gaat herhalen. Wellicht informatie van vorige patienten of de
informatie van de laatste patient. Dit is wellicht op te heffen door aan het
begin van het document alle variabelen die je gebruikt met 20 {SET}
commando's "Leeg" te maken. Bijv: {SET Patient1 ""} enz. Wat natuurlijk ook
kan (in plaats van alle eventualiteiten proberen af te vangen), is dat je
altijd Samenvoegt naar nieuwe document en in dat Nieuwe Document even
handmatig die laatste Overzichts pagina aanpast.
Als deze oefening er specifiek om gaat om deze pagina's zo uit de printer te
persen: Overzicht 10 patienten - 10 patienten blz. enz. dan zul je VEEL meer
informatie in variabelen moeten gaan proppen. Geen idee hoeveel dat is. Aan
jou om te beslissen of dat de moeite waar is. :-)
Als de data in Access staat, dan kun je overwegen om ze in een Rapport te
bundelen. Dat moet kunnen. Niet hier vragen HOE. Maar in de Access
gebruikersgroep! Trouwens, als de data in Excel staat, is dat probleemloos in
Access in te lezen en vandaar in een Rapport te verwerken.
David
Post by Guus
Hallo,
- één detailoverzicht per patiënt
- één globaal overzicht van alle patiënten samen
Ik wil dit combineren tot één Mailmerge-document, maar ik vraag me af of dat
überhaupt mogelijk is?
Het uiteindelijk document begint met het globaal overzicht; hierin staat de
naam van de patiënt en het gescoorde cijfer. De regel wordt afgesloten met
«Next Record If» waardoor op de volgende regel de volgende patient komt met
zijn gescoorde cijfer. Het document bevat max. 10 patiënten, in het
totaaloverzicht staan, naast de overige opmaak dus max. 10 regels
SAMENGEVOEGDE gegevens.
Op het einde van deze bladzijde zet ik een sectie-einde, waarna ik het
detailoverzicht wil beginnen. Het probleem is echter dat in het
detailoverzicht één bladzijde per patiënt gemaakt wordt (en dat wil ik ook zo
houden).
Hoe kan ik in een samenvoegdocument aangeven: «Record 1» zoals bijvoorbeeld
er ook is «Next Record If»?
Alvast bedankt,
Guus
Lees verder op narkive:
Loading...