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

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

  • الردود 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.rarFetching info...

  • Like 4
  • Thanks 1
  • 1 month later...
  • 2 weeks later...
قام بنشر
  في 15‏/3‏/2020 at 15:12, walidalrobey@yahoo.com said:

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

Expand  

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

  في 15‏/3‏/2020 at 10:33, رمهان said:

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

Expand  

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

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

  • 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.accdbFetching info...

  • 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.rarFetching info...

  • Like 2
قام بنشر

السلام عليكم 

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

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

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

32.png.c8c7c2fc6ffc63be101e1cbd3f603222.png

 

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

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

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

 

web_SALEH.zipFetching info...

قام بنشر
  في 4‏/4‏/2020 at 12:21, ابوآمنة said:

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

Expand  

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

  في 4‏/4‏/2020 at 12:21, ابوآمنة said:

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

Expand  

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

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

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.zipFetching info...

تم تعديل بواسطه ابوآمنة
  • Like 1
قام بنشر
  في 4‏/4‏/2020 at 21:05, ابوآمنة said:

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

Expand  

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

  في 4‏/4‏/2020 at 22:13, ابوآمنة said:

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

Expand  

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

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

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

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

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

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

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

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

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

web_SALEH2020.rarFetching info...

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

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

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

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

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

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

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

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

 

 

 

MYSite_saleh.zipFetching info...

تم تعديل بواسطه ابوآمنة
تم تحديث المرفق
قام بنشر
  في 5‏/4‏/2020 at 12:48, ابوآمنة said:

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

Expand  

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

  في 5‏/4‏/2020 at 12:48, ابوآمنة said:

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

Expand  

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

  • Like 1
قام بنشر
  في 5‏/4‏/2020 at 17:55, ابوآمنة said:

كيف ما فهمت

Expand  

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

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

  في 5‏/4‏/2020 at 17:53, صالح حمادي said:

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

Expand  

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

قام بنشر

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

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

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

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

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

قام بنشر
  في 5‏/4‏/2020 at 12:10, صالح حمادي said:

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

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

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

Expand  

 

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

 

جعفر

قام بنشر
  في 5‏/4‏/2020 at 18:12, jjafferr said:

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

Expand  

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

  في 5‏/4‏/2020 at 18:17, ابوآمنة said:

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

Expand  

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

  • 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