اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

لدى معادلة  قسمه داخل حقل في جدول ولدى مربع نص داخل نموذج 

عند الضغط علي الزر يعطي الناتج في المربع النصي

المشكله
لو  وضعت كود الزر نص المعادله مباشره يعطي ناتج رقم  

لو وضعت كود استدعاء نص المعادله من الجدول  لا يعطى في المربع النصي ناتج

 مع العلم ان حقل المعادله متغير وليس ثابت 

Cal error.accdbFetching info...

قام بنشر

الصح ان الاكواد تكون داخل المحرر

ويتم التحكم في الكود بناء على متغير 

وضح فكرتك وما تريد الوصول اليه .. ستجد الحل المناسب ان شاء الله

 

  • Like 1
قام بنشر
  في 3‏/10‏/2024 at 20:04, ابوخليل said:

الصح ان الاكواد تكون داخل المحرر

ويتم التحكم في الكود بناء على متغير 

وضح فكرتك وما تريد الوصول اليه .. ستجد الحل المناسب ان شاء الله

 

Expand  

محتاج المستخدم النهائى يتحكم فى انه يعمل اي معادله لاى اختبار كما يشى بدون الدخول منى فى محرر الاكواد 

مثال لدينا 3 اختبارات 
والمعادله المطلوبه هتكون الاختبار الاول / الاختبار الثاني = الاختبار الثالث 
طبعا النتائج ارقام 

 

قام بنشر

بدلا من كتب المعادلة في الجدول

اعمل في الجدول عمود بـــــ المعادلة1 / المعادلة2 / المعادلة3 .. الخ ..

وعمود بجانبه رقمي يمثل معرف

في محرر الفيجوال اعمل فنكشن :

اذا قيمة الحقل الفلاني في الجدول الفلاني = 1  نفذ هذا السطر

واذا القيمة = 2 نفذ السطر الآخر هذا

وهكذا ... لو تعمل 100 سطر

اتمنى شرحي واضح ومفهوم

 

  • Like 1
قام بنشر
  في 3‏/10‏/2024 at 22:28, ابوخليل said:

بدلا من كتب المعادلة في الجدول

اعمل في الجدول عمود بـــــ المعادلة1 / المعادلة2 / المعادلة3 .. الخ ..

وعمود بجانبه رقمي يمثل معرف

في محرر الفيجوال اعمل فنكشن :

اذا قيمة الحقل الفلاني في الجدول الفلاني = 1  نفذ هذا السطر

واذا القيمة = 2 نفذ السطر الآخر هذا

وهكذا ... لو تعمل 100 سطر

اتمنى شرحي واضح ومفهوم

 

Expand  

ما هى الاختبارات غير موحده او ثبته ممكن يحذف او يضيف اى اختبار 
هنتعامل كده ازاى 
استاذ
@ابوخليل

قام بنشر

السلام عليكم 

لايزال طلبك غير واضح بالنسبة لي !!

 

رجاء اعطينا مجموعة امثلة (مو اقل من 4-5) ، وخلينا نحلل طلبك .

قام بنشر

أخي الكريم مؤيداً لما تفضل به معلمينا ، و وجهة نظر أخرى ..

فإذا كانت القيمة المطلوبة هي نتيجة قسمة حقلين مختلفين استناداً إلى شروط معينة ، يمكننا تعديل كودك بحيث يستخدم دالة DLookup للحصول على القيمتين ثم يقسمهما مباشرةً ، ومن ثم يقوم بتقريب الناتج وحفظه في الحقل المطلوب.

 

جرب الكود التالي :-

Private Sub Command7_Click()
    Dim value1 As Variant
    Dim value2 As Variant
    Dim result As Variant
    value1 = DLookup("result", "Table1", "[code] = 33")
    value2 = DLookup("result", "Table1", "[code] = 36")
    If Not IsNull(value1) And Not IsNull(value2) And value2 <> 0 Then
        result = Round(value1 / value2, 3)
        Me.C = result
    Else
        MsgBox "قيم غير صحيحة"
    End If
End Sub

جرب وأخبرنا بالنتيجة ..

قام بنشر
  في 6‏/10‏/2024 at 21:01, Foksh said:

أخي الكريم مؤيداً لما تفضل به معلمينا ، و وجهة نظر أخرى ..

فإذا كانت القيمة المطلوبة هي نتيجة قسمة حقلين مختلفين استناداً إلى شروط معينة ، يمكننا تعديل كودك بحيث يستخدم دالة DLookup للحصول على القيمتين ثم يقسمهما مباشرةً ، ومن ثم يقوم بتقريب الناتج وحفظه في الحقل المطلوب.

 

جرب الكود التالي :-

Private Sub Command7_Click()
    Dim value1 As Variant
    Dim value2 As Variant
    Dim result As Variant
    value1 = DLookup("result", "Table1", "[code] = 33")
    value2 = DLookup("result", "Table1", "[code] = 36")
    If Not IsNull(value1) And Not IsNull(value2) And value2 <> 0 Then
        result = Round(value1 / value2, 3)
        Me.C = result
    Else
        MsgBox "قيم غير صحيحة"
    End If
End Sub

جرب وأخبرنا بالنتيجة ..

Expand  

اشكرك على وقتك 
جزاك الله خيرا 
من فضلك اطلع على الملف التالى
  

Cal error.accdbFetching info...

قام بنشر
  في 6‏/10‏/2024 at 20:13, UserUser2 said:

حضرتك اطلعت على المثال ؟

Expand  

نعم، وعليه كتبت ملاحظاتي.

 

والان حسب مرفقك الثاني ، هل هذا اللي تريده:

image.png.29dc8452a067d8738385ffe38f4d1b9c.png

بمعنى انك تريد ان يظهر لك في Table2 هذه النتائج ؟

  • Like 1
قام بنشر (معدل)
  في 7‏/10‏/2024 at 06:15, jjafferr said:

نعم، وعليه كتبت ملاحظاتي.

 

والان حسب مرفقك الثاني ، هل هذا اللي تريده:

image.png.29dc8452a067d8738385ffe38f4d1b9c.png

بمعنى انك تريد ان يظهر لك في Table2 هذه النتائج ؟

Expand  

اشكرك على تعبك استاذنا الفاضل 
المطلوب العكس 
المعادله هتتكتب فى جدول Table2 والنتيجه هتظهر فى جدول Table1 فى حقل ال result 
مثلا لو كتابنا فى المعادله ان الtest المسمى ب Creat النتيجه الخاصه به هتكون ناتج قسمه نتيجه ال urea المسجله فى حقل result / 5
وعند الضغط على cal  فى النموذج يظهر الناتج 
الارقام المكتوبه فى جدول Table1 افتراضيه 

تم تعديل بواسطه UserUser2
قام بنشر

طيب من واقع مرفع حضرتك الاخير يا استاذ @UserUser2 

ممكن نمشى خطوة خطوة

اولا لما نفتح النموذج حضرتك عاوز تكتب ايه فى مربع النص ؟

وطبعا بناء على ما سوف يتم كتابته فى مربع النص نبتدى نفكر فى الكود على زر الامر 

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

قام بنشر
  في 7‏/10‏/2024 at 12:53, ابو جودي said:

طيب من واقع مرفع حضرتك الاخير يا استاذ @UserUser2 

ممكن نمشى خطوة خطوة

اولا لما نفتح النموذج حضرتك عاوز تكتب ايه فى مربع النص ؟

وطبعا بناء على ما سوف يتم كتابته فى مربع النص نبتدى نفكر فى الكود على زر الامر 

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

Expand  

يظهر نتيجه المعادله

  • Confused 1
قام بنشر

هل هذه خطوات العمل:

1- يختار المستخدم احد قيم الحقل test في الجدول Table2 ، وليكن مثلا ASO ،

2- المستخدم يكتب المعادلة التالية في السجل اعلاه:

[Bili]/2

3- في حقل result في الجدول Table1 ، تريد ان تظهر نتيجة المعادلة اعلاه ؟

 

هذا كله سهل ،

السؤال هو ، في الخطوة 2 اعلاه ، من اين سيأتي البرنامج بقيمة [Bili] ؟

قام بنشر

انا اللي فاهم على صاحب الموضوع هو يريد تنفيذ (تشغيل) كود مكتوب في الجدول 

لهذا وجهته ان هذه الطريقة ستسبب له لاحقا مشاكل برمجية .. وايضا فيها محاذير أمنية . 

على كل حال انت صاحب الشان جرب هذا

  Dim x As String
  x = DLookup("cal", "test_tbl")
  Me.C = Round(Eval(x), 3)

 

Cal error2.rarFetching info...

  • Like 1
  • Thanks 1
قام بنشر

انا حاولت اكثر من ساعة احاول افهم هو عاوز ايه ومقدرتش افهم والله

على العمود طبعا انا اتفق تماما مع رأى استاذى الجليل و ومعلمى القدير و والدى الحبيب الاستاذ @ابوخليل :fff:

  في 7‏/10‏/2024 at 15:43, ابوخليل said:

هذه الطريقة ستسبب له لاحقا مشاكل برمجية .. وايضا فيها محاذير أمنية

Expand  

ولأنه لم نفهم الية العمل او فكرة صاحب المسألة 

هذه فكرتى 

وظيفة ثغنونه وبنت حلال تعمل كل ده

Function GetDLookupResult(code1 As Long, code2 As Long) As Double
    Dim result1 As Variant
    Dim result2 As Variant
    
    ' Retrieve the value from Table1 based on the passed values
    result1 = DLookup("result", "Table1", "[code] = " & code1)
    result2 = DLookup("result", "Table1", "[code] = " & code2)
    
    ' Check if the values are not null to avoid errors
    If IsNull(result1) Or IsNull(result2) Then
        GetDLookupResult = 0 ' Or return a blank value or an error message
        Exit Function
    End If
    
    ' Calculate the final result
    GetDLookupResult = result1 / result2
End Function

مرر القيم التى تريد اليها بالشكل التالى من خلال زر الامر 

    Dim finalResult As Double
    finalResult = GetDLookupResult(33, 36)
    Me.C = finalResult

 

قام بنشر

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

SELECT Table1.code, Table1.test, Table1.result, Table2.Cal, Nz([result], 0)/Nz([Cal], 1) AS FinalCalc
FROM Table1 INNER JOIN Table2 ON Table1.code = Table2.code;


وما اخدت بالى من موضوع التقريب لو اردنا استخدام التقريب تكون جملة الاستعلام بالشكل التالى 
 

SELECT 
    Table1.code, 
    Table1.test, 
    Table1.result, 
    Table2.Cal, 
    IIf(Nz([result], 0) <> 0 And Nz([Cal], 1) <> 0, Round(Nz([result], 0) / Nz([Cal], 1), 3), Nz([result], 0) / Nz([Cal], 1)) AS FinalCalc
FROM 
    Table1 
INNER JOIN 
    Table2 ON Table1.code = Table2.code;



وهذا هو المرفق انظر الى الاستعلام مباشرة وغير القيم فى الحقل Cal  تظهر لك النتيجة المرجوة مباشرة فى الحقل FinalCalc :wink2:

دا اذا كنت قدرت افهم انت عاوز ايه :biggrin2:

Cal error.accdbFetching info...

  • Like 1
قام بنشر
  في 7‏/10‏/2024 at 15:43, ابوخليل said:

انا اللي فاهم على صاحب الموضوع هو يريد تنفيذ (تشغيل) كود مكتوب في الجدول 

لهذا وجهته ان هذه الطريقة ستسبب له لاحقا مشاكل برمجية .. وايضا فيها محاذير أمنية . 

على كل حال انت صاحب الشان جرب هذا

  Dim x As String
  x = DLookup("cal", "test_tbl")
  Me.C = Round(Eval(x), 3)

 

Cal error2.rar 28.21 kB · 2 downloads

Expand  

جزاك الله خيرا 
استاذنا @ابوخليل
وشاكر لتعبك ومجهودك ووقتك 

  في 7‏/10‏/2024 at 15:40, jjafferr said:

هل هذه خطوات العمل:

1- يختار المستخدم احد قيم الحقل test في الجدول Table2 ، وليكن مثلا ASO ،

2- المستخدم يكتب المعادلة التالية في السجل اعلاه:

[Bili]/2

3- في حقل result في الجدول Table1 ، تريد ان تظهر نتيجة المعادلة اعلاه ؟

 

هذا كله سهل ،

السؤال هو ، في الخطوة 2 اعلاه ، من اين سيأتي البرنامج بقيمة [Bili] ؟

Expand  

من جدول Table1  هتكون مدخله مسبقا
جزاك الله خيرا استاذنا @jjafferr

فى انتظار حضرتك 

قام بنشر
  في 7‏/10‏/2024 at 16:50, UserUser2 said:

من جدول Table1  هتكون مدخله مسبقا

 

جزاك الله خيرا 
استاذ محمد @ابو جودي
وشاكر لتعبك ومجهودك ووقتك

Expand  

 

هل هذه خطوات العمل:

1- يختار المستخدم احد قيم الحقل test في الجدول Table2 ، وليكن مثلا ASO ،

2- المستخدم يكتب المعادلة التالية في السجل اعلاه:

[Bili]/2

3- البرنامج يأخذ قيمة السجل [Bili] من الحقل [result] في الجدول Table1 ، ويضعها في المعادلة اعلاه ،

4- ونتيجة المعادلة يضعها في سجل [ASO] من الحقل [result] في الجدول Table1 ، يعني قيمة [result] لهذا السجل راح تتغير قيمتها حسب نتيجة المعادلة اعلاه ؟

 

هل هذا صحيح ؟

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information