SkipLabels: ساخت Recordset موقت و منطق چاپ برچسب

SkipLabels: ساخت Recordset موقت و منطق چاپ برچسب

توسط admin | گروه آموزش اکسس Microsoft access | 1405/05/16

نظرات 0

فصل ۸ — منطق Procedure SkipLabels

مسئلهٔ عملی این است که Sheet برچسب ممکن است از ابتدای صفحه چند Label مصرف‌شده داشته باشد. SkipLabels چند Record خالی در ابتدای منبع Report ایجاد می‌کند تا چاپ واقعی از اولین Label موجود شروع شود.

Parameterها و Variableها

VBA
Sub SkipLabels(ReportName As String, LabelsToSkip As Byte, _
   Optional PassedFilter As String)

Dim MySQL, RecSource, FldNames As String
Dim MyCounter As Byte
Dim MyReport As Report

ReportName نام Label Report، LabelsToSkip تعداد خانه‌های خالی و PassedFilter شرط اختیاری است.

Copy Report و RecordSource

Procedure Report اصلی را برای جلوگیری از تغییر Object واقعی به LabelsTempReport کپی می‌کند، آن را در Design View باز می‌کند، RecordSource را می‌خواند و Report موقت را می‌بندد.

VBA
DoCmd.CopyObject , "LabelsTempReport", acReport, ReportName
DoCmd.OpenReport "LabelsTempReport", acViewDesign
RecSource = Reports!LabelsTempReport.RecordSource
DoCmd.Close acReport, "LabelsTempReport", acSaveNo

Recordset و Table موقت

ADO Recordset Source را باز می‌کند. Field Collection پیمایش می‌شود تا نام Fieldها ساخته شود و AutoNumberها برای Table موقت به Long تبدیل شوند. سپس Make-Table SQL با شرط False Table خالی هم‌ساختار ایجاد می‌کند.

Recordهای خالی و Append

به تعداد LabelsToSkip با AddNew/Update Record خالی ساخته می‌شود. بعد تمام Recordهای واقعی Source، همراه PassedFilter در صورت وجود، به LabelsTempTable Append می‌شوند. RecordSource گزارش موقت به Table جدید تغییر می‌کند و Report برای Print Preview باز می‌شود.

فراخوانی از Event

Form مخصوص SkipLabels می‌تواند ReportName و LabelsToSkip را از Controlها بگیرد و Procedure را در On Click دکمهٔ Print فراخوانی کند. این فصل زمینهٔ Dialog سفارشی فصل ۹ را فراهم می‌کند.

شکل‌ها و عناصر بصری این بخش

امتیاز کاربران به این مقاله

☆☆☆☆☆

0 نفر امتیاز داده اند. میانگین: 0.0 از 5

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

0 / 500