ارتباط بین استان و شهر

sogoli

Active Member
ممنون میشم راهنمایی کنید برای موضوع زیر از چه طریقی میشه عمل کرد؟
من 2 تا جدول دارم :
استان
شهر
حال چگونه می تونم یک دیتابیس در (اکسس) طراحی کنم و در ان 2تا تیبل فوق باشد بطوریکه وقتی در یک فرم دوتا combo box برای نام استان و شهر مشخص کردم ،با انتخاب یک استان ، فقط شهرهای ان استان مشخص شود؟
 

TNZ187

Member
webForm

سلام
اگر منظور شما از فرم ، فرم اینترنتی است ، لازم است پایگاه داده شما شمای خاصی داشته باشه ( البته بهتر این است که شما یک رابطه یک به چند بین شهر ها و استان ها برقرار کنید ) . جدول شهرهای شما می بایست دارای یک فیلد باشد که در آن ID استان مربوطه ذخیره شود .
کاری که شما باید انجام بدهید این است ( برای مثال )
دو تا گریدویو ایجاد کنید . برای هرکدام یک DataSource ایجاد کنید . یک دیتا سورس می بایست از جدول استان ها بخواند ، یکی دیگر از دیتاسورس ها می بایست به جدول شهر ها متصل شود . دیتاسورسی که به جدول شهرها متصل می شود باید در هنگام انتخاب رکوردها شرط کند که حتما ID استان انتخاب شده با ID استان هر شهر یکی باشد .
کد:
Select * FROM City Where RegionID=@id
 

night11

Member
ممنون میشم راهنمایی کنید برای موضوع زیر از چه طریقی میشه عمل کرد؟
من 2 تا جدول دارم :
استان
شهر
حال چگونه می تونم یک دیتابیس در (اکسس) طراحی کنم و در ان 2تا تیبل فوق باشد بطوریکه وقتی در یک فرم دوتا combo box برای نام استان و شهر مشخص کردم ،با انتخاب یک استان ، فقط شهرهای ان استان مشخص شود؟

خوب همونطوری که خودتون گفتین باید دو تا جدول داشته باشین یکی برای استان یکی هم برای شهر ها
توی جدول استان دو تا فیلد لازم داریم
Id,StateName
و توی جدول شهر هم سه تا فیلد
Id,StateId,CityName

شما توی جدول اول وقتی یک مقداری رو پر می کنی
توی جدول دوم بجای StateId شماره ای دی استان رو می زاری
یعنی ای دی که توی جدول اول بود .
 

sogoli

Active Member
night11
ممنون از راهنمایی شما
و طبق راه حل شما عمل کردم حال می خوام بدونم چگونه میشه یک فرمی رو تو اکسس طراحی کنم بدین صورت که دوتا فیلد استان و شهر داشته باشم و بصورت combo box باشد و زمانی که بر فرض استان فراس رو از لیست استان انتخاب می کنم ، لیست شهرهای مربوط با فارس در فیلد شهر نمایان شود.البته خودم اینکارو کردم ولی متاسفانه همه شهر هارو نمایش میده(مانند شکل پیوست)
 

پیوست ها

  • Capture.jpg
    Capture.jpg
    7.8 کیلوبایت · بازدیدها: 31

zorig4fun

Member
دوست گرامی کاری که میخواهید انجان دهید بسیار راحت میباشد.

دراپ دان لیستی به صفحه برای نمایش استانها قرار دهید و دیتاسرس را تنظیم کنید که از جدول استان تمام استانها را با آیدی آنها بخواند و برای نمایش اسم را انتخواب کنید و مقداری که برای ولیو میباشد را به آیدی تغییر دهید.

دراپ دان لیست دوم را برای نمایش شهر ها اضافه کنید و در دیتاسرسی که تعریف میکنید از WHERE استفاده کنید و داخل WHERE شما Column را به آیدی که به استان ربط دارد انتخواب میکنید Operator را مساوی انتخواب کنید و source را Control در سمت راست ControlID را دراپ دان لیست مربوط به استان را انتخواب کرده ادد را بزنید و موردی که نباید سادتون بره حالت پست بک دراپ دان لیست استان را فعال کنید تا هروقت استانی انتخواب میشود صفحه بازخوانی شود.

موفق باشید
 

night11

Member
خوب حالا شما باید بین Id از جدول State و StateId از جدول City رابطه برقرار کنید (RelationShip)

بعدش به کمبو اول که استانها رو می فرستید برای کمبو دوم یک کوئری می نویسید که شهر هایی رو انتخاب کنه که StateId اون برابر با id از جدول State باشه .
id جدول State رو هم از طریق کمبو دریافت می کنید .
 

sogoli

Active Member
خوب حالا شما باید بین Id از جدول State و StateId از جدول City رابطه برقرار کنید (RelationShip)

1-بعدش به کمبو اول که استانها رو می فرستید
2-برای کمبو دوم یک کوئری می نویسید که شهر هایی رو انتخاب کنه که StateId اون برابر با id از جدول State باشه .
id جدول State رو هم از طریق کمبو دریافت می کنید .

باتشکر از راهنمایی شما
من مورد 1 رو انجام دادم
برای مورد 2 چنین کوئری نوشتم:
SELECT CityName.city
FROM city
WHERE (((StateId.city)=id.ostan));

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

night11

Member
باتشکر از راهنمایی شما
من مورد 1 رو انجام دادم
برای مورد 2 چنین کوئری نوشتم:
SELECT CityName.city
FROM city
WHERE (((StateId.city)=id.ostan));

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


خواهش می کنم .
ببین دوست من این لینک آموزش تصویری رو ببین مربوط به خود مایکروسافت هست حتما متوجه می شی.
کد:
http://office.microsoft.com/en-us/access/HA011730581033.aspx

امیدوارم مشکلت حل بشه .
 

sogoli

Active Member
ممنون از لینکت
تا حدودی متوجه شدم ولی باز نتونستم عملیاتیش کنم.
کارم گیرکرده ...اگرزحمت نیست می تونی تو اکسس یه چنین فایلی رو درست کنی...(شرمنده)
 

night11

Member
دوست عزیز مثال قابل دانلود هست (لینک فایل آموزشی قرار داده شده توی همون صفحه فقط باید یکم دقت می کردید )
 

moosa2007

Member
سلام دوست من حالا حتما باید در دیتابیس باشه ؟
چ.ن به راحتی با جاوا این کد رو میشه نوشت ؟
 

sogoli

Active Member
ایا شما راه حلی بااستفاده از جاوا دارید؟
ممنون میشم بیشتر توضیح بدید...
 

moosa2007

Member
سلام
ببخشید اگه دیر شد
این فایل رو برات گذاشتم دانلودش کن
 

پیوست ها

  • set.rar
    4.3 کیلوبایت · بازدیدها: 55
آخرین ویرایش:

sogoli

Active Member
ممنون از فایلی که گذاشتی ...
ایا امکان داره که با یه جوری اونو به دیتا بیس وصل کرد؟
 

moosa2007

Member
خواهش میکنم
امیدوارم به دردت خوده باشه
دلیل اینکه حتما میخوای به دیتابیس وصل شه چیه ؟
 

sogoli

Active Member
دلیلش این هست که بشه بااستفاده از دو جداول که در دیتابیس ساختم(با نام استان و شهر) اطلاعات را دریافت نماید و بشه جداول دیگری را ساخت که اطلاعاتشون رو از جداول استان و شهر بخونه
 

جدیدترین ارسال ها

بالا