![]() |
|
مشكلة في اختيار أسماء العناصر العربية في ComboBox في MS Access - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم أسئلة واستفسارات الأعضاء - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=94) +--- قسم : مايكرسوفت أكسيس Microsoft Access (http://vb4arb.com/vb/forumdisplay.php?fid=170) +--- الموضوع : مشكلة في اختيار أسماء العناصر العربية في ComboBox في MS Access (/showthread.php?tid=51210) |
مشكلة في اختيار أسماء العناصر العربية في ComboBox في MS Access - سيامند - 28-01-25 مرحباً جميعاً، لدي قاعدة بيانات تم إنشاؤها في MS Access ومتصلة بجداول في SQL Server. هناك قائمة منسدلة (ComboBox) أستخدمها لاختيار العناصر. تعمل القائمة بشكل جيد عند اختيار أسماء العناصر باللغة الإنجليزية، ولكن عند محاولة اختيار العناصر التي تكون أسماؤها باللغة العربية، تظهر لي الخطأ التالي: [يرجى إدراج رسالة الخطأ هنا] بعض الملاحظات الإضافية:
كود : Private Sub CboName_AfterUpdate()هل واجه أحدكم مشكلة مشابهة أو يعرف طريقة لحل هذه المشكلة؟ شكراً جزيلاً على المساعدة! RE: مشكلة في اختيار أسماء العناصر العربية في ComboBox في MS Access - سيامند - 29-01-25 شكرا جزيلا على الرد الان عندى مشكە اخرى RE: مشكلة في اختيار أسماء العناصر العربية في ComboBox في MS Access - سيامند - 30-01-25 شكرا جزيلا على الرد السطر البرمجى لل cmobox كالاتى و الاغريب في الموضوع هو عندما اختار مادة كتوبت باللغة الانجليزية ما في مشكلة بس اذا كان المادة المختار مكتوب بالاحرف العربية يطلع المشكلة كود : Private Sub Combo63_AfterUpdate()RE: مشكلة في اختيار أسماء العناصر العربية في ComboBox في MS Access - سيامند - 30-01-25 شكرا جزيلاى على الرد و لكن نفس المشكلە باقى هل تعتقد ان هناك مشكلە في جدوالى SQL ؟ RE: مشكلة في اختيار أسماء العناصر العربية في ComboBox في MS Access - Kamil - 31-01-25 المشكلة التي تواجهها عند اختيار أسماء المنتجات باللغة العربية في ComboBox ترجع على الأرجح إلى ترميز النصوص (Encoding) أو التعامل مع الأحرف العربية في الاستعلامات النصية داخل DLookup. أسباب محتملة للمشكلة: اختلاف الترميز (Collation) بين Access و SQL Server قد يكون هناك عدم تطابق في الترميز بين الحقل nvarchar في SQL Server وبيئة Access. استخدام علامات الاقتباس المفردة ' مع النص العربي عند تمرير اسم المنتج العربي في DLookup, قد لا تتم معالجته بشكل صحيح بسبب المسافات أو المحارف الخاصة. وجود مسافات غير مرئية في البيانات العربية بعض الحقول في SQL Server قد تحتوي على مسافات زائدة أو رموز غير مرئية في نهاية أو بداية النص. عدم تطابق نوع البيانات عند البحث في DLookup DLookup يستخدم مقارنة نصية مباشرة، مما قد يسبب أخطاء مع النصوص العربية. الحل المقترح: 1. استخدام Trim لإزالة المسافات غير المرئية قبل تمرير اسم المنتج إلى DLookup، قم بإزالة أي مسافات زائدة: PHP كود : Dim proName As String2. إضافة N قبل النص العربي عند استخدام nvarchar عند التعامل مع الحقول من نوع nvarchar في SQL Server، يجب وضع N قبل النص العربي حتى يتم تفسيره بشكل صحيح: PHP كود : Form_frm_froshtn_detail.ProName = DLookup("[ProName]", "tbl_Product", "[ProName]= N'" & proName & "'")3. التأكد من تطابق Collation بين Access و SQL Server افتح SQL Server Management Studio (SSMS) ونفذ الأمر التالي للتحقق من الترميز (Collation) الخاص بجدول tbl_Product: PHP كود : SELECT name, collation_name إذا كان الترميز مختلفًا (Latin1_General_CI_AS مثلاً)، فجرّب تغييره إلى Arabic_CI_AS: PHP كود : ALTER TABLE tbl_Product4. البحث باستخدام الباركود بدلاً من الاسم بما أن البحث بالباركود يعمل بشكل صحيح، يمكنك تعديل DLookup ليتم البحث باستخدام ProCode بدلاً من ProName: PHP كود : Dim proCode As String? الخلاصة 1. استخدم Trim() للتخلص من المسافات غير المرئية. 2. استخدم N عند تمرير القيم إلى DLookup للتعامل مع nvarchar. 3. تأكد من أن Collation في SQL Server يدعم اللغة العربية. 4. إذا استمر الخطأ، استخدم الباركود كمرجع بدلاً من الاسم. |