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

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

بدأه m_ageeb في 19 يوليو 2011 · 7 رد · 1,108 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي قاعدة بيانات بها كل من جدول باسم lang

وبه حقول باسم

اسم الشاشة frm_name

واسم الاداة obj_name

وعنوانها caption1

مثال : مخزن داخل الجدول اعلاه ما يلي

frm_name | obj_name | Caption

form1 | lable1 | Serial_no

form2 | lable3 | Customer_Name

مع العلم ان كل انواع الحقول نصية

السؤال اريد عمل إجراءات تقوم بالتعامل مع الشاشات وتغير عناوينها (ترجمة) كما هو المثال للتقريب

Public Sub lang(frm As Form , obj_name as lab)

Set mylang = Nothing
Set mylang = New ADODB.Recordset
SQLy = "SELECT * from langx"
mylang.Open SQLy, cnn, adOpenDynamic, adLockBatchOptimistic
If mylang.RecordCount >= 1 Then
Dim mylbl As Label




Do While Not mylang.EOF
If IsNull(mylang!obj_name) = False Then
Set mylbl = mylang!obj_name

' السطر المطلوب
frm.mylbl.Caption =mylang!caption1

End If
mylang.MoveNext
Loop

ارجو تصحيح الكود حتى يعمل بالطريقة الصحيحة

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

------------------------------------------------------------

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#2

الملف المرفق يوضح تماماً ما اريده بالضبط

lang_proj.rar

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

------------------------------------------------------------

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#3

اقترح عليك الكود التالي :

هذا الكود ضعه في اي فورم تريد ترجمته

Private Sub Form_Load()

    Dim ctl As Control

    For Each ctl In Me.Controls

        If TypeOf ctl Is Label Then

            lang Me, ctl

        End If

    Next

End Sub

وهذا ضعه في module1

Public Function lang(frm As Form, obj_name As Label)

    Dim mylang As ADODB.Recordset
    Set mylang = New ADODB.Recordset
    Dim SQLy As String
    SQLy = "select Caption from langx where frm_name ='" & frm.Name & "' and  obj_name ='" & obj_name.Name & "'"
    mylang.Open SQLy, cnn, adOpenDynamic, adLockBatchOptimistic

    If mylang.RecordCount >= 1 Then

            obj_name.Caption = mylang!Caption

        End If



End Function
#4
TareqVB كتب:

اقترح عليك الكود التالي :

هذا الكود ضعه في اي فورم تريد ترجمته

Private Sub Form_Load()

    Dim ctl As Control

    For Each ctl In Me.Controls

        If TypeOf ctl Is Label Then

            lang Me, ctl

        End If

    Next

End Sub

وهذا ضعه في module1

Public Function lang(frm As Form, obj_name As Label)

    Dim mylang As ADODB.Recordset
    Set mylang = New ADODB.Recordset
    Dim SQLy As String
    SQLy = "select Caption from langx where frm_name ='" & frm.Name & "' and  obj_name ='" & obj_name.Name & "'"
    mylang.Open SQLy, cnn, adOpenDynamic, adLockBatchOptimistic

    If mylang.RecordCount >= 1 Then

            obj_name.Caption = mylang!Caption

        End If



End Function

رسالة ظهرت اثناء التشغيل

run-time error '-2147217904 (80040e10)' :

No Value given for one or more required Parameters

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

------------------------------------------------------------

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#5
m_ageeb كتب:

رسالة ظهرت اثناء التشغيل

run-time error '-2147217904 (80040e10)' :

No Value given for one or more required Parameters

الحمد لله ، اشتغل

لكن واجهتني مشكلة ان كل label يحتوى على index لا يظهر ويمكنك مراجعته في الملف المرفق حين فتح الشاشة (frm_lblx) و (form2)

إضافة :

هل يمكن الإكتفاء بالدالة ادناه وفي الـForm_load

 lang Me

ووضع باقي الأوامر في الدالة lang

    For Each ctl In Me.Controls

        If TypeOf ctl Is Label Then

            lang Me, ctl

        End If

    Next

lang_proj.rar

تم تعديل هذه المشاركة بواسطة m_ageeb في 20 يوليو 2011 في 15:39

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

------------------------------------------------------------

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#6

السلام عليكم

الادوات التي لها index بحاجة الى معالجة اخرى حتى في قاعدة البيانات عندك لذا من الافضل ازالة ال Index (لايوجد طريقة مباشرة لمعرفة ان الاداة تتبع ل array الا بفحص index وبالتالي سينتج عنه خطأ في الادوات التي لا تتبع ل array ).

ووضع باقي الأوامر في الدالة lang

وهو الافضل لكن بدل me استخدم frm .

#7
TareqVB كتب:

السلام عليكم

الادوات التي لها index بحاجة الى معالجة اخرى حتى في قاعدة البيانات عندك لذا من الافضل ازالة ال Index (لايوجد طريقة مباشرة لمعرفة ان الاداة تتبع ل array الا بفحص index وبالتالي سينتج عنه خطأ في الادوات التي لا تتبع ل array ).

ووضع باقي الأوامر في الدالة lang

وهو الافضل لكن بدل me استخدم frm .

الملف المرفق به الحل بالنسبة للـ(INDEX)

ولكن مع كثرة العناوين يزيد زمن التأخير في البرنامج ولو كانت شيء لا تذكر إلا انها تصبح من عيوب البرنامج

السؤال :

بعد حذف جزء من محتوى الجدول أو عمل استعلام ومن ثم يقوم بترجمة الجزء المحدد في الاستعلام دون غيره لان هنالك بعض الشاشات تكون بنفس مسماها مثل

شاشات الحسابات تكون بنفس المسمى

لكن شاشة المخزن والمبيعات تختلف

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

او برنامج خاص بالمطاعم او الكفتريات

او برنامج خاص بالمستشفيات او المستوصفات

فكل واحد من هؤلاء يتغير محتوى شاشاته بحسب الجهة المشترية كما تقدم ذكره

وفي الشاشة الواحدة قد يكون هنالك مسميات لا تتغير مثل (الكمية) او (العدد) فلا تتغير ام (اسم العميل) او (اسم المريض) أو (اسم المشتري) فيتغير بحسب الجهة المشترية

ارجو ان يكون ما قصدته واضح ليس به لبس

وفي انتظار الرد مع الشكر

lang_proj.rar

تعلم فليس المرء يولد عالما ولا اخو علم كمن هو جاهلو

------------------------------------------------------------

~¤ô_ô¤~ AGEEB SOFT~¤ô_ô¤~

ageeb2000@hotmail.com

#8

السلام عليكم

حتى يعمل الكود بشكل صحيح غير مايلي :

If Not IsNumeric(obj_name.Index) Then
obj_nameX = obj_name.Name
Else
obj_nameX = obj_nameX & "(" & obj_name.Index & ")"
End If

وانصحك بترجمة جميع المحتويات ولاتستثني اي شيء حتى وان لم تختلف في الوقت الحالي عند الزبائن .

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

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

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

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

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

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