انجمن تخصصی اکسس

جامع ترین انجمن تخصصی اکسس در خانه اکسس ایران

engineerh
engineerh
آفلاین
0
با سلام من یک فرم در دیتابیس (متصل به یک فایل word بصورت mailmerge)دارم که دکمه ای برای چاپ داره ولی وقتی روی اون کلیک می کنیم همه رکوردها را چاپ می کند در صورتی که فقط من رکورد جاری رو میخوام چاپ کنه. فایل به پیوست می باشد. (لطفا در درایو C از حالت فشرده خارج نمایید) با تشکر
پیوست ها:
پاسخ ها (5)
  • پاسخ پذیرفته شده

    engineerh
    engineerh
    آفلاین
    سه شنبه 10 - دی - 1392 13:37:35 - #لینک دائمی
    0
    چرا با اون کد حل شد، در اون کد لازم بود که از کد SQL کوئری مورد نظر استفاده می شد که را یک پیچیده میکرد.
    ولی در این کد نیازی به این کار نیست (ساده تر و راحتر می باشد) ولی مشکل در انتخاب رکورد جاری می باشد.
    با تشکر
    تشکر ها
    پاسخ به درستی کمینه شد نمایش
  • پاسخ پذیرفته شده

    سه شنبه 10 - دی - 1392 13:07:38 - #لینک دائمی
    0
    سلام
    با استفاده از نکات ذکر شده در تاپیک زیر که توسط خود ما مطرح شده بود مشکتون حل نشد .
    لطفا اگر امکانش هست توی اون تاپیک بحث رو ادامه بدید .

    http://www.mantis.ir/discussions/اتصال-word-و-اکسس-با-mail-merge.html


    با سپاس
    کاویان
    پاسخ به درستی کمینه شد نمایش
  • پاسخ پذیرفته شده

    engineerh
    engineerh
    آفلاین
    سه شنبه 10 - دی - 1392 13:41:47 - #لینک دائمی
    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 OLEDB:Database 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
    پاسخ به درستی کمینه شد نمایش
  • پاسخ پذیرفته شده

    engineerh
    engineerh
    آفلاین
    پنج شنبه 12 - دی - 1392 07:09:53 - #لینک دائمی
    0
    با سلام مجدد
    من شدیدا به این مورد احتیاج دارم
    اگر امکانش هست سریع تر پاسخ بدین؟
    ممنون
    پاسخ به درستی کمینه شد نمایش
  • پاسخ پذیرفته شده

    چهارشنبه 30 - بهمن - 1392 20:53:43 - #لینک دائمی
    0
    با سلام
    شما بایستی مرحله انتخاب رکورد جاری رو در داخل اون پرسشی تعبیه کنید که تحت عنوان [queryname] در کد بالا آورده شده است .
    در صورتیکه قادر به اینکار نبودید کد فوق را طوری تغییر دهید که کار نموده تمامی رکوردها را نشان دهد و با فایل های مورد نیاز پیوست نمایید مرحله انتخاب رکورد جاری مانند پست قبلی روی این نیز پیاده شود .
    با سپاس
    کاویان
    پاسخ به درستی کمینه شد نمایش
پاسخ شما

کدام را میپسندید؟

مایکروسافت اکسس 64 بیت - 66.7%
مایکروسافت اکسس 32 بیت - 16.7%
مایکروسافت اکسس 2007 - 16.7%

كل آرا: 6
اين نظرسنجي به پايان رسيده است on: 19 مارس 2017 - 00:00

عضویت در خبرنامه

با عضویت در خبرنامه آخرین مطالب سایت را در ایمیل خود دریافت نمایید.
از عضویت شما در خبرنامه متشکریم.