السلام عليكم
لدي جدول (قاعدة بيانات اكسس ) مقسم الى خمسة اعمدة (اربعة للارقام والخامس للون) ومربوطة مباشرتا بلتيكست في النموذج ولدي استفار حول
1 منع تكرار اي رقم داخل هذة الاعمدة الاربعة ( اي يعني عند ادخال رقم في العامود الاول لايقبل اذا كان داخل سابقا في اي عامود اخر او بنفس العامود)
2 حساب عدد مرات تكرار في عامود اللون ( اي حساب عدد مرات الاحمر وعدد مرات الاصفر ) وطباعته على تيكست
مع فائق الشكر والتقدير
أهلا أخي الكريم ، إذا كنت تستخدم أداة الـ Adodc في الإتصال بقاعدة البيانات وربطها بالتكستات ثم تريد الفحص عن التكرار إن وجد فيفضل أن تدرج أداة Adodc جديده وتكون خاصه بالإستعلامات فقط وأداة الـ Adodc الأولى دعها للربط بالتكستات وعمليات الإضافه والتعديل والحذف وغيرها ، قم بربط أداة الـ Adodc الثانيه بقاعدة البيانات كما ربطت الأداة الأولى ثم ضع كود الإستعلام وفحص ما إذا كان الرقم الجديد موجود في أي من الأعمده الأربعه في بداية كود زر الحفظ لنفترض أن إسم الجدول Table1 وأسماء الحقول الأربعه الخاصه بالأرقام هي Col1,Col2,Col3,Col4 وإسم حقل الألوان هو Col5 وأن الرقم الجديد الذي تريد فحصه موجود في الـText1 إذا ستكون جملة الإستعلام الخاصه بالفحص كالتالي :
PHP كود :
Adodc2.RecordSource = "Select * From Tabl1 Where Col1=" & Val(Trim$(Text1.Text)) & " or Col2=" & Val(Trim$(Text1.Text)) & " or Col3=" & Val(Trim$(Text1.Text)) & " or Col4=" & Val(Trim$(Text1.Text))
Adodc2.Refresh
IF Adodc2.RecordSet.RecordCount > 0 Then
MsgBox "الرقم المدخل موجود مكرر"
End IF
وبالنسبه لكود حساب تكرار الألوان قم بإدراج 3 تكستات تكست لكل لون مثلا Text7 للون الأحمر وText8 للون الأخضر وText9 للون الأزرق وضع كود الإستعلام هذا في زر جديد :
PHP كود :
Adodc2.RecordSource = "Selec (Select Count(Col5) From Table1 Where Col5="أحمر") as cRed,(Select Count(Col5) From Table1 Where Col5="أخضر") as cgreen,(Select Count(Col5) From Table1 Where Col5="أزرق") as cBlue From Table1"
Adodc2.Refresh
IF Adodc2.RecordSet.RecordCount > 0 Then
Text7.Text = Adodc2.RecordSet!cRed
Text8.Text = Adodc2.RecordSet!cGreen
Text9.Text = Adodc2.RecordSet!cBlue
Else
Text7.Text = "0"
Text8.Text = "0"
Text9.Text = "0"
End IF
اشتاذنا الغالي لقد تم تجربة الكود والنتيجة
في الكود الاول المشكلة يظهر لي الارقام كلها موجودة استخدمت الكود
Data2.RecordSource = "Select * From Table1 Where t1=" & (Text4.Text) & " or t2=" & (Text4.Text) & " or t3=" & (Text4.Text) & " or t4=" & (Text4.Text )
If Data2.Recordset.RecordCount > 1 Then و If Data2.Recordset.RecordCount > 0 Then
MsgBox "ÇáÑÞã ÇáãÏÎá ãæÌæÏ ãßÑÑ"
End If
وال;ود الثاني بعترض على اسماء الالون بالون الازرق في الكود اعلاه (expected :end of statement)
ولاحظت اعتقد ان حرف نقص من الكود اعلاة ام اني خطا من كلمة Selec
Adodc2.RecordSource = "Selec (Select Count(Col5) From Table1 Where Col5=
أهلا أخي الكريم , أعتقد لو ترفق مثال يتم التعديل عليه يكون أفضل .
استاذنا الغالي هذة المثال والكود داخل الحدث KeyPress
لاني استخدم الباركود
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
أهلا أخي الكريم , تم التعديل على المثال , بصراحة ليست عندي الخبره الكافيه في التعامل مع أداة الـ DataControl حاولت عدة محاولات إلى أن أعتقد أنها ضبطت لذلك أنصحك بإستخدام أداة الـ ADODC أفضل بكثير , ويوجد في المنتدى أمثله كثيره عنها .
مشكور استاذنا العزي وتعبتك معي تم بنجاح عملية التحقق بنجاح انا ليس لدي اي مشكلة في تغير الاداة واعرف ازاي اتعامل مع كل الادوات .......... باقي لي مشكلة الاستعلام عن عدد الالوان مش راضي يعترض على اسم الون Col5="أزرق"
كود :
Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Data2.RecordSource = "Select جهاز5,جهاز2,جهاز3,جهاز4 From Table1 Where جهاز2='" & Trim$(Text3.Text) & "' or جهاز3='" & Trim$(Text3.Text) & "' or جهاز4='" & Trim$(Text3.Text) & "' or جهاز5='" & Trim$(Text3.Text) & "'"
Data2.Refresh
If Data2.Recordset.RecordCount > 0 Then
MsgBox "الرقم المدخل موجود مكرر"
Data1.Recordset.CancelUpdate
Exit Sub
End If
Text4.SetFocus
End If
End Sub
أهلا أخي الكريم , ممكن صار الخطأ لأنه لايوجد كلمة "أزرق" في الجدول لأنك في قاعدة البيانات في الجدول مخون الألوان بالأسماء الإنجليزيه , شاهد التعديل .
والله مش عارف ارد الجميل كيف لكن اقولك تسلم من كل قلبي على تعبك معي الف الف شكر والخطا كان انو انو الكلمة بين " " مش ' ' تحياتي لك استاذ
أهلا أخي الكريم , حياك الله , شكرا لك.