J
Jim Rendant
I have written a program that when launched, opens a form for input, then
upon closing that form it updates the current record data and refreshes the
screen. The final step is to merge the updated data into a document. When the
merge begins it opens a DataSource requester and then the ODBC requester.
I want to eleminate ALL requester and make this truely a automated event.
Here the code that drives the routine
Private Sub Print_Cert_Click()
Rem ** Here we update the number of print in circulation based on the print
size
Rem ** We also create a record in the Photosales Table to show where the
print is going
Dim objWord As Word.Document
Form.AllowEdits = True
DoCmd.OpenForm ("Certificate Entry")
If (DelLocation > 0) Then
Select Case ImSize
Case 1
size = "S"
CirculationSmall = CirculationSmall + 1
mergdoc = "p:\certificate small-mergable.doc"
circ = CirculationSmall
SQLSTR = "SELECT Title, PictureDate, Subject_Matter,
Location,CirculationSmall FROM Picture_Data WHERE
(((Picture_Data.PrintCertificate)=-1))"
Case 2
size = "M"
CirculationMedium = CirculationMedium + 1
mergdoc = "p:\certificate medium-merge.doc"
circ = CirculationMedium
SQLSTR = "SELECT Title, PictureDate, Subject_Matter,
Location,CirculationMedium FROM Picture_Data WHERE
(((Picture_Data.PrintCertificate)=-1))"
Case 3
size = "L"
CirculationLarge = CirculationLarge + 1
mergdoc = "p:\certificate large-mergable.doc"
circ = CirculationLarge
SQLSTR = "SELECT Title, PictureDate, Subject_Matter,
Location,CirculationLarge FROM Picture_Data WHERE
(((Picture_Data.PrintCertificate)=-1))"
Case 4
size = "MC"
CirculationMediumCanvas = CirculationMediumCanvas + 1
mergdoc = "p:\certificate MCmergable.doc"
circ = CirculationMediumCanvas
SQLSTR = "SELECT Title, PictureDate, Subject_Matter,
Location,CirculationMediumCanvas FROM Picture_Data WHERE
(((Picture_Data.PrintCertificate)=-1))"
Case 5
size = "LC"
CirculationLargeCanvas = CirculationLargeCanvas + 1
mergdoc = "p:\certificate LCmergable.doc"
circ = CirculationLargeCanvas
SQLSTR = "SELECT Title, PictureDate, Subject_Matter,
Location,CirculationLargeCanvas FROM Picture_Data WHERE
(((Picture_Data.PrintCertificate)=-1))"
End Select
Certificate.Value = True
InsCMD = "Insert into photosales
(resellernumber,PictureNumber,PrintNumber,Series) values (" & DelLocation &
"," & PictureNumber & "," & circ & ", '" & size & "' )"
DoCmd.RunSQL InsCMD
Form.Refresh
Form.AllowEdits = False
' This is were the merge to Word starts
Set objWord = GetObject(mergdoc, "Word.Document")
' Make Word visible.
objWord.Application.Visible = True
' Set the mail merge data source as the photography.mdb database.
objWord.MailMerge.OpenDataSource _
Name:="q:\photography.mdb ", _
LinkToSource:=True, _
ReadOnly:=True, _
Connection:="TABLE Picture_Data", _
SQLStatement:=SQLSTR
' Execute the mail merge.
objWord.MailMerge.Destination = wdSendToNewDocument
objWord.MailMerge.Execute
objWord.Application.Options.PrintBackground = False
objWord.Application.ActiveDocument.PrintOut
Set objWord = Nothing
End If
End Sub
upon closing that form it updates the current record data and refreshes the
screen. The final step is to merge the updated data into a document. When the
merge begins it opens a DataSource requester and then the ODBC requester.
I want to eleminate ALL requester and make this truely a automated event.
Here the code that drives the routine
Private Sub Print_Cert_Click()
Rem ** Here we update the number of print in circulation based on the print
size
Rem ** We also create a record in the Photosales Table to show where the
print is going
Dim objWord As Word.Document
Form.AllowEdits = True
DoCmd.OpenForm ("Certificate Entry")
If (DelLocation > 0) Then
Select Case ImSize
Case 1
size = "S"
CirculationSmall = CirculationSmall + 1
mergdoc = "p:\certificate small-mergable.doc"
circ = CirculationSmall
SQLSTR = "SELECT Title, PictureDate, Subject_Matter,
Location,CirculationSmall FROM Picture_Data WHERE
(((Picture_Data.PrintCertificate)=-1))"
Case 2
size = "M"
CirculationMedium = CirculationMedium + 1
mergdoc = "p:\certificate medium-merge.doc"
circ = CirculationMedium
SQLSTR = "SELECT Title, PictureDate, Subject_Matter,
Location,CirculationMedium FROM Picture_Data WHERE
(((Picture_Data.PrintCertificate)=-1))"
Case 3
size = "L"
CirculationLarge = CirculationLarge + 1
mergdoc = "p:\certificate large-mergable.doc"
circ = CirculationLarge
SQLSTR = "SELECT Title, PictureDate, Subject_Matter,
Location,CirculationLarge FROM Picture_Data WHERE
(((Picture_Data.PrintCertificate)=-1))"
Case 4
size = "MC"
CirculationMediumCanvas = CirculationMediumCanvas + 1
mergdoc = "p:\certificate MCmergable.doc"
circ = CirculationMediumCanvas
SQLSTR = "SELECT Title, PictureDate, Subject_Matter,
Location,CirculationMediumCanvas FROM Picture_Data WHERE
(((Picture_Data.PrintCertificate)=-1))"
Case 5
size = "LC"
CirculationLargeCanvas = CirculationLargeCanvas + 1
mergdoc = "p:\certificate LCmergable.doc"
circ = CirculationLargeCanvas
SQLSTR = "SELECT Title, PictureDate, Subject_Matter,
Location,CirculationLargeCanvas FROM Picture_Data WHERE
(((Picture_Data.PrintCertificate)=-1))"
End Select
Certificate.Value = True
InsCMD = "Insert into photosales
(resellernumber,PictureNumber,PrintNumber,Series) values (" & DelLocation &
"," & PictureNumber & "," & circ & ", '" & size & "' )"
DoCmd.RunSQL InsCMD
Form.Refresh
Form.AllowEdits = False
' This is were the merge to Word starts
Set objWord = GetObject(mergdoc, "Word.Document")
' Make Word visible.
objWord.Application.Visible = True
' Set the mail merge data source as the photography.mdb database.
objWord.MailMerge.OpenDataSource _
Name:="q:\photography.mdb ", _
LinkToSource:=True, _
ReadOnly:=True, _
Connection:="TABLE Picture_Data", _
SQLStatement:=SQLSTR
' Execute the mail merge.
objWord.MailMerge.Destination = wdSendToNewDocument
objWord.MailMerge.Execute
objWord.Application.Options.PrintBackground = False
objWord.Application.ActiveDocument.PrintOut
Set objWord = Nothing
End If
End Sub