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

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

  • الردود 62
  • Created
  • اخر رد

Top Posters In This Topic

قام بنشر

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

في الدرس الماضي قمنا بالتعامل مع جدول له خاصية id

و في هذا الجدول سوف نتعلم كيفية التعامل مع الجداول التي ليس لها خاصية id أو name

سوف نعتمد في هذا الدرس على خاصية Tagname

التطبيق سوف يكون على صفحة ويكيبيديا: https://mawdoo3.com/جميع_دول_العالم_وعواصمها

1- كود حساب عدد الجدول في الصفحة

MsgBox WebBrowser3.Document.getElementsByTagName("table").Length

2- كود حساب عدد الخلايا في الجدول

MsgBox WebBrowser3.Document.getElementsByTagName("table").Item(0).cells.Length

3- كود حساب عدد الصفوف في الجدول

MsgBox WebBrowser3.Document.getElementsByTagName("table").Item(0).rows.Length

4- كود استخراج بيانات خلية في الجدول

MsgBox WebBrowser3.Document.getElementsByTagName("table").Item(0).rows(1).cells(1).innerText

5- كود ارسال بيانات إلى خلية في الجدول

WebBrowser3.Document.getElementsByTagName("table").Item(0).rows(5).cells(0).innerText = "salah"

ملاحظة: المقصود بـ item(0) i هو الجدول الأول 

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

44.jpg.d14e38310bfa4befac6f0a46427e99cb.jpg

webbroser.rar

  • Like 4
  • Thanks 1
  • 1 month later...
  • 2 weeks later...
قام بنشر
في ١٥‏/٣‏/٢٠٢٠ at 16:12, walidalrobey@yahoo.com said:

مشاء الله ربنا يزيد ويبارك لك يارب

آمين يا رب و شكر جزيلا أخي

في ١٥‏/٣‏/٢٠٢٠ at 11:33, رمهان said:

مبدع دائما اخ صالح

أهلين حبيبنا فين كل هذا الغياب

أحتاجك في موضوع مهم راح نحكي عليه بعدين

  • 2 weeks later...
قام بنشر

الحلقة السابعة:  التعامل مع الأحداث في صفحة ويب

بعد إنقطاع طويل نعود لإكمال هذه السلسلة من الدروس بإذن الله.

سوف نتطرق في هذا الدرس لأهم الأحداث التي نحتاجها مع أداة WebBrowser

كما هو معلوم أنه عندما ندخل على خصائص أحد الكائنات بالتحديد على تبويب الأحداث تظهر لنا جميع أحداث هذا الكائن.

لكن بالنسبة لأداة ويب براوز ليست كل الأحداث موجود في الخصائص.

كما أنه توجد العديد من الأحداث لم تعمل معي هذا حسب تجربتي الخاصة. 

1- حدث عند إنتهاء تحميل الصفحة نقوم بإضافة هذا الحدث في محرر الفجوال بسيك مع تغيير اسم أداة التصفح عندك. ونضيف له الكود الذي نريد تنفيذه مع هذا الحدث.

Private Sub WebBrowser3_DocumentComplete(ByVal pDisp As Object, URL As Variant)
   MsgBox "complete"
End Sub

نضغط على زر تصفح في النموذج عند الإنتهاء من تحميل الصفحة تظهر لنا رسالة complete

2- حدث قبل التصفح الكود في الحدث التالي يقوم بعرض رابط الصفحة التي سوف ننتقل إليها.

Private Sub WebBrowser3_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
   MsgBox URL
End Sub

3- حدث فتح نافذة تصفح جديدة: يظهر هذا الحدث عند فتح صفحة ويب في نافذة جديدة. و الخاصية المسؤولة عن فتح نافذة جديدة هي target عندما تكون تساوي _blank معناه فتح الرابط في نافذة جديدة و عندما تساوي هذه الخاصية _self معناه افتح الرابط في نفس الصفحة و هناك قيم آخرى لهذه الخاصية.

سوف نطبق هذا الحدث على صفحة أوفيسنا نضغط على زر فتح أوفيسنا و بعد ظهور الصفحة نضغط على زر البحث search تظهر لنا رسالة "نافذة جديدة".

Private Sub WebBrowser3_NewWindow2(ppDisp As Object, Cancel As Boolean)
  MsgBox "نافذة جديدة"
End Sub

 

webbroser.accdb

  • Like 3
قام بنشر

الحلقة الثامنة:  إستدعاء أحداث و دوال في صفحة ويب

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

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

صفحة الويب هذه موجودة مع المرفق كل ما عليك هو وضعها بجانب الملف.

1- إستدعاء حدث بعد التحديث الكود التالي يقوم بإستدعاء حدث بعد التحديث لمربع تحرير و سرد اسمه mySelect. كما يمكن استخدام هذا الكود مع مربع نص

Me.WebBrowser3.Document.getElementById("mySelect").OnChange

2- إستدعاء حدث عند التمرير الكود التالي يقوم بإستدعاء حدث عند تمرير الماوس على زر أمر اسمه bt2

Me.WebBrowser3.Document.getElementById("bt2").onmouseover

3- إستدعاء حدث عند النقر الكود التالي يقوم بإستدعاء حدث عند تمرير على زر أمر اسمه bt1

Me.WebBrowser3.Document.getElementById("bt1").OnClick
أو
Me.WebBrowser3.Document.getElementById("bt1").Click

4- إستدعاء حدث عند التركيز الكود التالي يقوم بإستدعاء حدث عند التركيز لمربع نص اسمه mytext

Me.WebBrowser3.Document.getElementById("mytext").OnFocus

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

5- إستدعاء دالة بسيطة موجودة داخل صفحة ويب نستطيع من خلال الكود التالي إستدعاء الدالة myfunction() دالة بسيطة (بدون براميتر)

Me.WebBrowser3.Object.Document.parentWindow.execScript ("myFunction();")

6- إستدعاء دالة موجودة داخل صفحة ويب و تمرير البراميتر نستطيع من خلال الكود التالي إستدعاء الدالة displayDate(a) و نمرر لها البراميتر a

Me.WebBrowser3.Object.Document.parentWindow.execScript ("displayDate('salah hommadi');")

7- عرض رسالة تنبيه في أداة التصفح : يمكننا هذا الكود من عرض رسالة تنبيه داخل أداة التصفح.

Me.WebBrowser3.Object.Document.parentWindow.execScript ("alert('الحمد لله على كل حال');")


198888.jpg.0c81e6aa8ed77fabe05d2e233402c299.jpg

webbrowser.rar

  • Like 2
قام بنشر

السلام عليكم 

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

لكن لي استفسار 

ما الفرق بين إدراج المتصفح WebBrowser من عناصر تحكم أكسيس للاصدارات التجديدة.

32.png.c8c7c2fc6ffc63be101e1cbd3f603222.png

 

أو من خلال عناصر تحكم ActiveX التي عند إدراجها تتم إضافة مكتبتها الخارجية .

علماً أني قمت بالتجربة على متصفح WebBrowser الخاص بأدوات أكسيس يعمل لدي بكفاءة كما بالمرفق .

أيضا يلاحظ أن لون المتصفح الخاص بأكسيس أبيض بينما الآخر أسود عند عرض التصميم كما في الصورة أعلاه .

 

web_SALEH.zip

قام بنشر
8 ساعات مضت, ابوآمنة said:

ما الفرق بين إدراج المتصفح WebBrowser من عناصر تحكم أكسيس للاصدارات التجديدة.

هذه المعلومة مازلت أجهلها 

8 ساعات مضت, ابوآمنة said:

علماً أني قمت بالتجربة على متصفح WebBrowser الخاص بأدوات أكسيس يعمل لدي بكفاءة كما بالمرفق .

نعم يعمل بشكل ممتاز لكن لو تلاحظ في الخصائص سوف تجدها مختلفين عن بعض السبب الله أعلم

بالنسبة للأحداث هناك أحداث أخرى غير موجودة حتى في هذه الأداة و من بينها 

Private Sub WebBrowser3_NewWindow2(ppDisp As Object, Cancel As Boolean)

و غيرها.

هذا و الله أعلم

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

شكراً لك أستاذي و معلمي صالح 

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

مثلاً هذه الصفحة شاهد بنفسك من خلال متصفح اكسيس كيف تصبح الصفحة .

https://docs.google.com/forms/d/e/1FAIpQLScPEwyw9dvi0Zin1ulERSwu0FWYzY7S_LGQGMhRyENpTGo0Bg/viewform

أيضا قمت بإرسال القيم للحقول فنجحت والحمد لله 

لكن واجهتني مشكلة إرسال البيانات حيث أن زر الإرسال الخاص بنموذج قوقل درايف غير مفعل في نموذج متصفح أكسيس ، حاولت البحث عن زر  id  ، name   لعملية الإرسال submit لكن دون فائدة .

 

هل تجد لذلك حلاً 😘

 

تم تعديل بواسطه ابوآمنة
  • Like 1
قام بنشر (معدل)

وهذا مثال قمت بالتجربة عليه .

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

Application.FollowHyperlink Address:="https://docs.google.com/forms/d/e/1FAIpQLSejrVMF2ucvGdzXefD7MeoKze4_8Fn-ir7dHmrAIwduHzBbtg/viewform"

Pause (2)
Call SendKeys("{TAB}", True)
Call SendKeys(F4, True)
Call SendKeys("{TAB}", True)
Call SendKeys("صالح البريكان", True)
Call SendKeys("{TAB}", True)
Call SendKeys("~", True)
Pause (2)
Call SendKeys("{TAB}", True)
Call SendKeys("~", True)
Call SendKeys("{CLEAR}{F4}", True)
MsgBox "تم إرسال القيم"

لكن لها عيوب أن المستخدم إذا غير المتصفح الإفتراضي للويندوز لا يعمل الكود .

 

MySite.zip

تم تعديل بواسطه ابوآمنة
  • Like 1
قام بنشر
14 ساعات مضت, ابوآمنة said:

هل تجد لذلك حلاً 😘.

بإذن الله يوجد حل أخي الكريم

13 ساعات مضت, ابوآمنة said:

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

بدأت أمل من هذا الموضوع يأخذ مني الكثير من الوقت و تفاعل الأعضاء فيه نادر.

يعني أنت رجعت شوي حوية مشكور.

لقد قسمت موضوع تعامل الأكسس مع الويب إلى قسمين :

الجزء الأول هو بإستخدام الأداة WebBrowser

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

أنت الآن سبقت الأوان بهذا السؤال. لكن سوف أعطيك مرفق صغير مقفل يقوم بالواجب على أكمل. هذا من أجل عدم خلط الموضوعين مع بعض

تملأ المربعات و تضغط على زر إرسال.

و في المساء إن شاء الله تعالى سوف أبدأ بالجزء الثاني في موضوع مستقل.

و لا تنسى تخبرني بنتيجة المرفق

web_SALEH2020.rar

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

يا روعة يا أستاذ صالح 

صحيح تم إدخال البيانات بنجاح .

شكراً لك أخي صالح 

باقي نعرف طريقتك بلهفة وبشوق .

هذا مرفق قمت باستيراد القيم التي تم إدخاله من الجدول 

بهذه الطريقة استطعنا إرسال واستقبال القيم عن طريق الاكسيس أولاين عن طريق قوقل فورم

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

 

 

 

MYSite_saleh.zip

تم تعديل بواسطه ابوآمنة
تم تحديث المرفق
قام بنشر
5 ساعات مضت, ابوآمنة said:

هذا مرفق قمت باستيراد القيم التي تم إدخاله من الجدول 

ممتاز أخي لقد طبقت جميع الخطوات بشكل جيد

5 ساعات مضت, ابوآمنة said:

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

لا يا أخي يتم التحديث بشكل آني للجدول

  • Like 1
قام بنشر
4 دقائق مضت, ابوآمنة said:

كيف ما فهمت

شو اللي ما فهمته أخي

إذا كنت على هذه العبارة

7 دقائق مضت, صالح حمادي said:

لا يا أخي يتم التحديث بشكل آني للجدول

فمعناها أن غوغل تقوم بتحديث الجدول تلقائيا بمجرد دخول البيانات و ليس كل 5 دقائق

قام بنشر

صحيح قوقل تقوم بتحديث الجدول مباشرة لك 

لكن لم أوفق لستدعاء الجدول مباشرة 

أما طريقتي في استدعاء البيانات هي عن طريق تصدير الجدول إلى صفحة html متزامنة كل 5 دقائق افتح الصفحة الآن لترى عبارة قوقل أسفل الصفحة .

https://docs.google.com/spreadsheets/d/e/2PACX-1vSi73gAAIE9Rv8Ux43jjcvq9SSpzdVzs3M3ZEtehWqqP0pW4NLFLnkX3Iqoc9dYm_cx8vPz9S1465zd/pubhtml

وهذه الطريقة التي قمت باستدعاء البيانات منها . 

قام بنشر
5 ساعات مضت, صالح حمادي said:

بدأت أمل من هذا الموضوع

يأخذ مني الكثير من الوقت و تفاعل الأعضاء فيه نادر.

يعني أنت رجعت شوي حوية مشكور.

 

لا لا يا استاذ صالح ، احنا متابعين بصمت 😁

 

جعفر

قام بنشر
6 ساعات مضت, صالح حمادي said:

لكن سوف أعطيك مرفق صغير مقفل يقوم بالواجب على أكمل

استاذي الفاضل صالح بانتظار المرفق المفتوح بأسرع وقت لنرى الكود العجيب الذي قام بإرسال البيانات  .

قام بنشر
11 دقائق مضت, jjafferr said:

لا لا يا استاذ صالح ، احنا متابعين بصمت 😁

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

8 دقائق مضت, ابوآمنة said:

استاذي الفاضل صالح بانتظار المرفق المفتوح بأسرع وقت لنرى الكود العجيب الذي قام بإرسال البيانات  .

أنا الآن أقوم بكتابة الموضوع

  • Like 2
  • Thanks 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.

×
×
  • اضف...

Important Information