انجمن تخصصی اکسس
جامع ترین انجمن تخصصی اکسس در خانه اکسس ایران
0
با سلام
من یک فرم در دیتابیس (متصل به یک فایل word بصورت mailmerge)دارم که دکمه ای برای چاپ داره ولی وقتی روی اون کلیک می کنیم همه رکوردها را چاپ می کند در صورتی که فقط من رکورد جاری رو میخوام چاپ کنه.
فایل به پیوست می باشد. (لطفا در درایو C از حالت فشرده خارج نمایید)
با تشکر
پاسخ ها (5)
-
پاسخ پذیرفته شده
0با سلام
شما بایستی مرحله انتخاب رکورد جاری رو در داخل اون پرسشی تعبیه کنید که تحت عنوان [queryname] در کد بالا آورده شده است .
در صورتیکه قادر به اینکار نبودید کد فوق را طوری تغییر دهید که کار نموده تمامی رکوردها را نشان دهد و با فایل های مورد نیاز پیوست نمایید مرحله انتخاب رکورد جاری مانند پست قبلی روی این نیز پیاده شود .
با سپاس
کاویان -
پاسخ پذیرفته شده
-
پاسخ پذیرفته شده
0کد:
Function main(filter As String)
Dim wordDoc As New Word.Application
Set wordDoc = CreateObject("Word.Application")
Dim templatePath As String, sourceQuery As String
Dim i As Integer
Dim x As Integer
templatePath = "C:\[filepath]" 'your template here
sourceQuery = "[queryname]" 'name of the query in your database
wordDoc.Visible = True 'set connection as visible
wordDoc.Documents.Open templatePath 'open template
wordDoc.ActiveDocument.MailMerge.OpenDataSource Name:= _
"[path to your database]" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=False, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\yourdatabase.mdb;Mode=Read;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDBatabase P" _
, SQLStatement:="SELECT * FROM `" & sourceQuery & "`", SQLStatement1:="" 'link to data source
wordDoc.ActiveDocument.MailMerge.SuppressBlankLines = True
x = wordDoc.ActiveDocument.MailMerge.DataSource.RecordCount
If x > 0 Then
For i = 1 To x 'merge+print each record individually
wordDoc.ActiveDocument.MailMerge.DataSource.FirstRecord = i
wordDoc.ActiveDocument.MailMerge.DataSource.LastRecord = i
wordDoc.ActiveDocument.MailMerge.Execute Pause:=False
wordDoc.PrintOut Background:=True
wordDoc.ActiveDocument.Close Savechanges:=False
Next i
wordDoc.Documents.Close Savechanges:=False
wordDoc.Application.Quit 'exit Word
Set wordDoc = Nothing
End If
End Function -
پاسخ پذیرفته شده
برای ارسال پاسخ وارد شوید
برای ثبت پاسخ لازم است وارد شوید. از فرم مقابل برای ورود استفاده منید و اگر کاربر جدید هستید ثبت نام کنید.
اینجا ثبت نام کنید »