الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود للمقارنة بين حقلين في جدولين

بدأه ابو سلاف في 3 يونيو 2014 · 4 رد · 1,205 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

Dim strsql As StringDim strsql1 As Stringstrsql = "SELECT dbo_EmInfoLOCAL.Nationality " & vbCrLf & _"FROM dbo_EmInfoLOCAL " & vbCrLf & _"WHERE (((dbo_EmInfoLOCAL.Nationality)=[Forms]![Employee&Information_local_New]![Employee number]));"strsql1 = strsql = "SELECT dbo_EmInfoVPS.Nationality " & vbCrLf & _"FROM dbo_EmInfoVPS " & vbCrLf & _"WHERE (((dbo_EmInfoVPS.Nationality)=[Forms]![Employee&Information_local_New]![Employee number]));"If strsql <> strsql1 ThenMe.Nationality.BackColor = vbBlackMe.Nationality.ForeColor = vbWhiteElseMsgBox "ÊÚÇÑÖ Ýí ÌäÓíÉ ÇáãæÙÝ /  " & Form.Controls("arabicName") & "", vbExclamation, "MOHB SYSTEM"Me.Nationality.BackColor = vbWhiteMe.Nationality.ForeColor = vbBlackEnd If

لدي جدولين في قاعدة البيانات تحتوي على عدة حقول متطابقة

الأول مرتبط مع قاعدة بيانات sql server محلية والآخر على استضافة ويندوز

استخدم اسلوب ترحيل البيانات بين السيرفر المحلي والخارجي وأيضاً عملية التحديث

ولكن واجهة صعوبة في أمر وهو مطابقة البيانات في حقل معين لسجل معين بين الجدولين ليتم ابلاغ المستخدم بوجود اختلاف بين قيمة الحقل المحلي وبين الخارجي لنفس السجل .

ارجو ممن لديه حل في تعديل الكود أعلاه أو إيجاد طريقة أخرى لعمل المقارنة .

بارك الله فيكم وبلغنا وإياكم رمضان

وكل عام وأنتم بخير

#2

وعليكم السلام ورحمة الله وبركاته

 

طبقا لما فهمته من الكود أنك تريد مقارنة قيمة حقلين لسجل ما

موجود في جدولين مختلفين

وتظهر كل قيمة في الفورم

 

هناك طريقة Function  Dlookup

وطريقة Quary RecordSet

وطريقة Sub Quary

وطرق آخرى

 

وكانت المشكلة في الكود الذي وضعته سيادتك أنك تقارن بين نص الاستعلامين وليس بين نتيجتهما

Option Compare DatabasePrivate Sub Command0_Click()Dim a, ba = DLookup("Nationality", "dbo_EmInfoLOCAL", "[Employee_number] = " & Forms![Employee&Information_local_New]![Employee_number] & "  ")b = DLookup("Nationality", "dbo_EmInfoVPS", "[Employee_number] = " & Forms![Employee&Information_local_New]![Employee_number] & "  ")If Nz(a, 0) <> Nz(b, 0) ThenMe.Nationality.BackColor = vbRedMe.Nationality.ForeColor = vbWhiteMsgBox (Form.Controls("arabicName") & "  /  اختلاف البيانات مع  ") & "", vbExclamation, "MOHB SYSTEM"ElseMsgBox (Form.Controls("arabicName") & "  /  تطابق البيانات مع ") & "", vbExclamation, "MOHB SYSTEM"Me.Nationality.BackColor = vbGreenMe.Nationality.ForeColor = vbBlackEnd IfEnd SubPrivate Sub Command6_Click()Dim strsql As StringDim strsql1 As StringDim rs As Recordsetstrsql = "SELECT dbo_EmInfoLOCAL.Nationality " & vbCrLf & _"FROM dbo_EmInfoLOCAL " & vbCrLf & _"WHERE ([Employee_number] = " & Forms![Employee&Information_local_New]![Employee_number] & ");"strsql1 = "SELECT dbo_EmInfoVPS.Nationality " & vbCrLf & _"FROM dbo_EmInfoVPS " & vbCrLf & _"WHERE ([Employee_number] = " & Forms![Employee&Information_local_New]![Employee_number] & ");"Set rs1 = CurrentDb.OpenRecordset(strsql)Set rs2 = CurrentDb.OpenRecordset(strsql1)If Nz(rs1.Nationality, 0) <> Nz(rs2.Nationality, 0) ThenMe.Nationality.BackColor = vbRedMe.Nationality.ForeColor = vbWhiteMsgBox (Form.Controls("arabicName") & "  /  اختلاف البيانات مع ") & "", vbExclamation, "MOHB SYSTEM"ElseMsgBox (Form.Controls("arabicName") & "  /  تطابق البيانات مع  ") & "", vbExclamation, "MOHB SYSTEM"Me.Nationality.BackColor = vbGreenMe.Nationality.ForeColor = vbBlackEnd IfEnd Sub

Dlookup & Query Compare.rar

تم تعديل هذه المشاركة بواسطة أمير2008 في 3 يونيو 2014 في 18:47

1
#3

بارك الله فيك

أشكرك جزيل الشكر

سؤال أخير ماذا لو كان هناك عدة حقول للمقارنة مثلا age و jobno  ؟ وهل هناك فرق بين الحقول الرقمية والنصية أما أنه يكتفي بتطابق الحقول المقارنة سواء نصية أو رقمية ؟

#4

جزاك الله خير

قمت بتطبيقة على عدة حقول ويعمل بشكل ممتاز لأنني أريد توضيح التطابق لكل حقل مع إظهار رسالة بذلك وهذا ماتفضلت به

أسعدتني جداً بهذا الحل الرائع

بارك الله فيك

 

 

تمت الإجابة

1
#5

وجزاكم أستاذي أبو سلاف كل الخير

وبالعكس فهناك جزئيات برمجية في كود سيادتك قد تعلمت منها

وأسعدني أنك من الذين يردون على محاولاتي للحل مما يزيد من تعلمي

وأتمنى أن يسير على دربك آخرون +1

1

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…