اذهب الي المحتوي
أوفيسنا

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

قام بنشر

        السلام عليكم 

أريد شرح هذا الكود .. 

             If IsNumeric(rst("F" & fld_Number + 16).Value) Then
                         sID = rst("F" & fld_Number + 16).Name
                         sName = rst("F" & fld_Number + 12).Name
                                        
                ElseIf IsNumeric(rst("F" & fld_Number + 20).Value) Then
                         sID = rst("F" & fld_Number + 20).Name
                         sName = rst("F" & fld_Number + 18).Name
                 
               ElseIf IsNumeric(rst("F" & fld_Number + 19).Value) Then
                         sID = rst("F" & fld_Number + 19).Name
                         sName = rst("F" & fld_Number + 17).Name
                    
               ElseIf IsNumeric(rst("F" & fld_Number + 17).Value) Then
                         sID = rst("F" & fld_Number + 17).Name
                         sName = rst("F" & fld_Number + 15).Name
                         
              ElseIf IsNumeric(rst("F" & fld_Number + 15).Value) Then
                         sID = rst("F" & fld_Number + 15).Name
                         sName = rst("F" & fld_Number + 10).Name
                   End If
        
                GoTo Got_the_info
           End If
        Next
        
        rst.MoveNext
    Next i

 

قام بنشر

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

    هذا الكود يعمل علي جلب قيمة بعض الحقول واسماءها  داخل الجدول عن طريق الدوران خلال كل الحقول بالجدول بشرط أن يكون حقل معين رقم وليس نص. هذا علي حسب فهمي.

 الكود الموجود بمشاركة حضرتك الاولي لم يظهر به بداية الكود والذي يجب أن يكون يحتوي علي:

1- تعريف لـــ Rst : وهو متغير سيتم تحديد نوعه الي Recordset - ليستعمل في تخزين بيانات الجدول وطريقة التعامل مع هذه البيانات.

مثل: 

Dim rst As Recordset
Set rst = Currentdb.OpenRecordset("TabelName",dbOpendynaset)

2- شرط الدوران داخل جقول الجدول ، مثل: 

For n=1 to rst.RecordCount -1

أو 
For Each field in rst.fields 

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

If IsNumeric(rst("F" & fld_Number + 16).Value) Then
علي افتراض ان حقول الجدول لديك تسمي بهذا الشكل 
F1 , F2 , F100 ....
fld_Number عبارة عن نص يحوي رقم
فعليه يكون الشرط يعني 
لو الحقل المسمي f(1+16) قيمته رقم 
افعل 

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

تمنياتي بالتوفيق

 

  • Like 1
قام بنشر (معدل)

جزاك الله خيرا 

الكود طويل جدا .. 

وسأضعه ان شاء الله حتى تكتمل الفائده .. 

 

4 ساعات مضت, أبو عبدالله الحلوانى said:

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

    هذا الكود يعمل علي جلب قيمة بعض الحقول واسماءها  داخل الجدول عن طريق الدوران خلال كل الحقول بالجدول بشرط أن يكون حقل معين رقم وليس نص. هذا علي حسب فهمي.

 الكود الموجود بمشاركة حضرتك الاولي لم يظهر به بداية الكود والذي يجب أن يكون يحتوي علي:

1- تعريف لـــ Rst : وهو متغير سيتم تحديد نوعه الي Recordset - ليستعمل في تخزين بيانات الجدول وطريقة التعامل مع هذه البيانات.

مثل: 



Dim rst As Recordset
Set rst = Currentdb.OpenRecordset("TabelName",dbOpendynaset)

2- شرط الدوران داخل جقول الجدول ، مثل: 



For n=1 to rst.RecordCount -1

أو 
For Each field in rst.fields 

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



If IsNumeric(rst("F" & fld_Number + 16).Value) Then
علي افتراض ان حقول الجدول لديك تسمي بهذا الشكل 
F1 , F2 , F100 ....
fld_Number عبارة عن نص يحوي رقم
فعليه يكون الشرط يعني 
لو الحقل المسمي f(1+16) قيمته رقم 
افعل 

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

تمنياتي بالتوفيق

 

جزاك الله خيرا 

الكود طويل جدا .. وهو في المرفق في هذه المشاركة 

 

لعلك تطلع عليه .. 

تم تعديل بواسطه فايز..
  • أفضل إجابة
قام بنشر

اكمال الشرح مع استاذ ابو عبدالله

كما تفضل الاستاذ عندك في القاعدة جدول باسم Temp3 وبها عدد من الحقول و اسماءها F1 , F2 ,F3,F4,F5,F6,F7,F8,F9 >>> الى اخره

في ١٥‏/١٠‏/٢٠٢٠ at 18:24, فايز.. said:

If IsNumeric(rst("F" & fld_Number + 16).Value) Then

هنا يقول الكود اذا حقل اللي اسمه F مع قيمة fld_Number وهو 3 زائد 16 اي يعني اللي اسمه F19 بيكون رقم يعمل الاتي

في ١٥‏/١٠‏/٢٠٢٠ at 18:24, فايز.. said:

sID = rst("F" & fld_Number + 16).Name

sID = حرف F مع 3 زائد 16 اي يعني F19

في ١٥‏/١٠‏/٢٠٢٠ at 18:24, فايز.. said:

sName = rst("F" & fld_Number + 12).Name

sName = حرف F مع 3 زائد 12 اي يعني F15

وهكذا

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

تقبل تحياتي 

قام بنشر
1 ساعه مضت, Shivan Rekany said:

اكمال الشرح مع استاذ ابو عبدالله

كما تفضل الاستاذ عندك في القاعدة جدول باسم Temp3 وبها عدد من الحقول و اسماءها F1 , F2 ,F3,F4,F5,F6,F7,F8,F9 >>> الى اخره

هنا يقول الكود اذا حقل اللي اسمه F مع قيمة fld_Number وهو 3 زائد 16 اي يعني اللي اسمه F19 بيكون رقم يعمل الاتي

sID = حرف F مع 3 زائد 16 اي يعني F19

sName = حرف F مع 3 زائد 12 اي يعني F15

وهكذا

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

تقبل تحياتي 

فتح الله عليك 

الان تو راسي يرتاح .. 

شرح وافي وميسر .. 

شكر الله لك .. 

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