PDA

View Full Version : سوال: ارتباط دو فیلد در یک سابفرم ( مانند استان و شهر)



Profesorjd
چهارشنبه 05 آبان 1389, 09:34 صبح
با سلام
برای ارتباط دو فیلد با هم بطوریکه با انتخاب یکی محتویات دیگری متناظر آن باشد ( مانند حالتی که نام استان انتخاب شود در فیلد بعدی نام شهرهای آن استان فقط آورده شود ) از کد :

forms!namform!namfield استفاده کردم . در حالت فرم مشکلی ندارد ولی وقتی در حالت سابفرم استفاده میشود اشکال زیر دارد : ممنون میشوم مشکل را حل فرمایید

wolfstander
چهارشنبه 05 آبان 1389, 13:36 عصر
شما باید تو کوئری اول که نام استان هست، اول کوئری دوم رو ریفرش کنی
و در کوئری دوم هم با استفاده ازbuild آدرس دهی کنی تا ایرادی به وجود نیاد
تو سایت نمونه های بسیار بسیار زیادی تو این زمینه هست
حتی یکی از دوستان نام کل شهرها و استانهای ایران رو توی یک دیتابیس ریخته که هست

Profesorjd
چهارشنبه 05 آبان 1389, 14:51 عصر
با سلام و تشکر
1- در برنامه اصلی اینکار در رویداد مربوطه انجام شده است (Requery)
2- در سایت گشتم مانند اینکار بنده نبود . آن موضوع هم که میفرمایید در فرم است که بنده هم عرض کردم در فرم مشکلی ندارم ولی اگر این حالت در سابفرم قرار گیرد مشکل ایجاد میکند . شما اگر در فایل ضمیمه فرم (سابفرم) Hagh subform را اجرا کنید میبینید که مشکلی ندارد ولی وقتی Person را اجرا میکنید میبینید که مشکل فوق ایجاد میشود .
3- آن Build را که فرمودید چگونه انجام میشود ؟

Profesorjd
پنج شنبه 06 آبان 1389, 11:22 صبح
با سلام
بنظرم چون ساده بود کسی جوابی برایش پیدا نکرد !
ولی جوابش این است :
forms!namformasli!namsubform!fieldدر خصوص موضوعی هم که جناب wolfstander فرمودند برای اینکه دوستانی مثل بنده بهتر یاد بگیرند توضیح میدهم که :
در رویداد after update هر کنترل ( در این مثال کومبو ostan ) برای کنترل دیگر ( مثلاً City) کافی است کدهای زیر نوشته شود :
city=null
city.requery

mahkom64
شنبه 08 آبان 1389, 09:23 صبح
سلام این نمونه را گذاشتم بد نیست امتحان کنید.

Profesorjd
شنبه 08 آبان 1389, 10:06 صبح
با سلام و تشکر
1- موضوع سئوال با آنچه که شما ارایه دادید فرق میکند ولی ممنون
2- روش شما با روشی که بنده میروم فرق میکند از این نظر جالب است . در روشی بنده استفاده میکنم از یک جدول بوده و کوئری مد نظر درون فرم با استفاده از مشخصات کنترل ساخته میشود از این نظر سریعتر و جالبتر است ( از نظر بنده البته ) .
3- کد بازسازی را در رویداد After Update قرارداده ام از این نظر که تا تغییر نکند فیلد متناظرش هم تغییر نمیکند ولی استفاده شما در رویداد On click در صورت کلیک کردن ( چه تغییر دهید چه تغییر ندهید ) عمل میکند از این نظر ممکن است برای کاربر مشکل شود .

mozilla_6600
پنج شنبه 13 آبان 1389, 22:01 عصر
سلام
خیلی خوشحالم که خیلی زود با این سایت اشنا شدم
من مبتدی مبتدی هستم و تازه کار رو با اکسس شروع کردم
علاقه بسیار زیادی دارم که کار با این برنامه رو یاد بگیرم
از وقتی با سایت شما اشنا شدم چیز هایی زیادی یاد گرفتم ولی چون شما حرفه ای هستید و من تازه کار ، چیز زیادی از راهنمایی هایی که میزارین نمی فهمم

پس دوستان اگه میشه کامل تر توضیح بدن جوری که ما هم بفهمیم
مثلا پله پله اموزش بدید خیلی بهتر میشه
در ضمن من می خوام اگه میشه تو table هم این امکان رو اضافه کنم . مثلا نام شهر یه منوی کشویی داشته باشه که مثل فرم بشه انتخاب کرد
ممنون میشم راهنمایی کنید

Profesorjd
جمعه 14 آبان 1389, 11:07 صبح
با سلام
در قسمت دیزاین Table در قسمت lookup با انتخاب combo box یا list box و تعاریفی که ذیل آن می اید میتوانید اینکار را انجام دهید . به آیتمهای row source type و row source دقت کنید . در ضمن در اعلان و با جستجو میتوانید نمونه های متعددی برای اینکار پیدا کنید . اگر سئوال داشتید با شروع بکار و ایجاد یک نمونه و پیوست آن در تاپیک میتوانید بهتر یاد بگیرید

mozilla_6600
جمعه 14 آبان 1389, 14:44 عصر
خیلی ممنون از راهنمایی ولی من منظورم این بود
که در زیر نمونه اون رو میزارم
من می خواستم که در table این رابطه بر قرار شده باشه
یعنی تو جدول زیر
ممنون میشم روی این نمونه اموزش بدید

Profesorjd
جمعه 14 آبان 1389, 14:57 عصر
با سلام
1- من روی سیستمم 2007 یا 2010 ندارم . اگر میتوانید به 2003 تبدیل کنید.
2- اگر منظورتان ارتباطی هست که اگر استان انتخاب شود شهر هم متناظر استان شود ، فکر نمیکنم در Table بشود این کار را کرد . ارتباطی را که دیده اید با شرط (criteria) در کوئری یا با کدنویسی درفرم انجام شده است .

mozilla_6600
جمعه 14 آبان 1389, 15:46 عصر
با سلام
1- من روی سیستمم 2007 یا 2010 ندارم . اگر میتوانید به 2003 تبدیل کنید.
2- اگر منظورتان ارتباطی هست که اگر استان انتخاب شود شهر هم متناظر استان شود ، فکر نمیکنم در Table بشود این کار را کرد . ارتباطی را که دیده اید با شرط (criteria) در کوئری یا با کدنویسی درفرم انجام شده است .

اگه میشه بگید چطور میشه به صورت 2003 ذخیره کنم
چون هر کاری می کنم با اکسس 2010 نمیشه این کار رو کرد

mozilla_6600
جمعه 14 آبان 1389, 15:52 عصر
به صورت 2003 اپ کردم

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

Profesorjd
جمعه 14 آبان 1389, 16:26 عصر
با سلام
1- به نمونه اصلاح شده خودتان دقت کنید . دو راه را تصحیح کردم یکی از جدول دیگر بخواند ( فیلد C_city از جدول Ostan ) و دیگری خودتان وارد کنید ( فیلد C_city1 از همان جدول ) . هر دو راه را میتوانید در فرم نیز بکار ببرید .
2- برای فرم از نمونه ای که در تاپیکهای قبلی ارسال شده میتوانید استفاده کنید .
3- اگر از راه دوم بند 1 در فرم ( یا جدول ) استفاده کنید برای چندتا ( زیر 10 ) خوب است ولی اگر بخواهید از چندین اطلاعات استفاده کنید منطقی نیست . به نظر بنده بهتر است یک جدول داشته باشید با دو فیلد کی یکی نام استان باشد و دیگر نام شهرهای متناظر هر استان ( ردیف به ردیف ) در فرم میتوانید مانند نمونه های قبلی ارتباط را بر قرار کرده و با کدنویسی نمونه کاری کنید کاربر در صورت انتخاب استان فقط شهرهای متناظرش را در فیلد بعدی انتخاب کند ( کمی حرفه ای تر میتوانید پیغام هم بدهید !) . این انتخابها در فیلد مد نظر شما در جدول دیگر ذخیره خواهد شد . برای اینکه بهتر متوجه شوید و عمل کنید به نمونه هایی که بنده ارسال کرده ام و دوست گرامیم توجه نمایید . فکر کنم خواسته شما را برآورده کند .

id1385
شنبه 15 آبان 1389, 15:27 عصر
با سلام

نمونه زیر رو ببین


موفق باشید

نوشیروانی
شنبه 18 دی 1395, 22:49 عصر
با سلام

نمونه زیر راهم ببینید شاید برای بعضی ها مفید باشه .


موفق باشید