PDA

View Full Version : آپدیت شدن فرم و ساب فرم بدون بستن آن



parsa70
یک شنبه 18 آبان 1399, 12:17 عصر
سلام یک فرم و ساب فرم دارم که سرچ لحظه‌ای داره
که همان طور که در عکس می‌بینید اون پایین با استفاده از dcount یک شمارشی را انجام می‌دهد.
می‌خواستم بدونم میشه کاری کرد که اون شمارش پایین وقتی اون اطلاعات رو اگه کسی تو این فرم تغییر میده بدون اینکه فرم رو ببندیم و باز کنیم آپدیت بشه؟؟
و کد نویسیش چطوری هست
https://uupload.ir/files/v6xp_11.png (https://uupload.ir/)
سپاس

padide55
یک شنبه 18 آبان 1399, 13:17 عصر
از کدهای زیر استفاده کنید
Me.Requery
Me.subformName.Requery

parsa70
دوشنبه 19 آبان 1399, 11:29 صبح
از کدهای زیر استفاده کنید
Me.Requery
Me.subformName.Requery
ممنون تو کدوم رویداد باید این کد رو بزنم؟؟

parsa70
دوشنبه 19 آبان 1399, 11:57 صبح
از کدهای زیر استفاده کنید
Me.Requery
Me.subformName.Requery

این آدرس دهیش رو نمیتونم بزنم هی میزنم ارور میده
مثلا: نام یکی از اون تکست های پایینی text43 هست چجوری باید بزنم
من تو After update یکی از اون فیلدهای اصلی که وقتی تغییر میکنه میزنم me.text43.requery ارور میده
نمونه ای دارید بزارید ببینم چجوریه
این مدلی هم میزنم ارور میدم :ناراحت:
me.forms!subformname!text43.requery

padide55
دوشنبه 19 آبان 1399, 12:10 عصر
این آدرس دهیش رو نمیتونم بزنم هی میزنم ارور میده
مثلا: نام یکی از اون تکست های پایینی text43 هست چجوری باید بزنم
من تو After update یکی از اون فیلدهای اصلی که وقتی تغییر میکنه میزنم me.text43.requery ارور میده
نمونه ای دارید بزارید ببینم چجوریه
این مدلی هم میزنم ارور میدم :ناراحت:
me.forms!subformname!text43.requery

به این صورت بزنید

me.forms!subformname.requery
Me.Requery

ضمنا فایلتون رو کپی بگیرید .
فرمها و جدولهای غیر مرتبط اضافی رو حذف کنید .
جدول مربوطه رو خالی کنید و چند رکورد تمرینی وارد کنید .
و همین فرم و ساب فرم و جدول مربوطه رو ضمیمه کنید.
نمونه همون فرم خودتون باشه .

parsa70
دوشنبه 19 آبان 1399, 12:37 عصر
152419
به این صورت بزنید

me.forms!subformname.requery
Me.Requery

ضمنا فایلتون رو کپی بگیرید .
فرمها و جدولهای غیر مرتبط اضافی رو حذف کنید .
جدول مربوطه رو خالی کنید و چند رکورد تمرینی وارد کنید .
و همین فرم و ساب فرم و جدول مربوطه رو ضمیمه کنید.
نمونه همون فرم خودتون باشه .

بفرمایید نمونه را ببینید.

padide55
دوشنبه 19 آبان 1399, 12:39 عصر
چشم . دارم چک میکنم

این کد جواب داد.
در رویداد after update ساب فرمتون . فیلد Status



Private Sub Status_AfterUpdate()

[Forms]![FRMQrsynagesearch].Refresh
End Sub

parsa70
دوشنبه 19 آبان 1399, 13:08 عصر
چشم . دارم چک میکنم

این کد جواب داد.
در رویداد after update ساب فرمتون . فیلد Status



Private Sub Status_AfterUpdate()

[Forms]![FRMQrsynagesearch].Refresh
End Sub



دستتون درد نکنه :قلب:

parsa70
چهارشنبه 21 آبان 1399, 12:12 عصر
چشم . دارم چک میکنم

این کد جواب داد.
در رویداد after update ساب فرمتون . فیلد Status



Private Sub Status_AfterUpdate()

[Forms]![FRMQrsynagesearch].Refresh
End Sub



سلام شاید این مورد بهتر باشه
Forms]![FRMQrsynagesearch].text43.Requery]

فقط یک باگی الان متوجه شدم اون قسمت بالا فایل sample که مربوط به جستجو هست یا جستوی داینامیک وقتی یک ستون رو فیلتر میکنیم و از فیلتر در میاریم سرچ لحظه ای تو کلمات دیگه کار نمیکنه دلیل آن از چی میتونه باشه؟ :متفکر:

padide55
چهارشنبه 21 آبان 1399, 14:31 عصر
نمونه فایل کامل همراه با خروجی اکسل رو اینجا ببین
جمع با فیلتر فعال شد.

parsa70
چهارشنبه 21 آبان 1399, 14:59 عصر
نمونه فایل کامل همراه با خروجی اکسل رو اینجا ببین
جمع با فیلتر فعال شد.
سلام ممنون خیلی روش خوبی بود :تشویق:

یک مشکلی که الان دارم، توضیحاتش رو میدم و بعدش فایل رو ضمیمه میکنم که ببینید.
تو اون قسمت آبی که جستو... هست مثلا: محمد، احمد و یاعلی وارد کنیم. خود فرم به صورت خودکار فیلتر میشه و فقط ردیف‌های که توضیحات کارشناس داخلش اون اسامی هست رو میاره. مثلا: الان علی رو اون بالا بنویسید دو تا سطر میاره.
مشکلی که هست الان اگه تعداد رکوردها بالا باشه و یا همین مقدار هم باشه کاربر هر ستونی رو فیلتر کنه و از فیلتر در بیاره دیگه این جستجو کار نمیکنه.:ناراحت:
و باید فرم دوباره بسته و باز بشه.
علتش رو میخواستم بدونم از چی هست؟؟ آيا میشه رفع کرد؟
سپاس
152425

padide55
پنج شنبه 22 آبان 1399, 08:35 صبح
سلام
کد




Me.FRMQrsynagesearchSub.Form.FilterOn = False
DoCmd.ShowAllRecords
Me.FRMQrsynagesearchSub.Requery





برای رویدادon click فیلد جستجو گذاشتم . مشکل حل شد.
بعد از سرچ فیلتر میشه کرد . جمع هم درسته.

اگر بعد از فیلتر کردن
در فیلد ابی جستجو کلیک کنید .
تمام فیلترها رو برمیداره.

parsa70
چهارشنبه 29 بهمن 1399, 21:02 عصر
سلام

یک کاری نمیشه کرد که اون ردیفی که ستون حذف داره که اطلاعاتی وارد نشده در اون اون ردیف نشون نده و فقط جاهایی که دیتا وارد شده رو نشون بده؟؟
https://uupload.ir/files/xqlk_untitled_thumb.png (https://uupload.ir/view/xqlk_untitled.png)
سپاس

padide55
پنج شنبه 30 بهمن 1399, 16:18 عصر
سلام
در ویرایش ساب فرم
در تب data
allow addition رو no قرار بدین

parsa70
پنج شنبه 30 بهمن 1399, 17:28 عصر
سلام
در ویرایش ساب فرم
در تب data
allow addition رو no قرار بدین

میخوام بشه دیتا وارد کرد ولی تا زمانیکه اون سطر دیتا وارد نشده کنارش ستون حذف نباشه.
فکر کنم باید با iif بشه همچین کاری کرد.

padide55
پنج شنبه 30 بهمن 1399, 17:34 عصر
میخوام بشه دیتا وارد کرد ولی تا زمانیکه اون سطر دیتا وارد نشده کنارش ستون حذف نباشه.
فکر کنم باید با iif بشه همچین کاری کرد.
کد زیر رو در رویداد current فرم استفاده کنیدو یا mouse over باتن حذف
و یا کلیک باتن حذف که اجرا نشه. و..
فکر کنم حل بشه


If Me.NewRecord then
'do this
else
'do that
end if


me.hazf.visible=false

parsa70
پنج شنبه 30 بهمن 1399, 19:12 عصر
کد زیر رو در رویداد current فرم استفاده کنیدو یا mouse over باتن حذف
و یا کلیک باتن حذف که اجرا نشه. و..
فکر کنم حل بشه


If Me.NewRecord then
'do this
else
'do that
end if


me.hazf.visible=false

میگه که you cant hide a control that has the focus ارور ۲۱۶۵

padide55
پنج شنبه 30 بهمن 1399, 23:18 عصر
me.hazf.enabled=falseغیر فعالش کنید .

parsa70
جمعه 01 اسفند 1399, 21:22 عصر
امکانش هست نمونه بزارید من هرکاری کردم نمیشه

padide55
شنبه 02 اسفند 1399, 11:10 صبح
کد دابل کلیک حذف رو به این صورت تغییر بدهید
در رکورد جدید عمل نکند


Private Sub txtdelet_DblClick(Cancel As Integer)
If Me.NewRecord Then
MsgBox "رکورد خالي قابل حذف نمي باشد"
Else
DoCmd.OpenForm "frmMsgDelete"
With Form_frmMsgDelete
.Label1.Caption = "آياحذف شود؟"
.Label2.Caption = "در صورت حذف غير قابل برگشت است."
.Label2.ForeColor = vbRed
.Caption = "حذف رکورد"
End With
End If
End Sub

parsa70
شنبه 02 اسفند 1399, 20:12 عصر
کد دابل کلیک حذف رو به این صورت تغییر بدهید
در رکورد جدید عمل نکند


Private Sub txtdelet_DblClick(Cancel As Integer)
If Me.NewRecord Then
MsgBox "رکورد خالي قابل حذف نمي باشد"
Else
DoCmd.OpenForm "frmMsgDelete"
With Form_frmMsgDelete
.Label1.Caption = "آياحذف شود؟"
.Label2.Caption = "در صورت حذف غير قابل برگشت است."
.Label2.ForeColor = vbRed
.Caption = "حذف رکورد"
End With
End If
End Sub



سلام
مهندس من خوب توضیح ندادم میخوام دیگه اصلا «حذف» رو توی اون ردیف نشون نده «یعنی کلا هیچ دیتایی تو اون ردیف نباشه نه اینکه حذف رنگش تغییری کنه یا هیدن بشه ها»
یعنی اینجوری باشه
https://uupload.ir/files/d3te_untitled_thumb.png (https://uupload.ir/view/d3te_untitled.png)

padide55
دوشنبه 04 اسفند 1399, 16:40 عصر
سلام
مهندس من خوب توضیح ندادم میخوام دیگه اصلا «حذف» رو توی اون ردیف نشون نده «یعنی کلا هیچ دیتایی تو اون ردیف نباشه نه اینکه حذف رنگش تغییری کنه یا هیدن بشه ها»
یعنی اینجوری باشه
https://uupload.ir/files/d3te_untitled_thumb.png (https://uupload.ir/view/d3te_untitled.png)
سلامdefault="حذف"
را بردارید

بجاش

datasorce




=iif(fieldcode>=۰;"حذف";" ")



بجای fieldcode
نام یکی از فیلدها که همواره پر باشه رو بگذارید.

parsa70
جمعه 08 اسفند 1399, 10:36 صبح
سلامdefault="حذف"
را بردارید

بجاش

datasorce




=iif(fieldcode>=۰;"حذف";" ")



بجای fieldcode
نام یکی از فیلدها که همواره پر باشه رو بگذارید.

ممنون کارم راه افتاد.