View Full Version : شناسائی فرد
6raya1043
سه شنبه 15 شهریور 1384, 14:45 عصر
با سلام
دوجدول داریم که از طریق فیلد نامبرو اتونامبر(بنام کد شناسائی) باهم ارتباط دارند آیا این امکان وجود دارد که اگر ما کد شناسائی و نام و نام خانوادگی جدید واردکنیم جستجو شود فردی که نام و نام خانوادگی اش (نه ازطریق کدشناسایی )مطابقت دارد را پیدا کند و اعلام تکراری بودن کند (مهم تکراری بودن ازطریق نام وشهرت میباشد)
mohammadgij
سه شنبه 15 شهریور 1384, 16:26 عصر
آره ملومه که میشه.
شما هم میتونید یه رکورد ست باز کنید با شرط نام و نام خانوادگی برابر اونچه که وارد کردید و هم میتونید از دستور DCount استفاده کنید و جواب بگیرید
Dim intRec as Integer
intRec=Dcount("id",tblName,txtName=" & me.txtName & " And txtFamily=" & Me.txtFamily & "")
If intRec<>0 then
msgbox "Duplicate Record"
Exit Sub
end if
mRizvandi
سه شنبه 15 شهریور 1384, 16:48 عصر
سلام
یه SQL به شکل زیر برای رسیدن به جواب نیاز است:
SELECT * FROM tblName WHERE fName = MyName AND fFamily = MyFamilyبه جای MyName , MyFamily مثلا می تونی از مقادیر Text شی های TextBox استفاده کنی. بعد از اجرای این SQL کافیه که این شرط رو چک کنی:
IF Not(rst.BOF And rst.EOF) Then
MsgBox "Duplicate found"
End If
البته نا گفته نماند که یک راه دوم هم وجود داره و اینه که یک روال کشف خطا بنویسی و در صورتی که خطای شماره .... رخ داد که به معنای تکرار رکورد است اونوقت می تونی پیغام بدی که رکورد تکراریه و الی آخر.
...
On Error Goto ErrHandler
.
.
.
Exit Sub
ErrHandler:
Select Case Err.Number
Case YourErrorNumber
MsgBox "Duplicate found"
Case ...
...
End If
:چشمک:
بدست آوردن شماره خطا هم کار ساده ایست. یک رکورد ایجاد کن بعد تکرارش کن ببین چه خطایی میده و ...
:چشمک:
6raya1043
شنبه 19 شهریور 1384, 15:08 عصر
آره ملومه که میشه.
شما هم میتونید یه رکورد ست باز کنید با شرط نام و نام خانوادگی برابر اونچه که وارد کردید و هم میتونید از دستور DCount استفاده کنید و جواب بگیرید
Dim intRec as Integer
intRec=Dcount("id",tblName,txtName=" & me.txtName & " And txtFamily=" & Me.txtFamily & "")
If intRec<>0 then
msgbox "Duplicate Record"
Exit Sub
end if
شرمنده نیاز به توضیح بیشتر دارم برای تست کردن یک جدول شامل سه فیلد کد نام نام خانوادگی ایجادکردم حالا این کد نوشته شده شما در کجای وارد شود .
منظور از بازکردن رکورد ست چیست؟(تعریف متغییر میباشد؟)
6raya1043
شنبه 19 شهریور 1384, 15:16 عصر
جناب مرزوندی بطورکلی مبحث شما رامتوجه میشوم اما درکاربردآن بسیارضعیفم ممکن است کمک کنیدبفرمایید که این کدها چگونه و کجای فرم باید واردشود آیاماجولی باید نوشته شود. چگونه ؟
6raya1043
شنبه 19 شهریور 1384, 15:17 عصر
چنانچه هریک نمونه ای بفرستید تا کاربرد آن رامتوجه شوم ممنون میشوم
mohammadgij
یک شنبه 20 شهریور 1384, 17:48 عصر
اینم یه فایل که سریع ساختم ببخشید اگه خوب نیست اما امیدوارم که کارت رو راه بیندازه
برای دیدن کد هم توی After update قسمت txtFamily رو نگاه کن
6raya1043
سه شنبه 22 شهریور 1384, 11:09 صبح
تشکر از ارسال فایل
اما فایل زمان باشدن درخصوص فرمتش ایراد میگیرد و باز نمی شود لطفا مجدد آن را ارسال کنید
mohammadgij
چهارشنبه 23 شهریور 1384, 13:36 عصر
با عرض شرمندگی من اینو تو محیط اکسس ایکس پی نوشتم. نمی تونی با کمتر از ورژن ایکس پی بار کنی فایل رو. اکسس کمتر هم ندارم که برات فایلشو تغییر بدم. شرمنده.
یه چیز دیگه اگه با اکسس ایکس پی و یا 2003 هم بازش کردی حتما در Refrences گزینه Microsoft DAO 3.6 Object Library رو انتخاب کن
6raya1043
شنبه 26 شهریور 1384, 09:45 صبح
باتشکر از شما
فایل ارسالی خیلی مفید بود اما وقتی کد فایل شما را ا به فرم خودم که متشکل از کد شناسائی از جدول چند و نام ونام خانوادگی از جدول یک بود استفاده کردم دراین قسمت ایراد میگیرد نمیدانم چرا
intRec=Dcount("id",tblName,txtName=" & me.txtName & " And txtFamily=" & Me.txtFamily & "")
سوال دیگر اینکه درمقابل هر if باید یک endif باشد چطور برنامه برای شروط شما ایراد نمیگیرد؟
سوم اینکه درمنوی تولز آیتم رفرنس را من نیافتم که پیشنهاد شمارااجراکنم ممکن است توضیح دهید
mohammadgij
یک شنبه 27 شهریور 1384, 11:17 صبح
در مورد این خط از برنامه
If daorstSelect.State = 1 Then daorstSelect.Close
چون من تمام دستوراتم رو در یک خط نوشتم یا بهتر بگم چون یه دستور داشتم و در یک خط و روبروی Thenنوشتم دیگه نیازی به End If نیست حتی واسه چند دستور هم می تونی همشونو توی یک خط بنویسی و از End Ifبی نیاز شی.
بعد از هر دستور کافیه که : رو بذاری
یه سوال. شما ارتباط این دو تا جدولت چه طوریه؟ مگه فیلد Id یا شماره تو هر دو تا نیستش؟
خب اگه تو جدول نام و نام خانوادگی هستش دیگه فقط ار اون جدول کمک بگیر
واسه Dcount هم همین کار رو بکن و اسامی فیلدهاتو بذار جای اونایی که من گذاشتم
6raya1043
یک شنبه 27 شهریور 1384, 15:18 عصر
درخصوص ارتباط جداول ، یک به چند میباشد زیرا مشخصات سجلی فرد در جدول یک و سایر اطلاعات در جدول چند است (ونیازی نمی بینم که هربار مشخصات سجلی که کم هم نیستند در یک جدول بیاورم ) . فرم را بصورتی طراحی کرده ام که وقتی شماره از جدول چند وارد کنم نام و نام خانوادگی از جدول یک (برای اطمینان ) رویت شود
mohammadgij
دوشنبه 28 شهریور 1384, 10:33 صبح
عزیزم کلید ارتباطی این دو تا جدولت چین؟
یعنی جدول یک با جدول چند به وسیله چه کلیدی با هم ارتباط یک به چند دارن؟؟؟؟؟؟؟
6raya1043
شنبه 02 مهر 1384, 17:01 عصر
همانطوریکه قبلا گفته شده بین کدشناسائی که نامبر و اتونامبرمیباشند ارتباطشان را برقرارکرده ام (اگر منظور شما راازکلید درست متوجه شده باشم )
mohammadgij
یک شنبه 03 مهر 1384, 11:11 صبح
خب چه اصراری داری که از جدول دوم هم استفاده کنی؟
همون جدولی که نام اشخاص توشه واسه کنترل کردن که تکراری وارد نشه کافیه
maleki
چهارشنبه 06 مهر 1384, 09:03 صبح
شما باید از Indexاستفاده کنی به تصویری که برات ارسال میکنم یه نگاهی بنداز انجام اینکار باعث میشه که همزمان کد شخص ،نام شخص و نام خانوادگی شخص در یک زمان چک بشه که تکراری نباشه فقط حتما یادت باشه خاصیت Uniqueاین ایندکس رو Yesبزاری تا درست عمل کنه.
6raya1043
چهارشنبه 06 مهر 1384, 12:14 عصر
در جواب آقای محمدکیچ مشخصا وقتی که یک سری اطلاعات که نمیخواهیم درهررکوردتکرارشود درجدول یک قرارمیدهیم و بقیه را در جدول دوم قرارداده و درفرم هردو را فراخوان کرده ام
آقای مجیدی چند فیلد را می توان اندیکس کرد
mohammadgij
چهارشنبه 06 مهر 1384, 16:43 عصر
ببین عزیزم من میفهمم که واسه چی دو تا جدول درست کردی. من منظورم اینه که شما چرا وقتی می خوای چک کنی که اطلاعات تکراریه، می خوای توی هر دو جدول و یا View از دو جدول بگردی؟ خب توی جدول اول بگرد چون شما فقط می خوای ببینی که نام و نام خانوادگی تکراری وارد نشه و این مورد در جدول اول هستش . پس نیازی به جدول چند در هنگام کنترل تکرار نداری. البته برای خود برنامت بهترین کار رو کردی که دو تا جدول داری. من قط در هنگام تکرار می گم کنترل یه جدول کافیه. در ضمن راهی که مالکی هم گفته میشه ولی من زیاد با Index اونم روی شزح فارسی حال نمی کنم. محدودیت هم نمی دونم من تا 5 تا هم گذاشتم
6raya1043
چهارشنبه 06 مهر 1384, 18:32 عصر
بله متوجه ام حق باشماست من درواقع در یک جدول دو فیلد نام و نام خانوادگی را دارم که میخواهم چک شود و قصدم هم این نیست که در دو جدول تجسس شود در واقع من در فرم این دوجدول را کنارهم دارم و درحالی که کدشناسایی در جدول 1 را در فرم وارد میکنم نام و... را از جدول چند رویت میکنم که آیا کد شناسایی همان مشخصات را آورده یا خیر .
این مطلب که باید مشخصات فرد در یک جدول چک شود صحیح است اما اندیکس کردن بکارمن نمی آید چرا که میخواهم دو فیلد فوق در نظر گرفته شود و چنانچه تکراری بود ÷یعام دهد درصورتی که هر فیلد راکه اندیکس کنم فقط اجازه یک ورودی رامیدهد
6raya1043
چهارشنبه 06 مهر 1384, 18:39 عصر
بله متوجه ام حق باشماست من درواقع در یک جدول دو فیلد نام و نام خانوادگی را دارم که میخواهم چک شود و قصدم هم این نیست که در دو جدول تجسس شود در واقع من در فرم این دوجدول را کنارهم دارم و درحالی که کدشناسایی در جدول 1 را در فرم وارد میکنم نام و... را از جدول چند رویت میکنم که آیا کد شناسایی همان مشخصات را آورده یا خیر .
این مطلب که باید مشخصات فرد در یک جدول چک شود صحیح است اما اندیکس کردن بکارمن نمی آید چرا که میخواهم دو فیلد فوق در نظر گرفته شود و چنانچه تکراری بود ÷یعام دهد درصورتی که هر فیلد راکه اندیکس کنم فقط اجازه یک ورودی رامیدهد
mahdi2668
یک شنبه 24 آبان 1394, 12:13 عصر
اینم یه فایل که سریع ساختم ببخشید اگه خوب نیست اما امیدوارم که کارت رو راه بیندازه
برای دیدن کد هم توی After update قسمت txtFamily رو نگاه کن
با سلام این برنامه چه کدی داره که وقتی اجراء میشه به صورت اتوماتیک فرم ثبت اطلاعان فراخوانی میشه.باتشکر
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.