كيف يمكنني إخراج تقرير بتنسيق PDF ، حيث يتكون الاسم من القيم من الحقول؟

StackOverflow https://stackoverflow.com/questions/2296884

  •  21-09-2019
  •  | 
  •  

سؤال

أرغب في إضافة وظائف إلى تقرير Access 2007 الخاص بي ، حيث يتم إنشاء نسخة PDF من التقرير بنقرة زر واحدة. أعلم أن هناك OutputTo الماكرو الذي يمكنه القيام بذلك من أجلي ، لكنه لا يسمح لي بتضمين قيم حقل التقارير كجزء من اسم ملف PDF ، أي:

[Client Organisations].Code + "-" + Clients.Code + "-" + Invoices_Code + "-" + Format([Invoice Date],"yyyy") + ".pdf"

بينما رأيت هذا موضوع MSDN وهذا لذلك سؤال, ، لا أرى استخدام قيم المجال في أي من الإجابات.

أعتقد أن رمز VBA هو الطريق للذهاب ، لذلك جربت (دون جدوى) ما يلي:

Private Sub Create_PDF_Click()
DoCmd.OutputTo acOutputReport, , acFormatPDF, "" + [Client Organisations].Code  
+ "-" + Clients.Code + "-" + Invoices_Code + "-" + Format([Invoice Date],"yyyy")
+ ".pdf", True
End Sub

خطأ في وقت التشغيل "2465":

لا يمكن لـ Microsoft Office Access العثور على الحقل "|" يشار إليه في تعبيرك

أي أفكار هناك؟

هل كانت مفيدة؟

المحلول

حصلت عليه للعمل (في النهاية).

ما يلي sub فعلت الحيلة:

Private Sub Create_PDF_Click()

Dim myPath As String
Dim strReportName As String

DoCmd.OpenReport "Invoices", acViewPreview

myPath = "C:\Documents and Settings\"
strReportName = Report_Invoices.[Client Organisations_Code] + "-" +
Report_Invoices.Clients_Code + "-" + Report_Invoices.Invoices_Code + "-" +
Format(Report_Invoices.[Invoice Date], "yyyy") + ".pdf"

DoCmd.OutputTo acOutputReport, "", acFormatPDF, myPath + strReportName, True
DoCmd.Close acReport, "Invoices"

End Sub

اثنين من التحذيرات:

  1. يجب فتح التقرير قبل الطباعة.
  2. ارجع إلى الحقول بنفس الاسم الذي يراه التقرير عليه. الذي - التي [Client Organisations].Code كان [Client Organisations_Code] في التقرير.

نصائح أخرى

من الأسهل تخفيف السلسلة ووضع تعبيرك بالكامل هناك ثم تصحيحه لمعرفة ما إذا كان يحتوي على اسم التقرير الصحيح.

مثله:

Dim strReportName as String

strReportName = [Client Organisations].Code   
+ "-" + Clients.Code + "-" + Invoices_Code + "-" + Format([Invoice Date],"yyyy") 
+ ".pdf"

//then try to print strReportName before you use DoCmd.OutputTo.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top