PDA

View Full Version : کنترل و ثبت اطلاعات در کوئری یا فرم



Profesorjd
سه شنبه 04 دی 1386, 20:11 عصر
با سلام
در کوئری میشود با + دو یا چند فیلد را باهم چسباند (!) . مشکل من این است که یکی از این دو فیلد ممکن است چندبار تکرار شود ولی فیلد دیگر بدون وابستگی تکرار میشود مثلاً دو فیلد کد شهر و شماره تلفن . که فیلد 021 چندبار تکرار میشود ولی شماره تلفن چنانچه مربوط به تهران باشد تکراری نیست ولی این شماره در شهر دیگر هست . من این دو فیلد را به هم چسباندم که مثلاً حاصل 02112345678 شود و اگر مثلاً در اصفهان شماره 12345678 بود با این قاطی نشود . یعنی چنانچه فیلد 021 و 12345678 با هم چسبید تکراری نشود . پس چندین 021 و چندین 12345678 وجود داشته باشد ولی فقط یک 02112345678 و یا یک 04112345678 با تشکر فراوان

مهدی قربانی
سه شنبه 04 دی 1386, 23:39 عصر
سلام
شما می تونید از Dlookup برای بررسی موجود بودن اطلاعات استفاده کنید که در صورت موجود بودن ، اطلاعات جدید رو وارد نکنه .

Profesorjd
پنج شنبه 06 دی 1386, 21:35 عصر
سلام استاد
ولی چگونه ؟ چون جمع دو فیلد در کوئری انجام میشود و نتیجه در همان کوئری نمایش باید داده شود . ضمناً نمیخواهم اطلاعات را وارد کند میخواهم از نمایش اطلاعات تکراری جلوگیری کند .توضیح اینکه در مثال فوق ابتدا نام و نام خانوادگی و شغل تعریف میشود و کد شهر و شماره تلفن . حالا میخواهیم این مشخصات را با سرهم کردن کد شهر و شماره تلفن نمایش دهیم که نتیجه دو بار تکرار مشخصات فردی است ( چراکه یکبار با کد شهر می‌آورد و یکبار با شماره تلفن )

مهدی قربانی
جمعه 07 دی 1386, 00:11 صبح
سلام
اگر موضوع تکرار اطلاعات رو عادی فرض کنیم یه روش مجموع کردن گروه کردن در کوئریه ( Group By ) ولی چرا دوبار اطلاعات یک نفر رو در کوئری نمایش میده میتونید با نمونه موضوع رو پرزنت کنید

Profesorjd
جمعه 07 دی 1386, 19:28 عصر
سلام و تشکر
این هم نمونه .

مهدی قربانی
شنبه 08 دی 1386, 18:47 عصر
سلام
ببینید این نمونه که در اون از فرم Unbound استفاده شده مشابه چیزیه که شما دنبالشید ؟

Profesorjd
شنبه 08 دی 1386, 19:18 عصر
سلام و تشکر
نه دوست گرامی ! اگر در مثال ارسال شده دقت فرمایید اطلاعات از 3 جدول جمع آوری میشود به عبارتی اطلاعاتی که قبلاً وارد شده است . حالا میخواهیم با جمع کد شغل و سطر شغل اولاً یک کد جدید درست کنیم که مجموع دو کد فوق هستند و ثانیاً از تکرار جلوگیری کند . یعنی یک کد برای هر فرد بسازد که با مشخصات فرد و نوع شغل و تعریف آن شاخص شده باشد . همانگونه که ملاحظه می فرمایید چون کد شغل تکرار پذیر است با سطربندی قابل تفکیک است ولی چگونه وقتی سطر با کد جمع شد فقط به یک نفر اختصاص دهد ؟ ( بعبارتی از تکرار جلوگیری کند ضمناً بنظرم مثالم در مورد شماره تلفن و کد شهر گیج کننده بود که اصل کار را آوردم با عرض معذرت )

مهدی قربانی
شنبه 08 دی 1386, 20:34 عصر
البته من از مثال شما چیزی متوجه نشدم معنی سطر اینجا چیه ؟ یعنی عبارت سطر در کنار شغل چه مفهومی داره بطور بعد ارتباط جداول شما شما درست نیست بطور مثال یه وقت گفته میشه کد سازمانی + کد شغل + کد سمت بعد شما مثلاً سه جدول خواهید داشت که هر کدوم دربرگیرنده اطلاعات کد سازمان ، کد شغل ، کد سمت خواهد بود حالا این سه جدول به جدولی که همون جدول پرسنلیه بواسطه ارتباط یک به چند مرتبط میشن در این جدول هم یک فیلدی دارید که در اون یک شماره سریال پرسنلی به شخص میده یا در خودش ذخیره می کنه از این به بعد شما در قالب کوئری یا فرم میتونید هر کدوم از این سه یا چهار فیلد رو با هم ترکیب کرده و یک کد مرکب که بقولی میشه همون کد پرسنلی شخص بدست بیارید حالا با روشهای مختلفی میشه از ورود کد ترکیبی مابه جلوگیری کرد من در نمونه شما به همچین نتیجه ای نرسیدم چه از نظر ساختار جداول چه از نظر ارتباط بین اونها حالا اگر مثال و روشی که بنده توصیف کردم همونیه که مورد نظر شماست بفرمائید تا یک نمونه دیگه تقدیم کنم .

Profesorjd
شنبه 08 دی 1386, 21:27 عصر
سلام و تشکر . در یک سازمان و اداره دولتی هر قسمت یا واحد کد بندی میشوند و در قسمت یا واحد زیر مجمعه سطر بندی میشوند . مثلاً قسمت کارگزینی کد 1234567 خواهد خورد و نفرات شاغل در این قسمت سطر بندی که مثلاً 01 مسئول قسمت و 02 جانشین قسمت و 03 کارشناس و 04 پیک و ... . سه جدول خواهیم داشت که یکی اطلاعات پرسنلی است و جدول دوم تعاریف مربوط به شغل و پست و جدول سوم ترکیب این دو باهم . که در جدول 1 کد پرسنلی کلید میشود و با جدول 3 که کلید ندارد کدها با هم ترکیب میشوند یعنی کد پرسنلی + کد شغل و جدول 2 کد شغل کلید است . حالا در کوئری ما ترکیبی از مشخصات پرسنلی + مشخصات شغل خواهیم داشت . اشکال کار اینجاست در جدول سوم کد پرسنلی با کد شغل ربط میگیرد و کد سطر نمی‌اید . چرا؟ برای اینکه کد سطر حداکثر 9 رقم میشود و تکراری است چراکه در هر قسمت یا واحد تکرار میگردد . وابستگی از ترکیب کد شغل و کد سط ایجاد میشود . مثلاً اگر کد قسمت کارگزینی 1234567 باشد این کد + 01 میشود مسئول قسمت بعبارتی 123456701 یعنی مسئول کارگزینی و 123456702 یعنی جانشین کارگزینی و ... اما در جدول 3 فقط کد پرسنلی + کد شغل است . در این مثال یعنی آقایان مهدی محمدی و رضا دوستی در کارگزینی کار میکنند و عنوان کاریشان باید با ترکیب سطر و کد شغل مشخص شود که نشده و من میخواهم با ترکیب آن اینکار را انجام بدهم که چون دوبار کد شغل برای دو نفر تعریف شده در صورت اتصال سطرها یکبار با ترکیب 123456701 می‌اورد و یکبار با ترکیب 123456702 . من دنبال راه حلی هستم که یا با پرسش از کاربر یا به روشی دیگر بتوان هر مجموع کدها را به یک نفر اختصاص داد و در صورت تکراری شدن جلوگیری کند . ببخشید خیلی طولانی شد چون بنظرم آنچه که میخواهم با آنچه که زحمت میکشید متفاوت است .