PDA

View Full Version : باز کردن فرم اصلی(که چندین سابفرم فیلتردار دارد) بدون پردازش اولیه و بصورت سریع



expertdev
چهارشنبه 08 خرداد 1398, 10:45 صبح
سلام
من یک فرم دارم که روی اون سه تا سابفرم قرار دادم.سابفرم ها هر کدام از کوئری های فیلترشده استفاده میکنند که فیلتر هر کدام ، توسط یک تکست باکس که روی فرم اصلی هست به یک فیلد کوئری اعمال میشه.با توجه به حجم کوئری ها و سابفرم ها و فیلتری که روی اونها اعمال میشه موقع باز کردن فرم اصلی زمان خیلی زیادی صرف میشه تا این فرم لود و باز بشه.
من میخوام موقعی که فرم اصلی رو میخوام باز کنم سابفرم ها هیچ پردازشی رو انجام ندن و و اون فیلد فیلتر اعمال نشه و فرم اصلی سریع لود و باز باشه و بعد از باز شدن بتونم عملیات فیلتر رو روی سابفرم هام انجام بدم.

لطف کنین بگین چجوری اینکارو انجام بدم؟
ممنون

Mehr@ban
چهارشنبه 08 خرداد 1398, 18:43 عصر
سلام

رکورد سورس اون سابفرم ها رو توسط یک ایونت داخلی اون فرم در زمان لازم بهش اختصاص بدین

یعنی یه باتن بذارین داخل فرم برای سابفرم یک که این سابفرم رو لود کنه
بعد داخل رویداد آن کلیکش، رکورد سورس اون سابفرم رو بعش اختصاص بدین و رفلش یا ریکوئری کنید

expertdev
پنج شنبه 09 خرداد 1398, 14:36 عصر
سلام

رکورد سورس اون سابفرم ها رو توسط یک ایونت داخلی اون فرم در زمان لازم بهش اختصاص بدین

یعنی یه باتن بذارین داخل فرم برای سابفرم یک که این سابفرم رو لود کنه
بعد داخل رویداد آن کلیکش، رکورد سورس اون سابفرم رو بعش اختصاص بدین و رفلش یا ریکوئری کنید


خیلی ممنون
با راهنمایی شما حل شد:تشویق:

Mehr@ban
پنج شنبه 09 خرداد 1398, 16:45 عصر
خواهش میکنم
البته میشه از یک راه دیگه هم به مطلوب رسید:

قابلیتی که در بخش کوئری یا sql هست اینکه مشخص کنیم چند درصد یا چه مقدار از آخرین رکوردهای ثبت شده رو نمایش داد که با دخالت یک تکست باکس تعداد مورد نظر رو برای بالابردن سرعت لود سابفرم محدود کرد

مطالب زیر رو بررسی کنید متوجه منظورم بیشتر میشید:
https://www.w3schools.com/sql/sql_top.asp
https://stackoverflow.com/questions/9339079/how-to-select-top-10-in-access-query

expertdev
شنبه 11 خرداد 1398, 06:50 صبح
خواهش میکنم
البته میشه از یک راه دیگه هم به مطلوب رسید:

قابلیتی که در بخش کوئری یا sql هست اینکه مشخص کنیم چند درصد یا چه مقدار از آخرین رکوردهای ثبت شده رو نمایش داد که با دخالت یک تکست باکس تعداد مورد نظر رو برای بالابردن سرعت لود سابفرم محدود کرد

مطالب زیر رو بررسی کنید متوجه منظورم بیشتر میشید:
https://www.w3schools.com/sql/sql_top.asp
https://stackoverflow.com/questions/9339079/how-to-select-top-10-in-access-query

مرسی
دیدم لینک ها رو
تو این روش آیا کوئری کامل پردازشش رو انجام میده و بعد تعداد محدودی از رکوردها(که ما تعیین میکنیم) رو بعنوان خروجی برمیگردونه؟ یا اینکه پردازشش رو براساس تعداد رکوردهایی که باید برگردونه تنظیم میکنه و پردازش اضافی انجام نمیده؟
اگه طبق نظر اول باشه که در هر حال تاثیر چندانی روی بالا بردن سرعت لود نداره
نظر شما چیه؟

Mehr@ban
شنبه 11 خرداد 1398, 10:43 صبح
روش های مختلفی در لینک اول ارائه شده
دستور زیر رو که با استفاده از دستور TOP نوشته شده نگاه کنید:
SELECT TOP 3 * FROM Customers
WHERE Country='Germany';

حداقل در این روش ابتدا محدوده مشخص میشه، سپس باقی دستورات و پردازش های کوئری اجرا میشه
لذا تاثیر خودش رو در سرعت بارگذاری کوئری های بزرگ و محاسباتی رو داره