ورود

View Full Version : مشکل کلید اصلی در برنامه



omidparkour
جمعه 23 فروردین 1392, 23:57 عصر
سلام
من داخل بانک اطلاعاتیم(اکسس) یک فیلد رو کلید اصلی در نظر گرفتم و میخوام توی ویژوال بیسیک وقتی داخل تکست باکس که به اون فیلد ارتباط دادم مقدار تکراری ریخت پیغام بده که این شماره قبلا وارد شده
لطفا راهنمایی کنید

m.4.r.m
شنبه 24 فروردین 1392, 13:32 عصر
خوب از طریق یک دستور ساده Adodc1.RecordSource شما دستور Select مربوط به SQL‌رو بنویسی میتونی این شرط رو چک کنی در واقع به این صورت :

Adodc1.RecorSource="Select * From Table1 Where Id=" & Text1.Text
Adodc1.Refresh

If Adodc1.RecordSet.RecordCount=0 Then
' Dastorat Shoma
Else
' Msgbox "In Code Tekrari Ast"
Exit Sub
End If

omidparkour
شنبه 24 فروردین 1392, 20:41 عصر
سلام
من این کد رو نوشتم نشد
من فایل برنامه ام رو قرار دادم اگه میشه تغییرش بدین لطفا (اطلاعات در form1 هست و فیلد شماره تاسیس)
فایل برنامه (دانلود کنید) (http://uploadkon.ir/?file=form1.zip)

omidparkour
یک شنبه 25 فروردین 1392, 13:35 عصر
یعنی اینقدر سئوالم سخته که کسی بلد نیست جواب بده؟؟؟؟؟!!!!!!!!!

omidparkour
یک شنبه 25 فروردین 1392, 19:14 عصر
یعنی اینقدر سئوالم سخته که کسی بلد نیست جواب بده؟؟؟؟؟!!!!!!!!!



چرا هیچ کس جواب نمیده لااقل بگین بلد نیستیم

m.4.r.m
دوشنبه 26 فروردین 1392, 00:37 صبح
اخه دوست خوبم برنامه رو کپی می کنین و ما هم براتون میزاریم این کد که برات گذاشتم نمونه است چرا به جای number_tasis در جست و جوی با Select نوشتی ID . شما به جای ID همین number_tasis رو بزاری مشکلت حل میشه .

omidparkour
دوشنبه 26 فروردین 1392, 05:19 صبح
من کردم نشد

omidparkour
دوشنبه 26 فروردین 1392, 05:24 صبح
syntax error میده

m.4.r.m
دوشنبه 26 فروردین 1392, 16:37 عصر
من برات درستش کردم اما برنامه نویسیت اصولی نیست اصولی نوشتن رو یاد بگیر نوع فراخوانی دیتابیس رو پویا بنویس همون که من برات نوشتم در دستور دکمه بروز رسانی برات نوشتم
http://uploadkon.ir/?file=form1_1.zip

omidparkour
دوشنبه 26 فروردین 1392, 21:45 عصر
سلام
ممنون
اما یک مشکل
دفعه ی اولی که اجرا کردم کاملا درست بود اما از دفعات بعد اطلاعات جدید ثبت میکنه اما وقتی اطلاعات تکراری میزنم این ارور رو میده مشکل از کجاست؟؟؟؟؟
http://uploadkon.ir/uploads/Untitled_438.png

m.4.r.m
دوشنبه 26 فروردین 1392, 23:22 عصر
این خطا به خاطر این هست چون نوع داده شما به عنوان کلید اصلی تعریف کرده اید نمی تواند مقدار تکراری قبول کند .

omidparkour
سه شنبه 27 فروردین 1392, 05:16 صبح
خب من الآن چی کنم؟؟؟؟؟؟؟؟؟
داخل بانکم این فیلد رو از کلید اصلی دربیارم؟؟؟؟؟؟

m.4.r.m
سه شنبه 27 فروردین 1392, 09:24 صبح
من تست کردم چون زمان بروز رسانی اجازه نمیده کد تکراری وارد کنید خطا میده که کد شما تکراری است این خطای شما برای من نمایش داده نشد دقیقا بگو چه عملی انجام میدی که این خطا رو بهت نشون میده

omidparkour
سه شنبه 27 فروردین 1392, 22:19 عصر
از اول اول توضیح میدم
اول آماده سازی برای ثبت اطلاعات رو میزنم بعد اطلاعات رو وارد میکنم و شماره تاسیس رو هم تکراری وارد میکنم بعدش به روز رسانی رو میزنم که اون پیغام نمایش داده میشه و وقتی debugرو میزنم میاد روی کد

adodc1.recordset.update

و highlight میشه به رنگ زرد





من الان نمیدونم که چرا دفعه ی اول درست جواب داد:متفکر:

m.4.r.m
سه شنبه 27 فروردین 1392, 22:59 عصر
احتمالا اطلاعات رو اشتباهی وارد کردی من همین کاری رو که شما گفتی انجام دادم هیچ خطایی نداد چون امکان نداره خطا بده برای اینکه داره کد تاسیس رو چک می کنه تکراری باشه اجازه ثبت نمیده که بیاد خطا بگیره اون سورسی رو که بهت دادم استفاده کردی یا رو سورس خودت این کار رو انجام دادی اگه امکانش باشه کد دکمه بروز رسانی و افزودن و آماده سازی .... رو برام بزار اینجا

omidparkour
سه شنبه 27 فروردین 1392, 23:37 عصر
همونی که شما دادین رو استفاده کردم
این کد برنامه

Dim a As Integer

Private Sub Button1_Click()
Form1.Hide
Form2.Show

End Sub

Private Sub Button2_Click()
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then
Adodc1.Recordset.MoveLast
End If
a = MsgBox("ÇØáÇÚÇÊ ÏÇÑæÎÇäå ÈÇ ãæÝÞíÊ ÍÐÝ ÔÏ", vbInformation, "äÊíÌå í ÍÐÝ ÏÇÑæÎÇäå")
End Sub

Private Sub Button3_Click()
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "/Database8.mdb;"
Adodc2.RecordSource = "Select number_tasis From moshakhasat_darokhane Where number_tasis=" & Text1.Text
Adodc2.Refresh

If Adodc2.Recordset.RecordCount = 0 Then
Adodc1.Recordset.Update
MsgBox "ÇØáÇÚÇÊ ÔãÇ ÈÑæÒ ÑÓÇäí ÔÏ", vbInformation, ""
Else
MsgBox "ÔãÇÑå ÊÇÓíÓ ÔãÇ Ê˜ÑÇÑí ãí ÈÇÔÏ", vbCritical
Exit Sub
End If
End Sub

Private Sub Button4_Click()
Adodc1.Refresh
End Sub

Private Sub Button5_Click()
Adodc1.Recordset.AddNew


End Sub

Private Sub Button6_Click()
Adodc1.Recordset.AddNew

End Sub

Private Sub Button7_Click()
Form1.Hide
start.Show
End Sub

Private Sub Button8_Click()
Dim b As Integer
b = InputBox("ÚÈÇÑÊ ãæÑÏÌÓÊÌæ ÑÇ æÇÑÏ ˜äíÏ", "æÑæÏí")
If Option1.Value = True Then
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find ("number_tasis='" & b & "'")
If Adodc1.Recordset.EOF = True Then
MsgBox "ãæÌæÏ äíÓÊ"
End If

ElseIf Option3.Value = True Then
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find ("tel='" & b & "'")
If Adodc1.Recordset.EOF = True Then
MsgBox "ãæÌæÏ äíÓÊ"
End If
End If
End Sub

Private Sub Combo2_click()
If Combo2.ListIndex = 2 Then
Text11.Visible = True
Else
Text11.Visible = False
End If
End Sub
Private Sub Form_Load()
Adodc1.Refresh
Combo1.AddItem "ÏÇäԐÇå Úáæã ÒÔ˜í"
Combo1.AddItem "ÓÇÒãÇä ÊÇãíä ÇÌÊãÇÚí"
Combo1.AddItem "ÈÎÔ ÎÕæÕí"
Combo1.AddItem "ÎíÑíå"
Combo1.AddItem "ÓÇíÑ äåÇÏ åÇæ ÇѐÇäåÇ"
Combo2.AddItem "ãá˜í"
Combo2.AddItem "æÞÝí"
Combo2.AddItem "ÇÓÊíÌÇÑí"
Combo3.AddItem "ãÓÊÞá"
Combo3.AddItem "ÛíÑ ãÓÊÞá"
Combo4.AddItem "1ÔíÝÊ"
Combo4.AddItem "2ÔíÝÊ"
Combo4.AddItem "ÔÈÇäå ÑæÒí"

End Sub

m.4.r.m
سه شنبه 27 فروردین 1392, 23:42 عصر
اگه Adodc2 رو تو صفحه فرم قرار داده باشی هیچ مشکلی نباید داشته باشی . من تست کردم

omidparkour
چهارشنبه 28 فروردین 1392, 05:24 صبح
:گریه::گریه::گریه::گریه: چرا برای من آخه باید مشکل داشته باشه!!!!!!!!

من قرار دادم
روش دیگه ای برای این کار وجود نداره؟؟؟؟؟؟؟
نمیشه با همونadodc1 انجام بده؟؟؟

omidparkour
چهارشنبه 28 فروردین 1392, 05:30 صبح
این فایلی که من ازش استفاده میکنم
http://uploadkon.ir/?file=form1_2.zip

m.4.r.m
چهارشنبه 28 فروردین 1392, 11:55 صبح
آخه چه ربطی به Adodc داره من بعضی وقتا میشه تو برنامه هام 10 تا Adodc تو یک فرم قرار میدم این دلیل نمیشه مشکل شما شاید از جای دیگه ای باشه من همین برنامه شما رو تست کردم مشکلی نداره آخه وقتی قبل از عمل Update میاد چک می کنه که اگه تکراری بود خطا بده چطوری می تونه هم خطا بگیره هم ارور بده به هر حال هر خدمتی از دست بنده بر بیاد کوتاهی نمی کنم یه پیشنهاد کل جدول مربوط به ثبت داروخانه رو خالی کن همون از داخل اکسس همه فیلد هایی که قبلا ذخیره کردی رو پاک کن از اول تست کن ببین باز مشکل پیش میاد یا نه در ضمن در دکمه بروز رسانی قبل از دستور آپدیت این کد رو هم بهش اضافه کن
On Error Resume Next
بازم سوالی بود در خدمتیم

omidparkour
چهارشنبه 28 فروردین 1392, 23:24 عصر
سلام من On Error Resume Next گذاشتم اما باز هم مشکل داره البته این دفعه ثبت میکنه و پیغام هم میده اما اگر هم وجود داشته باشه جایگزین میکنه

omidparkour
جمعه 30 فروردین 1392, 12:50 عصر
تو رو خدا یکی بررسی کنه ببینه مشکل چیه من تازه دارم vb یاد میگیرم بلد نیستم توروخدا

omidparkour
شنبه 31 فروردین 1392, 19:07 عصر
تو رو خدا یکی بررسی کنه ببینه مشکل چیه من تازه دارم vb یاد میگیرم بلد نیستمتوروخدا
تو رو خدا یکی بررسی کنه ببینه مشکل چیه من تازه دارم vb یاد میگیرم بلد نیستم توروخدا
تو رو خدا یکی بررسی کنه ببینه مشکل چیه من تازه دارم vb یاد میگیرم بلد نیستم توروخدا

omidparkour
یک شنبه 01 اردیبهشت 1392, 22:37 عصر
:گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه::گریه::گریه: :گریه::گریه:



چرا کسی نمیتونه جواب بده؟؟؟؟؟؟؟؟

m.4.r.m
دوشنبه 02 اردیبهشت 1392, 00:06 صبح
آخه چه جوابی بهتر از اونی که برات درست کردم شما بلد نیستی من چیکار کنم من همه راحشو بهت یاد دادم خودم سورس شما رو درست کردم تست کردم تحویلت دادم شما نمی تونی ما چیکار کنیم ببر رو یه سیستم دیگه تست کن ببین جواب میگیری یا نه