PDA

View Full Version : تغییر دادن مرجع فرم



imanch
چهارشنبه 10 بهمن 1386, 11:35 صبح
سلام
چگونه می توان قبل از باز کردن فرم، با کد نویسی مرجع(Record Source) آن را تغییر داد؟ به طور دقیقتر یعنی چند دکمه ایجاد کنیم که با کلیک کردن هر دکمه فرم با مرجع تعریف شده باز شود. به صورت زیر:

دکمه ************** مرجع

Table1************Open form1
___________________________
Query1************Open form1
___________________________
Query2************Open Form1

مهدی قربانی
پنج شنبه 11 بهمن 1386, 01:39 صبح
سلام
دوست عزیز برای جی باید فرم شما به این شکل باز بشه همونطور که می دونید ساختار جداول و فیلدهاشون عموماً متفاوت هستن و اگر شما بخواین که Record Source رو تغییر بدید ممکنه که با ساختار جدول مورد نظر هماهنگ نباشه و منتهی به صدور خطا بشه !

karmand
پنج شنبه 11 بهمن 1386, 07:04 صبح
me.record sourse=strsql
در فرم لود متغیری از نوع استرینگ بگیر
در آن اس کیو ال مورد نظرت را بنویس و با دستور بالا اجرا کن
ضمنا اقا مهدی فرمهای جستجو بر اساس فیلدهای مختلف را مگر با همین روش کار نمیکنند
مثلا یک فامیل را می زنی کلیه فامیلهای هم شکل با همین دستور در فرم فعال می شود

moustafa
پنج شنبه 11 بهمن 1386, 08:17 صبح
اقا مهدی درست می فرمایند
می بایست برای تغییرات و همخوانی فیلدها از نظر سایز و نوع فیلد و شروط و ... نیز کدهای تغیرات بذارید
مثلا در صورت تغییر جدول فیلدها هم تغیر می کند که دیتاسورس اون باید با کد نویسی منطبق کرد

me.nametextform!controlscource=fildname

مهدی قربانی
پنج شنبه 11 بهمن 1386, 12:44 عصر
ضمنا اقا مهدی فرمهای جستجو بر اساس فیلدهای مختلف را مگر با همین روش کار نمیکنند
مثلا یک فامیل را می زنی کلیه فامیلهای هم شکل با همین دستور در فرم فعال می شود
سلام
ببینید شما وقتی یک فرم bound شده به یک جدول یا کوئری می سازید تمام تکست باکسها و کامبوها یا لیست باکسها به فیلدهای موجود در اون جدول یا کوئری مرتبط میشن و به عبارتی خصوصیاتی مثل Data Type‌ و Field Size و Format و ..... رو به ارث می برن حالا اگر شما این فرم رو به جدول یا کوئری دیگه ای که تعداد فیلدها و خصوصیاتش متفاوتن ربط بدید قطعاً با مشکلات یا خطاهایی روبرو خواهید شد . اون موردی که شما در مورد سرچ فرمودید برای فرمهای جستجو استفاده میشه که عموماً فرم یا فیلد مورد نظر سورسش رو مستقیماً از جدول یا کوئری دریافت نمی کنه بلکه عمدتاً بصورت آدرسی عمل می کنن که در Criteia کوئری آدرس فرم و فیلد مورد نظر از داخل فرم جستجو داده میشه و کوئری بر اساس اون مقدار دریافتی از یک تکست باکس موجود در فرم اجرا و نتیجه حاصله رو بر می گردونه .

imanch
پنج شنبه 11 بهمن 1386, 19:33 عصر
با تشکر از همه دوستان که راهنمایی کردند ولی من هنوز مشکلم حل نشده. در جواب آقا مهدی و آقا مصطفی باید بگم که ساختار و فیلدهای همه Table ها و Query ها دقیقاً یکی است و هر Query بسته به شرطی که براش گذاشتم فقط بعضی از رکوردها رو نشون نمی ده. و اما دلیل کاری که می خوام انجام بدم اینه که کاربر در فرم اصلی بتونه مثلاً فقط 100 رکورد رو از 100000 رکورد رو که اون شرط رو دارن ویرایش کنه و لازم نباشه یکی یکی اون رکوردهای مورد نظر رو از بین کل رکوردها جستجو و ویرایش کنه. از کارمند خان هم خواهش می کنم دقیقتر راهنمایی کنند مثلاً اگر من بخوام با کلیک کردن یک دکمه، مرجع Form1 بشه Query1 چیکار کنم. یعنی Form1 فقط رکوردهایی رو نشون بده که در Query1 وجود دارند؟ لطفاً دستورش رو برام بنویسید:

??? = me.RecordSource

یا

??? = form_Form1.RecordSource

یا

????????

مهدی قربانی
جمعه 12 بهمن 1386, 13:55 عصر
سلام
ببینید این نمونه چیزیه که مورد نظر شماست .

imanch
یک شنبه 14 بهمن 1386, 15:05 عصر
آقا مهدی سلام
فایلی که فرستادید دقیقاً همون چیزی بود که می خواستم.البته من همین کد رو نوشته بودم ولی جای دو خط رو جابجا می نوشتم و جواب نمی گرفتم. در هر صورت ممنون لطف کردید.