PDA

View Full Version : افزودن اطلاعات



MMR_1344
یک شنبه 28 مرداد 1386, 11:58 صبح
با سلام بر تمامی دوستان من برنامه ای نوشتم برای دفتر تلفن در اون کلیه تکست باکسها که اطلاعات رو نمایش میدن غیر فعال کردم یعنی Enabel=False حالا میخوام اگر مثلاٌ کلید Add رو زدم بتونم تمامی اطلاعات رو درون اون وارد کنم
تا اینجا من ایکار رو هم کردم یعنی Enabel همگی رو به True تغییر دادم حالا که از دستور Add برای اضافه شدن اطلاعات ورودی استفاده میکنم میخوام دوباره Enabel همگی به False تغییر کنه ممکنه بگین چجوری میشه اینکار رو انجام داد

MMR_1344
یک شنبه 28 مرداد 1386, 13:48 عصر
برای اینکه بتونم بهتر مشکلم رو مطرح کنم فایل پیوست رو قراردادم
مشکل من اینه که وقتی از منوی فایل گزینه افزودن رو انتخاب میکنم Enabel تمامی TextBax ها True میشه و من میتونم به اون مقادیری رو اضافه کنم حالا میخوام بعد از اینکه ورود اطلاعاتم پایان یافت بتونم Enabel تمامی اونها رو False کنم
آیا باید حتماٌ کلیدی برای اون معرفی کنم ؟
اگر بخواهم بدون اینکه کلیدی به اون اضافه کنم این کار صورت بگیره چه جوری ممکن میشه؟

perfeshnal
یک شنبه 28 مرداد 1386, 13:52 عصر
سلام

من که آخر سوال رو نفهمیدم میشه بیشتر توضیح بدی

perfeshnal
یک شنبه 28 مرداد 1386, 13:57 عصر
بهتر اینه که یک کلید برای این کار بزاری چون شاید کاربر بعد از پر کردن Text آخر بخواد از دوباره Text 2 رو ویرایش کنه و شاید هم نکنه

MMR_1344
یک شنبه 28 مرداد 1386, 14:08 عصر
نه دوست من میخوام بعد از گذشتن از تمامی خانه ها اطلاعات وارده رو در دیتا بیس بزاره و سپس از حالت امکان تغییر خارج بشه

MMR_1344
یک شنبه 28 مرداد 1386, 14:13 عصر
البته برای عبور از خانه آخر بایستی کلید Tab رو فشار بدم که متاسفانه این کلید در برنامه عمل نمیکنه

mahdyeh
یک شنبه 28 مرداد 1386, 16:22 عصر
سلام
وقت بخیر !


من برنامه ای نوشتم برای دفتر تلفن در اون کلیه تکست باکسها که اطلاعات رو نمایش میدن غیر فعال کردم یعنی Enabel=False حالا میخوام اگر مثلاٌ کلید Add رو زدم بتونم تمامی اطلاعات رو درون اون وارد کنم
تا اینجا من ایکار رو هم کردم یعنی Enabel همگی رو به True تغییر دادم حالا که از دستور Add برای اضافه شدن اطلاعات ورودی استفاده میکنم میخوام دوباره Enabel همگی به False تغییر کنه ممکنه بگین چجوری میشه اینکار رو انجام داد

من فایلتون رو هنوز دانلود نکردم اما تا اونجایی که متوجه شدم :
میتونید هنگام لودِ فرمتون ، همه ی تکست هاتون رو غیر فعال کنید ؛ حالا اگه کاربر خواست که یه چیزی رو اضافه بکنه و Add ‌رو زد اون موقع تکست های شما خالی بشن و فعال ، و بعد که اطلاعات رو وارد کرد و دوباره Add رو زد ؛ تکست های شما غیر فعال بشن ؟ درسته ؟
خب میتونید قسمت Add_Click اتون این کد هارو هم اضافه بکنید که بیاد بررسی بکنه :
اگر تکست های شما غیر فعال بودن اونارو خالیشون بکنه و فعال ؛ و خب اگه فعال بودن اون موقع بیاد مقادیر داده شده رو به لیست مورد نظرتون اضافه بکنه و آخر سر هم تکست هاتون رو غیرفعالشون بکنه . هوم ؟؟؟؟

MMR_1344
یک شنبه 28 مرداد 1386, 16:48 عصر
دوستان من روشی رو ابداع کردم (البته نمیشه گفت ابداع بلکه در نظر گرفتن است) که به پیوست فایل اون رو براتون میفرستم اگر نظری بود اعلام کنید متشکر میشم

atenaa
یک شنبه 28 مرداد 1386, 21:22 عصر
به نظر من اگه شما یک زیر منو به نام به روز رسانی داشته باشید بهتره
یعنی بعد اینکه افزودن فشرده شد این زیر منو غیر فعال بشه و زیر منوی به روز رسانی فعال بشه
بعدهم که کاربرخواست اطلاعات اضافه کنه به روز رسانی فشرده میشه و این بار بالعکس به روز رسانی و تکست باکس
ها غیر فعال و افزودن فعال شه
البته روش خودتون هم خوبه ولی ممکنه کاربر اشتباه کنه یا اصلا اول آدرس و وارد کنه بعد که از این تکست باکس
خارج شد دیگه عملا امکان وارد کردن نام و نام خانوادگی و تلفن رو از کاربر گرفتیم

perfeshnal
یک شنبه 28 مرداد 1386, 23:31 عصر
جناب MMR_1344 شما نمی تونید از روش خودتون استفاده کنید چون معلوم نیست کاربر از Text آخر شروع به پر کردن کنه یا از Text اول به نظر من بهتره بعد از کلیک کابر روی گزینه (افزودن) یک پنجره جدید باز بشه و TextBox ها رو داخل اون نمایش بدید و بعد از پر کردن کامل فیلدها یک دکمه به نام (تایید) بزارید و داده ها رو داخل دیتابیس ثبت کنید بعد کاربر از اون پنجره خارج بشه فکر کنم این بهترین کار باشه

sokote_bi_payan
دوشنبه 29 مرداد 1386, 00:37 صبح
دوست عزیز برای اینکه بخواید بدون اینکه دکمه ای داشته باشید و اطلاعات و ذخیره کنید می تونید بعد هر تب یا اینتری که کاربر می زنه اون تکست و غیر فعال کنید و در آخرین تکست باکس تمام اطلاعات و ذخیره کنید .

اینکه تکست باکس شما با تب کار نمی کنه می تونه چند تا دلیل داشته باشه : 1- خاصیت Tabindex فالس هست 2- یک Button دارید که ممکنه خاصیت Default اون True هست و ...


اما برای اون صحبت بالاییم می تونم به عنوان مثال بگم فرض کنید شما دو تا تکست دارید در تکست 1 اطلاعاتی و می نویسید حالا می خواید با تب به تکست باکس بعدی بره و این تکست باکس غیر فعال شه:

در رویداد KeyPress تکست1 می نویسید

select case keyasci
case 9(13 هم برای اینتر(
text1.enable= false
text2.setfocus

باز اگه مشکلی بود در خدمتم

MMR_1344
دوشنبه 29 مرداد 1386, 07:20 صبح
دوست عزیز مطلبی که بیان داشتی بسیار جالب است اما کد اسکی 9 مربوط به کلید Tab عمل نمیکنه اگر بشه این مشکل رو حل کرد شاید بشه از این روش استفاده کرد

atenaa
دوشنبه 29 مرداد 1386, 08:56 صبح
مشکل شما اینه که هیچ کدوم از اشیای روی فرمتون نباید خاصیت TABSTOP شون true باشه فقط در این صورت که رویداد keypress تکست باکس ،فشرده شدن کلید tab رو تشخیص میده tabstop همه اشیا رو باید false کنید در مورد enter هم همین طور نباید هیچ command button ای وجود داشته باشه که خاصیت default اون true باشه
ولی یک چیز دیگه اونم اینکه این روشی که کاربر sokote_bi_payan گفتند خوبه ولی ممکنه کاربر در ورد اطلاعات اشتباهی انجام داده باشه و متوجه نشه و بعد از زدن کلید تب و غیر فعال شدن تکست بفهمه جایی برای ویرایش اشتباهات وجود نداره!!!!!!

MMR_1344
دوشنبه 29 مرداد 1386, 13:18 عصر
از راهنمائیت متشکرم ولی اگر ممکنه او تغییری که میگی در برنامه بده و برام بفرست چون من
هر کاری کردم نشد
در مورد اشباه هم باید بگم که من یک بخش برا Edit کردن درست میکنم که در اون اشتباهات بوجود آمده رو میشه مرتب نمود ولی توی اون هم ممکنه این مشکل وجود داشته باشه که باید بیشتر بررسی کنم
به هر حال از شما متشکرم

atenaa
دوشنبه 29 مرداد 1386, 20:19 عصر
این یک نمونه که با تب بین تکست باکس ها حرکت می کنه و تنها نکته اش هم همونه که تو پست قبل گفتم خاصیت TABSTOP همه اشیا false شده شرمنده من خواستم برنامه شما رو تغییر بدم ولی نمی دونم چرا تو addnew کردن دچار مشکل می شد به هر حال اگه برنامه شما رو تونستم درست کنم براتون همین جا می ذارم

MMR_1344
سه شنبه 30 مرداد 1386, 06:07 صبح
دوست عزیز از لطف شما بسیار سپاسگذارم

MMR_1344
سه شنبه 30 مرداد 1386, 06:35 صبح
دوست عزیز من برنامه تو رو دیدم در حالت عادی اگر بخواهی ترتیب رعایت بشه میتونی از کلید TabIndex استفاده کرد تا ترتیب کلیدها رعایت بشه اما مشکل من اینه که اگر در ابتدای کار اون تکست باکسها رو از حالت Enabled خارج کنم (یعنی False بشه) و بعد بخوام اونها رو به حالت معمولی (حالتTrue) برگردونم این ترتیبت اجراء نمیشه برای نمونه برنامه خودت رو گذاشتم اگر بتونی درستش کنی ممنون میشم

atenaa
سه شنبه 30 مرداد 1386, 07:15 صبح
سلام
نمی دونم منظورتون رو درست متوجه شدم یا نه ولی این command ای رو که گذاشتید باید tabstop اش رو false می کردید این هم همین برنامه امیدوارم مشکلتون حل بشه اگه هم من اشتباه منظورتون و فهمیدم بگید تا دو باره برنامه رو اصلاح کنم راستی یک پیشنهاد دیگه البته فقط یک پیشنهاد شما چرا از کنترل adodc استفاده می کنید شما می تونید رکورد ست و کانکشن تعریف کنید و به راحتی با دستورهای sql به پایگاه داده تون داده اضافه کنید یا اون رو update کنید چون این طوری data فرق آن چنانی با adodc نمی کنه ولی اگه از کانکشن کامند و رکورد ست استفاده کنید کار با داده خیلی آسون تر میشه

MMR_1344
سه شنبه 30 مرداد 1386, 07:23 صبح
دوست عزیز از لطفت بسیار متشکرم برنامه ات مشکل منو حل کرد
در رابطه با رکورد ست و کانکشن اطلاعاتی ندارم اگر شما مرجعی برای ائنا میشناسی ممنون میشم منو راهنمائی کنی تا بتونم برنامه ام رو بهتر کنم
به هر حال از لطف شما متشکرم

MMR_1344
سه شنبه 30 مرداد 1386, 09:31 صبح
برنامه من با تغییرات هم به انجام نرسید برای همین اون رو ضمیمه کردم اگر بتونی ببینی مشکل کجاست ممنون میشم

MMR_1344
سه شنبه 30 مرداد 1386, 09:35 صبح
فایل ضمیمه نشد ببخشید

atenaa
چهارشنبه 31 مرداد 1386, 10:45 صبح
سلام
بالاخره این مشکل حل شد و لازم هم نیست که کاربر به ترتیب داده ها رو وارد کنه
در مورد ado هم کتاب و هم مقاله تو نت زیاد هست برای کارهای به این سبک کار با دستورهای sql خیلی آسون تره
کتابهایی که من دارم english هستند و حجمشون هم خیلی بالاست ولی یک pdf فارسی هم دارم که اگه maile تون رو بدید براتون send می کنم البته
خیلی مقدماتی توضیح داده واسه شروع بد نیست ولی اگه یک search کنید چیزای خوبی پیدا می کنید مثلا همی ن قضیه که شما table های زیادی گذاشتید
اگه یک record set را با یک دستور select با یک باز می کردید لازم نبودند می تونستید به راحتی فیلترش کنید
به هر حال موفق باشی امیدوارم این دفعه دیگه مشکل تب تو برنامه تون حل شده باشه

MMR_1344
چهارشنبه 31 مرداد 1386, 10:52 صبح
با تشکر از زحمات شما ایمیل من هم MMR_1323@yahoo.com هست متشکر میشم اگر اون کتابی که گفتی بفرستی