PDA

View Full Version : سوال: کنترل ورود اطلاعات هنگام دیتا اینتری



wolfstander
دوشنبه 14 تیر 1389, 11:33 صبح
سلام
در فایلی که ضمیمه کردم، یه نمونه ساده دفترچه تلفنه
میخوام بدونم که آیا راهی هست که بشه هنگام ورود اطلاعات اون رو کنترل کرد؟
به این صورت:
که آیا راهی وجود دارد که هنگام ورود اسم، مشخصات کلیه اسامی ای که وارد شده است نمایش داده شود که اگر کاربر خواست انتخاب کند
مورد دوم : اگر اسم و فامیل از قبل در سیستم وجود داشت، اخطار بدهد؟
شاید شما بگید که در مورد اول ، یه کمبو باکس بندازم که در ادامه اش به طور خودکار پر بشه
ولی مشکلی که دارم اینه که مثلا طرف اسمش محمد علی باشه، اینها بیان بزنن علی، اونوقت تکلیف چی میشه؟
در مورد دوم هم میخوام که سیستم اخطار بده و اگه کاربر خواست، این اطلاعات جایگزین اطلاعات قبلی بشه
یعنی قبل از اینکه کل اطلاعات وارد بشه به کاربر اخطار بده و نمیخوام که این دو عامل رو به صورت key تعریف کنم
با تشکر از همه

mazoolagh
دوشنبه 14 تیر 1389, 13:56 عصر
میخوام بدونم که آیا راهی هست که بشه هنگام ورود اطلاعات اون رو کنترل کرد؟


پاسخ در کل مثبت هست حتی برای فرم بوند

wolfstander
دوشنبه 14 تیر 1389, 15:54 عصر
خوب حالا که در کل همچین کاری امکان پذیره، اگه کسی راهنمایی کنه در این مورد که چطور سیستم رو تنظیم کنم که به این صورت که با تایپ بخشی از اطلاعات ، موارد مشابه نمایش داده بشه و در صورت تکرار فامیل ، همون اطلاعاتی که قبلا وارد شده نمایش داده بشه

mazoolagh
سه شنبه 15 تیر 1389, 14:06 عصر
خوب یکی از راهها میتونه این باشه:

قبل از هر چیز یک فیلد به جدول اسامی اضامی اضافه میکنین به اسم fullspec که شامل محتویات اسم و فامیل و شماره هست بدون space . مثلا مشخصات "علی رضا" "عالی نسب" به شماره 12345 میشه "علیرضاعالینسب12345"
اینکار به این خاطر هست که فاصله رو در جستجو (و ذخیره) بی اثر میکنه.

یک لیست باکس unbound میسازین مثلا به اسم selector برای نمایش رکوردهای ذخیره شده قبلی که فقط هنگام تایپ در تکست باکس مورد نظرتون دیده میشه. در این مثال شما میتونه شامل فیلدهای نام، نام خانوادگی و تلفن باشه

در رخداد onchange تکست باکس (مثلا به اسم fname) کدی شبیه زیر مینویسین:


sub fname change
on error goto erx
dim sqlq, txt as string
txt = nz(me.fname.text , "")
sqlq="select fname, lname, phone from phonebook where instr(fullspec,'" + txt + "') > 0 order by fullspec"
set me.selector.recordset = currentdb.openrecordset(sqlq)
erx:
end sub


حالا همزمان با تایپ در تکست باکس fname کلیه رکوردهای متناظر در لیست باکس دیده میشن.

جعفر88
پنج شنبه 17 تیر 1389, 14:46 عصر
سلام
دوست عزيز آقاي wolfstander يه راه ديگه اگه خاطرتون باشه توي بانك اطلاعات تصادفاتي (http://www.barnamenevis.org/forum/showthread.php?p=929016#post929016) كه قبلا براتون ارسال شده در فرم ويرايش كروكي ها پائين سمت راست قسمت مشاهده كروكي خاص هست و در اون برنامه با نوشتن شماره كروكي از سوي كاربر برنامه اونو مي تونست با اطلاعات بانك كنترل و پيام مناسب رو بده ولي اگه بخواي به صورت حرفه ايي نامي كه كاربر وارد ميكنه و موارد مشابه يا عين نام بررسي بشه و در يه فرم جداگانه ايي نمايش داده بشه مثل روش فوق خاصيت Record Source فرم شناور (pop up)را برابر عبارت sql دلخواه خودت قرار بده .