PDA

View Full Version : خروجی پی داف از رکورد جاری در فرم تکی



Nader700
یک شنبه 14 آبان 1402, 21:41 عصر
سلام من یک فرم تکی دارم که با استفاده از کد زیر از اون فرم خروجی پی دی اف می گیرم ولی یه مشکل هست اونم اینه که کل اطلاعات داخل جدول رو تبدیل به پی دی اف میکنه من میخوام اون رکوردی که دارم می بینم (رکورد جاری ) رو تبدیل به پی دی اف کنه.
ممنون میشم اگه کد خودمو اصلاح کنید یا کد دیگه ای هست راهنمایی کنید .

On Error Resume Next
Dim stdocname As String

Dim MyForm As Form
stdocname = "form name"


Set MyForm = Screen.ActiveForm

DoCmd.OutputTo acOutputForm, nametosave, "*.pdf", "", True

eb_1345
دوشنبه 15 آبان 1402, 00:32 صبح
سلام
قبل از کدهای فوق کد فیلتر رکوردی که در نظر داری درج کن !
مثلا با کد زیر رکوردی که ID اون عدد 1 است فیلتر میشه


Me.Filter = "id = 1"
Me.FilterOn = True

Nader700
چهارشنبه 17 آبان 1402, 14:10 عصر
سلام
قبل از کدهای فوق کد فیلتر رکوردی که در نظر داری درج کن !
مثلا با کد زیر رکوردی که ID اون عدد 1 است فیلتر میشه


Me.Filter = "id = 1"
Me.FilterOn = True


سلام
یعنی من برای هر رکورد باید بیام کد اون رو بنویسم؟
شاید من داخل رکورد 20 بود من میخوام خودش بصورت اتومات همون رکورد شماره 20 رو برای من خروجی PDF بگیره
دوستان کس دیگه ای نبود راهنمایی کنه ؟

eb_1345
چهارشنبه 17 آبان 1402, 19:09 عصر
یعنی من برای هر رکورد باید بیام کد اون رو بنویسم؟

سلام دوست عزیز!
با عرض معذرت باید بگم اگه ی کمی با کدنویسی آشنائی داشتی اینو نمیگفتی
در کدی که برای فیلتر کردن پیشنهاد کردم عد 1 رو مثال زدم و گرنه بجای عدد ثابت شما باید از یک متغییر که مقدار اون قابل تغییر است استفاده کنی
در فایل نمونه ضمیمه من ابتدا یک متغییر با نام IntID در قسمت عمومی فرم تعریف کرده ام
به اینصورت :
Dim IntID As Integer
بعد در رویداد فوکوس هرکدوم از فیلدها مقدار این متغییر رو مساوی ID قرار داده ام . به این علت که وقتی بر روی هر سطری کلیک کردی این متغییر معادل مقداد ID سطر فوکوس شده بشود.

به اینصورت :
IntID = ID
در نهایت کدهای زیر رو در رویداد کلیک کمند باتن ارسال به pdf درج نمودم


Me.Filter = "id = " & IntID
Me.FilterOn = True
Me.Visible = False
DoCmd.OutputTo acOutputForm, Me.Name, "*.pdf", "", True
Me.Filter = ""
Me.FilterOn = True
Me.Visible = True


با خط اول و دوم فرم در مقدار متغییر فیلتر میشه
در خط سوم فرم رو مخفی کردم
در خط چهارم ارسال سطر انتخاب شده به pdf
در خط پنجم و ششم از فیلتر خارج کردن فرم
در خط آخر هم آشکار شدن فرم


پس یادت باشه قبل از کلیک بر روی کمند باتن ارسال به pdf ابتدا بر روی سطر مورد نظر کلیک کنی

eb_1345
پنج شنبه 18 آبان 1402, 19:51 عصر
ناگفته نمونه که تعریف متغییر و انتخاب سطر مورد نظر باکلیک کردن برای حالتی که فرم شما بصورت Continuous Forms اجرا میشه مورد نیازه ولی اگه فرم در حالت Single Form اجرا میشه و پیمایش رکورد ها رو از طریق کمند باتن های تعبیه شده بروی فرم انجام میشه دیگه نیاز به تعریف متغییر و بکاربردن IntID = IDدر رویداد GotFocus فیلدهای مربوطه نیست و در این حالت فقط کافیه کد خط اول رو بصورت زیر تغییر بدی


Me.Filter = "id = " & ID

ضمنا در این مثال بنده فرض رو براین گذاشته ام که در جدول فیلدی تحت عنوان ID بعنوان ردیف در نظر گرفته ای

Nader700
جمعه 26 آبان 1402, 00:00 صبح
سلام دوست عزیز!
با عرض معذرت باید بگم اگه ی کمی با کدنویسی آشنائی داشتی اینو نمیگفتی
در کدی که برای فیلتر کردن پیشنهاد کردم عد 1 رو مثال زدم و گرنه بجای عدد ثابت شما باید از یک متغییر که مقدار اون قابل تغییر است استفاده کنی
در فایل نمونه ضمیمه من ابتدا یک متغییر با نام IntID در قسمت عمومی فرم تعریف کرده ام
به اینصورت :
Dim IntID As Integer
بعد در رویداد فوکوس هرکدوم از فیلدها مقدار این متغییر رو مساوی ID قرار داده ام . به این علت که وقتی بر روی هر سطری کلیک کردی این متغییر معادل مقداد ID سطر فوکوس شده بشود.

به اینصورت :
IntID = ID
در نهایت کدهای زیر رو در رویداد کلیک کمند باتن ارسال به pdf درج نمودم


Me.Filter = "id = " & IntID
Me.FilterOn = True
Me.Visible = False
DoCmd.OutputTo acOutputForm, Me.Name, "*.pdf", "", True
Me.Filter = ""
Me.FilterOn = True
Me.Visible = True


با خط اول و دوم فرم در مقدار متغییر فیلتر میشه
در خط سوم فرم رو مخفی کردم
در خط چهارم ارسال سطر انتخاب شده به pdf
در خط پنجم و ششم از فیلتر خارج کردن فرم
در خط آخر هم آشکار شدن فرم


پس یادت باشه قبل از کلیک بر روی کمند باتن ارسال به pdf ابتدا بر روی سطر مورد نظر کلیک کنی

با عرض سلام و ادب
بنده قصد این نداشتم که بگم شما بلد نیستین من مبتدی هستم و از اول هم فایل نمونه گذاشتم که دوستان کمک کنن
من از شما بسیار تشکر می کنم که بنده رو راهنمایی کردین