Brieven mogelijkheid

Status
Niet open voor verdere reacties.

jelleruben

Gebruiker
Lid geworden
11 nov 2006
Berichten
443
Hallo allemaal,

Kan iemand mijn misschien simpel uitleggen hoe ik brieven van uit Access kan laten printen?

b.v.

NAW

Geachte heer mevrouw

U bent aangemeld

[gegevens]

Met vriendelijke groet,
 

Bijlagen

Brieven vanuit Access printen houdt meestal in, dat je vanuit Access een Wordsessie opent, waarna de gegevens vanuit Access naar Word worden overgehaald. Een redelijk ingewikkeld proces voor een beginner... Veel simpeler is, om in Word een Samenvoegdocument te maken, en dat te koppelen aan de Query of Tabel uit de db die je wilt gebruiken. Daar hoef je namelijk helemaal niks voor te programmeren, en je kunt in Word ook je selecties maken.
 
Dat is niet zo de bedoeling, Want ik heb een access programma gemaakt, met kandidaat gegevens erin. En het is de bedoeling, als er één kandidaat geaccepteerd wordt, dat hij of zij een brief krijgt. En dat niet meteen voor 978 kandidaten een brief uitkomt.

Aangezien er mensen met deze applicatie werken en geenl kennis van office hebben, moet er wel wat geprogrammeerd worden.
 
Ik neem aan, dat je de geselecteerde kandidaat op de één of andere manier (datum, checkbox) vastlegt in de tabel. Dat is dan de filtering in je Word document. Dus nog steeds zonder programmeren...
 
Ik neem aan, dat je de geselecteerde kandidaat op de één of andere manier (datum, checkbox) vastlegt in de tabel. Dat is dan de filtering in je Word document. Dus nog steeds zonder programmeren...

Via een button, die een brief sjabloon moet open in Word, en vervolgens, de gegevens. van Access in de brief zet. En dit via 1 keer een button in te drukken, en meer niet.
 
Dit zou met een paar aanpassingen moeten werken:

Code:
Private Sub cmdBrief_Click()
'Bijgewerkt op 6-8-2008 door MdR
Dim aWord As Object
Dim oWord As Word.Document
On Error GoTo Stoppen

strOpen = "C:\TM\Samenvoegen.doc"
strPad = "C:\TM\Versturen\"
Set aWord = CreateObject("Word.Application")
    
strDoc = "Aanstellingsbrief " & date & ".doc"

DoCmd.Echo False, "Eerst de Aanstellingsquery maken..."
strSQL = "SELECT * FROM Brieven " & "WHERE(CONTACTDATUM =date());"

On Error Resume Next
CurrentDb.QueryDefs.Delete ("qBrieven")
Set temp = CurrentDb.CreateQueryDef("qBrieven", strSQL)
strQuery = "SELECT * FROM qBrieven"

Set rst = New Recordset
DoCmd.Echo False, "Bezig met openen van recordset."
rst.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rst.MoveLast
rst.MoveFirst
''iAantal = rst.RecordCount

If iAantal > 0 Then
    DoCmd.Echo False, "Dan " & iAantal & " Records samenvoegen..."
    Set oWord = aWord.Documents.Open(strOpen)
    With oWord.MailMerge
        .Destination = wdSendToNewDocument
        .Execute
    End With
    DoCmd.Echo False, "Bezig met opslaan van brieven"
    oWord.Application.ActiveDocument.SaveAs (strPad & strDoc)
    oWord.Application.ActiveDocument.Close
    oWord.Close (wdDoNotSaveChanges)
    Set oWord = Nothing
    DoCmd.Echo True
    DoEvents
    DoEvents
    DoEvents
End If
    
rst.Close
Set rst = Nothing
aWord.Quit
Set aWord = Nothing

If iAantal > 0 Then
    MsgBox "Klaar, document " & strDoc & " is aangemaakt."
Else
    MsgBox "Klaar, niks hoeven doen deze keer..."
End If

Stoppen:
DoCmd.Echo True
 
Mmh dankje, ik zal eens kijken, of het mij gaat lukken om hem aan het werk te krijgen.
 
Tis wel gebaseerd op een samenvoegdocument dat je eerst dus in Word moet maken. Je kunt ook overwegen om de hele brief in Access te maken via een rapport, al dan niet met een of meer Word fragmenten die je dan importeert.
 
Ik heb besloten inderdaad de brieven in een rapport te maken, wel zomakkelijk.

Alleen nu het volgende hoe kan ik een mooie zin maken van database gegevens bijvoorbeeld: U bent aangemeld voor [vak] u dient zicht te melden op de vestiging [Vestigingsnaam].

En rood moet uit de database worden gehaald. Zonder dat er teveel wit ruimte erin komt te staan. Of dat de velden te klein zijn.
 
Je voorbeeldje doe je met een tekstvak, waar je een formule in zet:

="U bent aangemeld voor " & Me.[vak] & ". U dient zicht te melden op de vestiging " & Me.[Vestigingsnaam] & "."
 
Je voorbeeldje doe je met een tekstvak, waar je een formule in zet:

Ik heb het geprobeerd. Maar als ik het rapport open, dan komt er een popupje met ME er is en dan een witte balk.

En ik heb de code in een tekstvak gezet, en dan bij besturingselement
Als ik het rapport weer in het ontwerp weergave wil laten zien dan is de code veranderd naar

Code:
="U bent aangemeld voor " & Me.postcode & ". U dient zicht te melden op de vestiging " & Me.plaats & "."
 

Bijlagen

  • 001.JPG
    001.JPG
    6,2 KB · Weergaven: 32
Me is eigenlijk meer voor een formulier bedoeld, dus de tekst Me. mag je weghalen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan