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

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

engineerh
engineerh
آفلاین
0
با سلام و عرض خسته نباشید. من یک فایل Word دارم که با Mail merge به فایل اکسسم متصل شده چطوری می تونم از داخل اکسس مثلا با یک دکمه اون فایل word رو با رکورد جاری باز کنم و پرینت بگیرم با تشکر مسعود
پاسخ ها (9)
  • پاسخ پذیرفته شده

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

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

    یکشنبه 12 - آبان - 1392 15:35:06 - #لینک دائمی
    0
    با سلام
    بسیار خرسندیم از اینکه تونستیم رضایت شما دوست عزیز رو جلب کنیم .

    پیروز و سربلند

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

    engineerh
    engineerh
    آفلاین
    یکشنبه 12 - آبان - 1392 10:54:17 - #لینک دائمی
    0
    ممنون از راهنماییتون،
    واقعا که خانه اکسس ایران همین جاست
    پاسخ به درستی کمینه شد نمایش
  • پاسخ پذیرفته شده

    شنبه 11 - آبان - 1392 23:49:12 - #لینک دائمی
    0
    با سلام
    برای انجام عمل فیلتر رکورد جاری بایستی خط زیر رو جایگزین کد قبلی در دکمه cmdMergeIt بنمایید .
    strSQL = "SELECT pasargad.ID, pasargad.first, pasargad.last FROM pasargad where ((pasargad.id)=" & Me.ID & ");"
    برای پرینت گرفتن هم بایستی کد
    objWord.Application.Documents(2).PrintOut
    به تابع OpenMergedDoc اضافه شود .
    نمونه پیوست اصلاح شده است .
    با سپاس
    کاویان
    پیوست ها:
    تشکر ها
    پاسخ به درستی کمینه شد نمایش
  • پاسخ پذیرفته شده

    engineerh
    engineerh
    آفلاین
    جمعه 10 - آبان - 1392 19:57:30 - #لینک دائمی
    0
    من یک سری کد پیدا کردم ولی مشکل اینجاست که فایل word رو باز میکنه و تمام رکوردها رو نشون میده در صورتی که من میخوام فقط رکورد جاری رو نمایش بده
    با تشکر
    پیوست ها:
    پاسخ به درستی کمینه شد نمایش
  • پاسخ پذیرفته شده

    پنج شنبه 09 - آبان - 1392 19:59:40 - #لینک دائمی
    0
    با سلام
    فایلی آپلود نشده است .
    دقت کنید که فایلها را فشرده کنید و حجم فایل فشرده کمتر از 512 کیلو بایت باشد و سپس اقدام به آپلود نمایید .
    با سپاس
    کاویان
    پاسخ به درستی کمینه شد نمایش
  • پاسخ پذیرفته شده

    engineerh
    engineerh
    آفلاین
    پنج شنبه 09 - آبان - 1392 08:30:41 - #لینک دائمی
    0
    با سلام مجدد
    فایل ها در root درایو c کپی نموده و اجرا نمایید
    پاسخ به درستی کمینه شد نمایش
  • پاسخ پذیرفته شده

    چهارشنبه 08 - آبان - 1392 11:58:26 - #لینک دائمی
    0
    با سلام
    بهترین راه استفاده از کد نویسی vba و با استفاده از reference های مربوط به ماکروسافت ورد می باشد .
    فایل نمونه را آپلود نمایید تا بررسی شود .
    با تشکر
    کاویان
    پاسخ به درستی کمینه شد نمایش
پاسخ شما

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

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

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

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

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