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

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

قام بنشر

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

اساتذتى الكرام تحية طيبة عطرة وبعد

هل هناك فارق فى اسلوب ادراج بيانات من نموذج غير منضم الى الجدول فى الطرق الاتية

الطريقة الاول من خلال RunSQL وبناء الاستعلام بالكود طبعا 

الطريقة الثانية من خلال  DAO.Recordset

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

 

قام بنشر
  في 18‏/12‏/2020 at 15:28, Mօհმოოεძ Eʂʂმო said:

هل هناك فارق فى اسلوب ادراج بيانات من نموذج غير منضم الى الجدول فى الطرق الاتية

الطريقة الاول من خلال RunSQL وبناء الاستعلام بالكود طبعا 

الطريقة الثانية من خلال  DAO.Recordset

Expand  

 

وعليكم السلام 🙂
 

مافي فرق بين نموذج منضم ومرتبط بإستعلام/جدول ، وبين نموذج غير منضم ،

الاسرع يكون عند استخدام الطريقة الثالثة من خلال استخدام استعلام اكسس عادي 🙂

 

فالطريقة الاولى ، الاكسس يحتاج الى ان يعمل Compile لجملة الـ SQL التي ستضعها في الامر ، ثم ينفذ الامر ،

والطريقة الثانية تحتاج الى ان تجلب الجدول الى ذاكرة الكمبيوتر العشوائية ، ثم تقوم بالمطلوب 🙂

 

جعفر

  • Like 2
  • 6 months later...
قام بنشر (معدل)

يا مرحبا بمعلمي أبو جودي 

 الطريقة الأولى فيها شبه من الدوت نت 

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

عن طريق الكود 

بالنسبة للاسرع كلا  الطرق تؤدي إلى روما 

وأنا مع معلمي واستاذي جعفر 

لا نبحث عن التعقيد الطريق الموصول إلى الهدف بيسر وسهولة ويؤدي الغرض على اكمل وجه نسلكه 

والله اعلم وأجل 

 

 

 


 

 

تم تعديل بواسطه مسفر
  • Thanks 1
قام بنشر

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

قام بنشر
  في 18‏/7‏/2021 at 22:09, Eng.Qassim said:

انا لا افهم

Expand  

اشوفك تتسرّع في تعليقاتك !!

ولو تغيّر التعليق الى سؤال ، فبتحصل على اجابات افضل 🙂

 

الهدف الاكبر من هذا الموضوع هو ، حماية البيانات :

1. اذا البيانات على السيرفر ، والاكسس متصل بجداوله في السيرفر ، فالرابط يكون مستمر بين الواجهة والجداول ، والشاطر يقدر يستعمل احد برامج "الشم" Sniffing والتوصل الى ما يشاء ،

2. بينما اتصالك بالكود للسيرفر وجلب البيانات ، ثم انقطاع الاتصال بالسيرفر ، يجعل الموضوع ذو امان اكثر 🙂

وللعلم ، فهناك العديد من الجهات التي تهتم بأمن البيانات ، تصر على ان تكون جميع كائناتها غير منضمه 🙂

 

جعفر

  • Like 1
  • Thanks 1
قام بنشر
  في 19‏/7‏/2021 at 12:26, jjafferr said:

اشوفك تتسرّع في تعليقاتك !!

ولو تغيّر التعليق الى سؤال ، فبتحصل على اجابات افضل 🙂

 

الهدف الاكبر من هذا الموضوع هو ، حماية البيانات :

1. اذا البيانات على السيرفر ، والاكسس متصل بجداوله في السيرفر ، فالرابط يكون مستمر بين الواجهة والجداول ، والشاطر يقدر يستعمل احد برامج "الشم" Sniffing والتوصل الى ما يشاء ،

2. بينما اتصالك بالكود للسيرفر وجلب البيانات ، ثم انقطاع الاتصال بالسيرفر ، يجعل الموضوع ذو امان اكثر 🙂

وللعلم ، فهناك العديد من الجهات التي تهتم بأمن البيانات ، تصر على ان تكون جميع كائناتها غير منضمه 🙂

 

جعفر

Expand  

احسنت استاذ @jjafferrعلى هذه المعلومة التي اضافت لي معلومة جديدة

وبالمناسبة كان تعليقي عبارة عن سؤال عن البرامج العادية لكنك اتحفتنا بمعلومة في حال الاتصال بالسيرفر 

ربي يفتحها عليك من فضله

قام بنشر
  في 19‏/7‏/2021 at 13:23, Eng.Qassim said:

وبالمناسبة كان تعليقي عبارة عن سؤال

Expand  

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

و من ذلك قوله تعالى " ما لهذا الرسول يأكل الطعام ويمشي في الأسواق " وقوله تعالى " كَيْفَ تَكْفُرُونَ بِاللَّهِ وَكُنتُمْ أَمْوَاتاً فَأَحْيَاكُمْ "

وفي هذا النوع من الاستفهام لا يتطلب وضع العلامة " ؟ "

  • Like 2
قام بنشر

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

فالتعجب من الشيء هو استغراب الكيفية التي حدث منها  

كقول الله سبحانه وتعالى : ( كيف تكفرون بالإله )

هنا تعجب رغم معرفتهم بوجوده إلا انهم كفروا به كيف ذلك بفعلهم وقولهم فهنا استغراب تعجب لفعل قد حدث .

ولو فعل مثلا جعفر فعلا لا نستطيع أن ناتي به وهذا يحدث كثيرا معي عندما أشاهد إجابات المعلم الجليل جعفر 

وأقول في نفسي كيف فعل ذلك ؟ !

الفعل قد حدث وأنا متعجب من كيفية حدوثه 

فهذا من باب الاستفهام التعجبي 

وتضاف علامة الاستفهام في آخر السؤال ( ؟! ) 

سؤال الأخ أقرب إليه أن يكون استفهام إنكاري ولن أتحدث عن معانيه 

ولكن سؤاله من حرصه جزاه الله خيرا وعدم الدخول في معضلات 

خرجنا من الموضوع لمناقشة غيره 😏

 

 

  • Like 2
قام بنشر
  في 19‏/7‏/2021 at 17:16, مسفر said:

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

فالتعجب من الشيء هو استغراب الكيفية التي حدث منها 

Expand  

كما تريد

والسؤال للمهندس قاسم هل كان ردك تعجب واستفسار من استخدام الكود مع ان اكسس يعملها ام الرد انكار على من يستخدم هذه الطريقة

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

  • Like 1
قام بنشر
  في 18‏/12‏/2020 at 15:28, ابا جودى said:

هل هناك فارق فى اسلوب ادراج بيانات من نموذج غير منضم الى الجدول فى الطرق

Expand  

نعم هناك فرق من ناحية اسلوب الإدخال و التعامل

دعنا نتحدث بالأمثلة طلما ان تريد معرفة الإسلوب

 

في البداية كلغة استعلام SQL فلن يتغيير بها شي هي نفسها سواء استخدمت الطرق التي ذكرتها

  في 18‏/12‏/2020 at 15:28, ابا جودى said:

الطريقة الاول من خلال RunSQL وبناء الاستعلام بالكود طبعا 

الطريقة الثانية من خلال  DAO.Recordset

Expand  

ففي الخيار الأول 

  في 18‏/12‏/2020 at 15:28, ابا جودى said:

الطريقة الاول من خلال RunSQL وبناء الاستعلام بالكود طبعا

Expand  

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

DoCmd.RunSQL "INSERT INTO table_name " & _
"(column1, column2,...)" & _
"VALUES (value1, value2,....)"

هذا الإسلوب في الإدخال مجهد نوعا ما لأن مضطر لجعل القيم بجانب بعضها و عند الرغبة في التعديل سوف تجد نفسك مضطر لقرآة العبارة كاملة او ان تكون نظرة اكثرة دقة 

هذه مثلها مثل هذه العبارة 

Dim db As Database
Dim sSQL As String
Set db = CurrentDb
sSQL = "INSERT INTO table_name " & _
"(column1, column2,...)" & _
"VALUES (value1, value2,....)"
db.Execute sSQL

الفرق بأن الأولى ستجد نفسك بحاجة الى تعطيل رسائل النظام المزعجة 

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

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

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

جلب البيانات
	Dim db As DAO.Database
    Dim rs As DAO.Recordset
    ' جلب سطر او سطور حسب المطلوب افضل و اسرع
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM table_name WHERE column_name = some_value")
    
    If Not rs.BOF Then
        rs.MoveFirst                
        While (Not rs.EOF)
         [TextBox1] = rs.Fields(0)
         [TextBox2] = rs.Fields(1)
            rs.MoveNext
        Wend
    End If
    rs.Close
    Set rs = Nothing

========================================================================

اضافة البيانات
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    Set rs = CurrentDb.OpenRecordset("table_name")
        rs.AddNew
        rs.Fields(0) = [TextBox1]
        rs.Fields(1) = [TextBox2]
        rs.Fields(2) = [TextBox3]
        rs.Update
    
    rs.Close
    Set rs = Nothing

========================================================================

تعديل البيانات
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM table_name WHERE column_name = some_value")
        rs.Edit
        rs.Fields(0) = [TextBox1]
        rs.Fields(1) = [TextBox2]
        rs.Fields(2) = [TextBox3]
        rs.Update
    
    rs.Close
    Set rs = Nothing

 

  في 18‏/12‏/2020 at 15:28, ابا جودى said:

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

 

Expand  

بالنسبة لهذه النقطة فالخيار الثاني هو الافضل لك بلا منازع

و دائما تجب الاتصال المستمر بقاعدة البيانت اتصال يكون عند الحاجة فقط ( اضافة \ حذف \ تحديث \ استدعاء سطور محددة حسب الحاجة )

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

هممم

اخي حسين ،

حسب قراءتي ، فالاسرع سيكون الاختيار الاول ، وذلك بسبب ان الاكسس يكون قد عمل Compile لجملة الـ SQL ، فالمرة الاولى في استعمال كود استعلام التحديث ، ستكون بطيئة (قبل الـ Compile) ، بينما جميع المرات التالية ستكون اسرع 🙂

 

وعلى كل حال ، فنريد متطوع يقوم بتجربة الطريقتين ، ونأخذ توقيت عمل كل طريقة ، مثلا 10 مرات ، ثم نأخذ المعدل 🙂

 

جعفر

قام بنشر
  في 19‏/7‏/2021 at 20:39, jjafferr said:

حسب قراءتي ، فالاسرع سيكون الاختيار الاول

Expand  

كيف راح يتصل بقاعدة البيانات اذا اختار الأول  docmd.RunSQL ؟ 

 

لكن في الثاني راح يستخدم 

ActiveXObject("ADODB.Connection")

 

  في 18‏/12‏/2020 at 15:28, ابا جودى said:

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

 

Expand  

 

قام بنشر
  في 19‏/7‏/2021 at 20:45, د.كاف يار said:

كيف راح يتصل بقاعدة البيانات اذا اختار الأول  docmd.RunSQL ؟

Expand  

اصل السؤال ، والاستفسار عن الامر RunSQL فيه ، لا يعطينا انطباع على انه لا يوجد جداول مربوطة ،

وعليه كان جوابي 🙂

 

جعفر

  • Like 1
قام بنشر
  في 19‏/7‏/2021 at 20:09, د.كاف يار said:

نعم هناك فرق من ناحية اسلوب الإدخال و التعامل

دعنا نتحدث بالأمثلة طلما ان تريد معرفة الإسلوب

 

في البداية كلغة استعلام SQL فلن يتغيير بها شي هي نفسها سواء استخدمت الطرق التي ذكرتها

ففي الخيار الأول 

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

DoCmd.RunSQL "INSERT INTO table_name " & _
"(column1, column2,...)" & _
"VALUES (value1, value2,....)"

هذا الإسلوب في الإدخال مجهد نوعا ما لأن مضطر لجعل القيم بجانب بعضها و عند الرغبة في التعديل سوف تجد نفسك مضطر لقرآة العبارة كاملة او ان تكون نظرة اكثرة دقة 

هذه مثلها مثل هذه العبارة 

Dim db As Database
Dim sSQL As String
Set db = CurrentDb
sSQL = "INSERT INTO table_name " & _
"(column1, column2,...)" & _
"VALUES (value1, value2,....)"
db.Execute sSQL

الفرق بأن الأولى ستجد نفسك بحاجة الى تعطيل رسائل النظام المزعجة 

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

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

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

جلب البيانات
	Dim db As DAO.Database
    Dim rs As DAO.Recordset
    ' جلب سطر او سطور حسب المطلوب افضل و اسرع
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM table_name WHERE column_name = some_value")
    
    If Not rs.BOF Then
        rs.MoveFirst                
        While (Not rs.EOF)
         [TextBox1] = rs.Fields(0)
         [TextBox2] = rs.Fields(1)
            rs.MoveNext
        Wend
    End If
    rs.Close
    Set rs = Nothing

========================================================================

اضافة البيانات
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    Set rs = CurrentDb.OpenRecordset("table_name")
        rs.AddNew
        rs.Fields(0) = [TextBox1]
        rs.Fields(1) = [TextBox2]
        rs.Fields(2) = [TextBox3]
        rs.Update
    
    rs.Close
    Set rs = Nothing

========================================================================

تعديل البيانات
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM table_name WHERE column_name = some_value")
        rs.Edit
        rs.Fields(0) = [TextBox1]
        rs.Fields(1) = [TextBox2]
        rs.Fields(2) = [TextBox3]
        rs.Update
    
    rs.Close
    Set rs = Nothing

 

بالنسبة لهذه النقطة فالخيار الثاني هو الافضل لك بلا منازع

و دائما تجب الاتصال المستمر بقاعدة البيانت اتصال يكون عند الحاجة فقط ( اضافة \ حذف \ تحديث \ استدعاء سطور محددة حسب الحاجة )

Expand  

الله يعطيك العافيه 

لما بتضع الاكواد كده ويجلس من مثلى من المبتدئين ويقراء الكود 

اجده سهل 

لانى باعرف ليه غيرت النقطه دي للنقطه أخرى عشان اعمل حاجه زي التعديل او ارسال المعلومات الى الجداول

 

لك كل تحياتي

قام بنشر

يامرحبا باخي واستاذي الفاضل @مسفر

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

الاستفهام له انواع متعددة اشهرها سبعة انواع

وهناك من يرى انها اكثر من ذلك فعدها عشرا وبعضهم اكثر

ندخل في لب الموضوع

  في 19‏/7‏/2021 at 17:16, مسفر said:

فالتعجب من الشيء هو استغراب الكيفية التي حدث منها  

كقول الله سبحانه وتعالى : ( كيف تكفرون بالإله )

هنا تعجب رغم معرفتهم بوجوده إلا انهم كفروا به كيف ذلك بفعلهم وقولهم فهنا استغراب تعجب لفعل قد حدث

Expand  

وايضا يقاس عليها السؤال

  في 18‏/7‏/2021 at 22:09, Eng.Qassim said:

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

Expand  

وهنا نتعجب من استخدام الاكواد برغم معرفتنا بامكانية عمل ذلك بالنماذج العادية

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

ولو استخدمنا كلمة استغرب ان نلجأ للاكواد الخ ايضا لم يتغير المعنى واستغرب مرادفة لاتعجب

او قلنا كيف نلجأ  الى الاكواد و .... الخ لن يتغيير المعنى

الخلاصة ان نوع الاستفهام يعرف بفهم المعنى وسياق الكلام ودلائل اخرى كالنهي والتهكم والوعيد والحض والاستبطاء والتحقير .... الخ

ولا يشترط في استفهام التعجب وجود فعل في سياق الحديث فيمكن ترك الامر على ايهامه للتحقير والتعجب و من ذلك قوله تعالى " وَأَصْحَابُ الشِّمَالِ مَا أَصْحَابُ الشِّمَالِ " وقوله تعالى " وأصحاب المشأمة ما أصحاب المشأمة " او ان يترك على ايهامه للتفخيم والتعجب من حسن المآل كقوله تعالى " وَأَصْحَابُ الْيَمِينِ مَا أَصْحَابُ الْيَمِينِ "

واما الاستفهام الانكاري له اغراضه ومن اشهرها التكذيب او التوبيخ على امر مضى او مستمر

وهناك من يشترط  لهذا النوع من الاستفهام ان يبدأ بهمزة الاستفهام

فائدة

التعجب في العربية له صيغتان

  • سماعي ليس له وزن او قاعدة محددة ويفهم من سياق المعنى ويندرج تحت هذا النوع الاستفهام التعجبي
  • قياسي وله صيغتان ما افعله وافعل به ويصاغ من اي فعل ثلاثي تام مثبت قابل للتفاوت منصرف مبني للمعلوم لايأتي وصف مؤنثه على وزن فعلاء فان توفر فيه شرطي التفاوت والتصرف ولم يتوفر فيه احد الشروط الاخرى يتعجب منه بغيره اما اذا لم يتوفر فيه احد الشرطين التفاوت او التصرف فلا يتعحب منه مطلقا

هذا ما اعلمه

فإِن أحسنت فمن الله، وإِن أسأت أو أخطأت فمن نفسي والشيطان

والله تعالى اعلم

في ردي السابق

  في 19‏/7‏/2021 at 19:38, kha9009lid said:

كما تريد

Expand  

القصد منه ان رأيك وفقا لفهم السؤال وليس الهدف التجاوز على اخ عزيز و معلم قدير له كل الاحترام والتقدير وان اختلفنا في الرأي

اخيرا اعتذر من صاحب الموضوع والقائمين على الموقع عن الاطالة و الخروج عن الموضوع الاساسي للمشاركة

  • Like 1
قام بنشر
  في 20‏/7‏/2021 at 17:07, kha9009lid said:

يامرحبا باخي واستاذي الفاضل @مسفر

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

الاستفهام له انواع متعددة اشهرها سبعة انواع

وهناك من يرى انها اكثر من ذلك فعدها عشرا وبعضهم اكثر

ندخل في لب الموضوع

وايضا يقاس عليها السؤال

وهنا نتعجب من استخدام الاكواد برغم معرفتنا بامكانية عمل ذلك بالنماذج العادية

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

ولو استخدمنا كلمة استغرب ان نلجأ للاكواد الخ ايضا لم يتغير المعنى واستغرب مرادفة لاتعجب

او قلنا كيف نلجأ  الى الاكواد و .... الخ لن يتغيير المعنى

الخلاصة ان نوع الاستفهام يعرف بفهم المعنى وسياق الكلام ودلائل اخرى كالنهي والتهكم والوعيد والحض والاستبطاء والتحقير .... الخ

ولا يشترط في استفهام التعجب وجود فعل في سياق الحديث فيمكن ترك الامر على ايهامه للتحقير والتعجب و من ذلك قوله تعالى " وَأَصْحَابُ الشِّمَالِ مَا أَصْحَابُ الشِّمَالِ " وقوله تعالى " وأصحاب المشأمة ما أصحاب المشأمة " او ان يترك على ايهامه للتفخيم والتعجب من حسن المآل كقوله تعالى " وَأَصْحَابُ الْيَمِينِ مَا أَصْحَابُ الْيَمِينِ "

واما الاستفهام الانكاري له اغراضه ومن اشهرها التكذيب او التوبيخ على امر مضى او مستمر

وهناك من يشترط  لهذا النوع من الاستفهام ان يبدأ بهمزة الاستفهام

فائدة

التعجب في العربية له صيغتان

  • سماعي ليس له وزن او قاعدة محددة ويفهم من سياق المعنى ويندرج تحت هذا النوع الاستفهام التعجبي
  • قياسي وله صيغتان ما افعله وافعل به ويصاغ من اي فعل ثلاثي تام مثبت قابل للتفاوت منصرف مبني للمعلوم لايأتي وصف مؤنثه على وزن فعلاء فان توفر فيه شرطي التفاوت والتصرف ولم يتوفر فيه احد الشروط الاخرى يتعجب منه بغيره اما اذا لم يتوفر فيه احد الشرطين التفاوت او التصرف فلا يتعحب منه مطلقا

هذا ما اعلمه

فإِن أحسنت فمن الله، وإِن أسأت أو أخطأت فمن نفسي والشيطان

والله تعالى اعلم

في ردي السابق

القصد منه ان رأيك وفقا لفهم السؤال وليس الهدف التجاوز على اخ عزيز و معلم قدير له كل الاحترام والتقدير وان اختلفنا في الرأي

اخيرا اعتذر من صاحب الموضوع والقائمين على الموقع عن الاطالة و الخروج عن الموضوع الاساسي للمشاركة

Expand  

لا تظن ما ليس بي فلم أرد ولم أتحدث بسبب كلمة ( كما تريد ) 

لأنك قبل كل ذلك معلمي واستاذي وأقدرك واحترمك قبل كل شيء 

فالعين لا تعلى على الحاجب 

أما فهم المعنى فيختلف من إنسان إلى إنسان 

فعلماؤنا اختلفوا في كثير من الأمور كل حسب فهمه ألا نختلف انا وانت في فهم المقصد 

وأعتذر منك ومن الجميع لدخولنا في موضوع آخر 

 

  • Like 2
قام بنشر
  في 19‏/7‏/2021 at 20:39, jjafferr said:

وعلى كل حال ، فنريد متطوع يقوم بتجربة الطريقتين ، ونأخذ توقيت عمل كل طريقة ، مثلا 10 مرات ، ثم نأخذ المعدل 🙂

Expand  

تفضل يا غالي

التجربة

1 - جدول به 3 حقول يحتوي على بيانات ما يقرب من ربع مليون سجل

2 - كود متنوع يقوم باستعلام الحاق بثلاث طرق

3 - النتائج مبهرة


'1
        CurrentDb.Execute "DELETE * FROM Table3"
        X = Timer
        DoCmd.SetWarnings False
        DoCmd.RunSQL "INSERT INTO Table3 ( text1, text2, text3 ) SELECT Table1.text1, Table1.text2, Table1.text3 FROM Table1;"
        DoCmd.SetWarnings True
        XTime = Timer - X
        XTime = Format(XTime, "#0.0####")
        Debug.Print "Time1 " & "==========> " & XTime

'2
        CurrentDb.Execute "DELETE * FROM Table3"
        X = Timer
        CurrentDb.Execute "INSERT INTO Table3 ( text1, text2, text3 ) SELECT Table1.text1, Table1.text2, Table1.text3 FROM Table1;"
        XTime = Timer - X
        XTime = Format(XTime, "#0.0####")
        Debug.Print "Time2 " & "==========> " & XTime

'3
        CurrentDb.Execute "DELETE * FROM Table3"
        X = Timer
        CurrentDb.Execute "Query1"
        XTime = Timer - X
        XTime = Format(XTime, "#0.0####")
        Debug.Print "Time3 " & "==========> " & XTime
'4
        CurrentDb.Execute "DELETE * FROM Table3"
        X = Timer
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Dim rst As DAO.Recordset

        Set rs = CurrentDb.OpenRecordset("Table1")
        Set rst = CurrentDb.OpenRecordset("Table3")

        For i = 1 To rs.RecordCount
            rst.AddNew
            rst.Fields(0) = rs.Fields(0)
            rst.Fields(1) = rs.Fields(1)
            rst.Fields(2) = rs.Fields(2)
            rst.Update
            rs.MoveNext
        Next

        rs.Close
        Set rs = Nothing
        rst.Close
        Set rst = Nothing

        XTime = Timer - X
        XTime = Format(XTime, "#0.0####")

        Debug.Print "Time4 " & "==========> " & XTime
    Debug.Print "================================"

db9.rarFetching info...

تحياتي

  • Like 2
قام بنشر
  في 21‏/7‏/2021 at 02:12, مسفر said:

وهذا مثال لجدول غير مرتبط ومربعات نصوص غير منظمة 

 

jjafferr.accdb 1.66 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 1 download

Expand  

اخوي مسفر ايش اصدار الاوفيس الي تستخدمه

حبيت اطلع على الملف لكن للأسف ما فتح معي

image.png.c2bb7ab0113c7106fa0ad71383b29a41.png

قام بنشر
  في 21‏/7‏/2021 at 03:27, د.كاف يار said:

اخوي مسفر ايش اصدار الاوفيس الي تستخدمه

حبيت اطلع على الملف لكن للأسف ما فتح معي

Expand  

اعدت رفع الملف في مشاركة اخوي مسفر 🙂

طبعا الرجال مدلّعني واسم الملف على اسمي له بونص 😁

 

جعفر

  • Like 1
  • Haha 1
قام بنشر
  في 21‏/7‏/2021 at 01:38, محمد أبوعبدالله said:

تفضل يا غالي

التجربة

1 - جدول به 3 حقول يحتوي على بيانات ما يقرب من ربع مليون سجل

2 - كود متنوع يقوم باستعلام الحاق بثلاث طرق

3 - النتائج مبهرة

Expand  

 

شكرا جزيلا اخوي ابو عبدالله ، مجهود تُشكر عليه 🙂

 

 

الكود يقوم بنسخ هذه البيانات الى الجدول Table3

image.png.8101ddef5813e7b69714e113ab74249d.png

.

وهكذا الوقت الذي يستغرقه كل نوع من الاكواد :

Time1 ==========> 3.16797  <= DoCmd.RunSQL
Time2 ==========> 3.14453  <= CurrentDb.Execute
Time3 ==========> 3.72656  <= CurrentDb.Execute "Query1"
Time4 ==========> 9.07031  <= CurrentDb.OpenRecordset
================================
Time1 ==========> 3.11328
Time2 ==========> 3.13672
Time3 ==========> 3.07422
Time4 ==========> 6.05859

.

وتم حذف اول محاولة ، حيث في المرة الاولى ، يحتاج الاكسس الى عمل Compile لجملة SQL التي سيستعملها في الاستعلام :

image.png.9e864cb128dee3e523eb67a414ac6def.png

.

 

 

  في 19‏/7‏/2021 at 20:45, د.كاف يار said:

كيف راح يتصل بقاعدة البيانات اذا اختار الأول  docmd.RunSQL ؟ 

Expand  

 

هكذا ممكن عمل اتصال مع قاعدة بيانات خارجية (لاحظ هذا استعلام الحاقي) :

image.png.598b90292ccc1af2fd7978066139a3c1.png

.

ونقدر نستعملة كإستعلام (وهو الاسرع) ، او جملة SQL مع docmd.RunSQL او "currentdb.execute "qry_tbl_BB_Append 🙂

ويمكن استعمال Source Connect Str ، لإضافة متطلبات الربط ، وهذا احد المواقع اللي يعطينا جملة الربط :

Access connection strings - ConnectionStrings.com

 

 

جعفر

  • Like 1

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