sjobbels
Gebruiker
- Lid geworden
- 11 dec 2008
- Berichten
- 145
Hallo,
wij zijn sinds kort met het werk van access 2007 naar access 2010.
Nu krijg ik bij de mailmerge foutmelding 91 objectvariabele of blockvariabele With is niet ingesteld.
Heeft dit te maken met de benamingen / verwijzing voor / naar Word?
Alvast dank!
wij zijn sinds kort met het werk van access 2007 naar access 2010.
Nu krijg ik bij de mailmerge foutmelding 91 objectvariabele of blockvariabele With is niet ingesteld.
Heeft dit te maken met de benamingen / verwijzing voor / naar Word?
Code:
Option Compare Database
Option Explicit
Private Const conTemplate As String = "CSMailMerge.dot"
Private Const conquery As String = "qryMailmerge"
Private Const conTabel As String = "tmp"
Dim strSQL As String
Private Sub cmdClear_Click()
strSQL = "UPDATE " & conquery & vbCrLf
strSQL = strSQL & "SET Mailmerge = Null " & vbCrLf
strSQL = strSQL & "WHERE Mailmerge=True"
DoCmd.RunSQL strSQL
Me.Form.Requery
End Sub
Private Sub cmdSelect_Click()
strSQL = "UPDATE " & conquery & vbCrLf
strSQL = strSQL & "SET Mailmerge = 1 " & vbCrLf
strSQL = strSQL & "WHERE Mailmerge=False"
DoCmd.RunSQL strSQL
Me.Form.Requery
End Sub
Private Sub cmdGo_Click()
DoCmd.SetWarnings False
strSQL = "SELECT NaamBedrijf, NaamLocatieDochter, CPAanhef, Aan, CPVoorletters, CPAchternaam, Adres, Postcode, Plaats, SalesManager, Telefoonnr, Mailmerge "
strSQL = strSQL & "INTO tmp " & vbCrLf
strSQL = strSQL & "FROM qryMailmerge " & vbCrLf
strSQL = strSQL & "WHERE (Mailmerge = True) " & vbCrLf
strSQL = strSQL & "ORDER BY NaamBedrijf;"
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
Call Samenvoegen
End Sub
Public Sub Samenvoegen()
Dim rs As ADODB.Recordset
Dim strPath As String
Dim strDataSource As String
Dim doc As Word.Document
Dim wrdApp As Word.Application
On Error GoTo HandleErrors
' Delete the rtf file, if it already exists.
strPath = FixPath(CurrentProject.Path)
strDataSource = strPath & conquery & ".doc"
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM tmp", CurrentProject.Connection, adOpenStatic, adLockPessimistic
MsgBox "Aantal records: " & rs.RecordCount, vbOKOnly
If rs.RecordCount = 0 Then Exit Sub
' Export the data to rtf format
DoCmd.OutputTo acOutputTable, conTabel, acFormatRTF, strDataSource, False
' Start Word using mailmerge template
Set wrdApp = New Word.Application
Set doc = wrdApp.Documents.Add(strPath & conTemplate)
' Do the mail merge to a new document.
With doc.Mailmerge
.OpenDataSource Name:=strDataSource
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
If .State = wdMainAndDataSource Then
.Execute
End If
End With
' Display the mail merge document
wrdApp.Visible = True
ExitHere:
Set doc = Nothing
Set wrdApp = Nothing
Exit Sub
HandleErrors:
Select Case Err.Number
Case 53 ' File not found
Resume Next
Case Else
MsgBox Err.Number & ": " & Err.Description
Resume ExitHere
End Select
End Sub
Private Function FixPath(strPath As String) As String
If Right(strPath, 1) = "\" Then
FixPath = strPath
Else
FixPath = strPath & "\"
End If
End Function
Private Sub Form_Current()
Me.txtsubMail.Requery
If Me.txtsubMail.Value > 0 Then
Me.cmdGo.Enabled = True
Else
Me.cmdGo.Enabled = False
End If
Me.Form.Recalc
'' Me.Form.Requery
Me.Form.Refresh
Me.Form.Repaint
End Sub
Private Sub chkMailmerge_AfterUpdate()
If Me.Dirty Then
Me.Dirty = False
End If
Me.txtsubMail.Requery
If Me.txtsubMail.Value > 0 Then
Me.cmdGo.Enabled = True
Else
Me.cmdGo.Enabled = False
End If
'' Me.Form.Requery
Me.Form.Refresh
Me.Form.Repaint
End Sub
Alvast dank!
Laatst bewerkt: