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

التعامل مع صفحات الويب بدون إستخدام أداة webbrowser


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

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

بعد أن أنهينا الشطر الأول الخاص بالتعامل مع الويب من الأكسس بإستخدام أداة WebBrowser و هذا رابط الموضوع:

نبدأ الآن بحول الله تعالى في الشطر الثاني و هو التعامل مع صفحات الويب بدون إستخدام أداة WebBrowser

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

الجزء الأول:  التعامل المباشر مع المتصفح Internet Explorer

في هذا الجزء إن شاء الله سوف نقوم بفتح نسخة من المتصفح Internet Explorer و نرسل لها بيانات أو نستقبل منها.

سوف نستخدم مثال الأخ @ابوآمنة للتطبيق عليه بإرسال بيانات لنموذج غوغل من خلال متصفح خارجي:

هذا هو الكود:

Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorer
Dim oHTML_Element As IHTMLElement
Dim sURL As String

On Error GoTo Err_Clear
sURL = "https://docs.google.com/forms/d/e/1FAIpQLSejrVMF2ucvGdzXefD7MeoKze4_8Fn-ir7dHmrAIwduHzBbtg/viewform"
Set oBrowser = New InternetExplorer
oBrowser.Silent = True
oBrowser.Navigate sURL
oBrowser.Visible = False

Do
' Wait till the Browser is loaded
Loop Until oBrowser.ReadyState = READYSTATE_COMPLETE
Set HTMLDoc = oBrowser.Document
 HTMLDoc.getElementsByTagName("input").Item(0).Value = Me.n1
 HTMLDoc.getElementsByTagName("input").Item(1).Value = Me.n2
 HTMLDoc.getElementsByClassName("appsMaterialWizButtonPaperbuttonLabel quantumWizButtonPaperbuttonLabel exportLabel").Item(0).Click

Do
' Wait till the Browser is loaded
Loop Until oBrowser.LocationURL <> sURL

oBrowser.Quit

MsgBox "لقد تم إرسال البيانات بنجاح"
Me.n1 = ""
Me.n2 = ""
Err_Clear:
If Err <> 0 Then
   Err.Clear
   Resume Next
End If

شرح الكود:

Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorer
Dim oHTML_Element As IHTMLElement
Dim sURL As String

هنا قمنا بتعريف المتغيرات التي نحتاجها

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

هذا رابط الموقع

Set oBrowser = New InternetExplorer

إسناد نسخة من جديدة من Internet Explorer للمتغير oBrowser

oBrowser.Silent = True
oBrowser.Navigate sURL
oBrowser.Visible = False

السطر الأول هو إيقاف ظهور رسائل الأخطاء من المتصفح

السطر الثاني تصفح الرابط sURL

السطر الثالث التحكم في إظهاء أو إخفاء المتصفح أثناء العمل عليه

Do
' Wait till the Browser is loaded
Loop Until oBrowser.ReadyState = READYSTATE_COMPLETE

الإنتظار إلى حين تحميل الصفحة

 HTMLDoc.getElementsByTagName("input").Item(0).Value = Me.n1
 HTMLDoc.getElementsByTagName("input").Item(1).Value = Me.n2

إرسال قيم للمربع الأول و الثاني

 HTMLDoc.getElementsByClassName("appsMaterialWizButtonPaperbuttonLabel quantumWizButtonPaperbuttonLabel exportLabel").Item(0).Click

الضغط على زر إرسال

Do
' Wait till the Browser is loaded
Loop Until oBrowser.LocationURL <> sURL

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

oBrowser.Quit

إغلاق المتصفح بعد إرسال البيانات

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

و للإطلاع على ظهور النتائج ادخل على هذا الرابط:

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

202020.jpg.a8bfb3ec10039f2dcf6490381e7e2488.jpg

ارسال بيانات لنماذج غوغل.rar

  • Like 7
  • Thanks 1
رابط هذا التعليق
شارك

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

 

شكرا لك اخي صالح على الشرح وبالتفصيل لهذه المواضيح المهمة 🙂

من تجربتي ، فالتصفح من داخل الاكسس عن طريق webbrowser ، والذي يستعمل ieFrame.dll ، والذي هو جزء من الانترنت اكسبلورر Internet Explorer ،

لا يحتوي على جميع خواص Internet Explorer الكامل ، فهذا الموضوع سيكون اشمل و أعم 🙂

فانا هنا من المتابعين كذلك ان شاء الله ، وبصمت 🙂

 

جعفر

  • Like 3
رابط هذا التعليق
شارك

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

نعم أنا الآن أعاني مع أحد المواقع بسبب عدم دعم أداة التصفح لأكواد JQuery

شوف هذا الرابط قد يساعدك :

https://exceldevelopmentplatform.blogspot.com/search?q=jQuery+

 

جعفر

  • Like 3
رابط هذا التعليق
شارك

أشكرك استاذي الفاضل صالح حمادي

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

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

فلله الحمد تعلمنا منكم هذا العلم وندعوا لك في ظهر الغيب من خيري الدنيا والآخرة .

 

 

     

  • Like 2
رابط هذا التعليق
شارك

25 دقائق مضت, jjafferr said:

شوف هذا الرابط قد يساعدك :

بارك الله فيك أستاذ جعفر رابط رائع فيك الكثير من الفائدة

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

فلله الحمد تعلمنا منكم هذا العلم وندعوا لك في ظهر الغيب من خيري الدنيا والآخرة .

و لك بمثل ما دعوة لي إن شاء الله

  • Like 1
رابط هذا التعليق
شارك

مثال تطبيقي حول التعامل مع المتصفح:  الدخول إلى موقع أوفيسنا في متصفح Internet Explorer من خلال الأكسس

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

Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorer

Dim oHTML_Element As IHTMLElement
Dim sURL As String

On Error GoTo Err_Clear
sURL = "https://www.officena.net/ib/login/"
Set oBrowser = New InternetExplorer
oBrowser.Silent = True
oBrowser.Navigate sURL
oBrowser.Visible = True

Do
' Wait till the Browser is loaded
Loop Until oBrowser.ReadyState = READYSTATE_COMPLETE

Set HTMLDoc = oBrowser.Document

HTMLDoc.all.auth.Value = Me.str_UserName
HTMLDoc.all.Password.Value = Me.str_Password

 HTMLDoc.getElementById("elSignIn_submit").Click

' oBrowser.Refresh ' Refresh If Needed
Err_Clear:
If Err <> 0 Then
'Debug.Assert Err = 0
Err.Clear
Resume Next
End If

33333.jpg.1fc495f79008291280049b7574edab2c.jpg

فتح موقع أوفيسنا.rar

  • Like 4
  • Thanks 3
رابط هذا التعليق
شارك

  • 1 month later...
في ٨‏/٥‏/٢٠٢٠ at 22:09, أبو عبدالله الحلوانى said:

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

أهلين أخي أبو عبد الله

مازلت لم أتوصل إلى ذلك بعد

  • Thanks 1
رابط هذا التعليق
شارك

التعامل مع بيانات الويب من خلال FTP:  إستقبال بيانات من موقع معين

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

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

بروتوكول FTP:

 FTP هي اختصار لمجموعة كلمات File Transfer Protocol، وهي تعني بروتوكول نقل الملفات، وهذه الخدمة هي إحدى تطبيقات TCP/IP التي تجعل من الممكن نقل الملفات بين أجهزة الحاسب الآلي المختلفة و المرتبطة بشبكة الإنترنت.

ينقسم نقل الملفات إلى نوعين:

1 ـ تنزيل الملفات Download: وهو جلب الملفات من الكمبيوتر المضيف Host إلى جهازك المحلي Local. و نستخدم الأمر Get

2 ـ رفع الملفات Uplaod: وهو إرسال الملفات من جهازك المحلي Local إلى الجهاز الخادم Host. و نستخدم الأمر Put

- كل طلب يرسل Request يتم من خلاله استقبال رد Response

أوامر FTP:

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

1-Post: يستخدم لارسال معلومات من المستخدم مثال: إنشاء موضوع جديد أو تسجيل الدخول كل هذا عبر Post Request

2-Get: يستخدم هذا الأمر لتنزيل ملف ما من جهاز الخادم أو عرض صورة أو صفحة. مثال: أقوم بإرسال طلب و استقبل ردًا Response يحتوي على أكواد html للصفحة

3-Put: يستخدم لرفع الملفات إلى جهاز الخادم

4-Open: يستخدم لإنشاء إتصال جديد مع الخادم

6-Close: يستخدم لإنهاء الإتصال مع جهاز الخادم

مثال تطبيقي:

سوف نستخدم هذا الموقع: https://uk.investing.com/rates-bonds/financial-futures

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

هذا الكود المستخدم:

Dim html As HTMLDocument, hTable As HTMLTable
    Dim Url As String
    Url = "https://uk.investing.com/rates-bonds/financial-futures"
    
    Set html = New HTMLDocument
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", Url, False
        .send
        html.body.innerHTML = .responseText
    End With

    Set hTable = html.getElementById("cr1")
    For i = 1 To hTable.rows.length - 1
        DoCmd.GoToRecord , , acNewRec
        Me.id = hTable.rows(i).cells(1).innerText
        Me.dd = hTable.rows(i).cells(2).innerText
        Me.t1 = hTable.rows(i).cells(3).innerText
        Me.t2 = hTable.rows(i).cells(4).innerText
        Me.t3 = hTable.rows(i).cells(5).innerText
        Me.t4 = hTable.rows(i).cells(6).innerText
        Me.t5 = hTable.rows(i).cells(7).innerText
        Me.t6 = hTable.rows(i).cells(8).innerText
   Next i

شرح الكود:

تعريف كائنات html

Dim html As HTMLDocument, hTable As HTMLTable

إنشاء إتصال جديد عبر السرفر MSXML2.XMLHTTP و إرسال الطلب:

With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", Url, False
        .send

إستقبال الرد على شكل صفحة html:

 html.body.innerHTML = .responseText

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

Set hTable = html.getElementById("cr1")
    For i = 1 To hTable.rows.length - 1
        DoCmd.GoToRecord , , acNewRec
        Me.id = hTable.rows(i).cells(1).innerText
        Me.dd = hTable.rows(i).cells(2).innerText
        Me.t1 = hTable.rows(i).cells(3).innerText
        Me.t2 = hTable.rows(i).cells(4).innerText
        Me.t3 = hTable.rows(i).cells(5).innerText
        Me.t4 = hTable.rows(i).cells(6).innerText
        Me.t5 = hTable.rows(i).cells(7).innerText
        Me.t6 = hTable.rows(i).cells(8).innerText
   Next i

 

استخدام ftp.rar

  • Like 6
  • Thanks 3
رابط هذا التعليق
شارك

  • 5 months later...

السلام عليكم

On 4/6/2020 at 2:54 AM, صالح حمادي said:

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

بعد أن أنهينا الشطر الأول الخاص بالتعامل مع الويب من الأكسس بإستخدام أداة WebBrowser و هذا رابط الموضوع:

نبدأ الآن بحول الله تعالى في الشطر الثاني و هو التعامل مع صفحات الويب بدون إستخدام أداة WebBrowser

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

الجزء الأول:  التعامل المباشر مع المتصفح Internet Explorer

في هذا الجزء إن شاء الله سوف نقوم بفتح نسخة من المتصفح Internet Explorer و نرسل لها بيانات أو نستقبل منها.

سوف نستخدم مثال الأخ @ابوآمنة للتطبيق عليه بإرسال بيانات لنموذج غوغل من خلال متصفح خارجي:

هذا هو الكود:



Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorer
Dim oHTML_Element As IHTMLElement
Dim sURL As String

On Error GoTo Err_Clear
sURL = "https://docs.google.com/forms/d/e/1FAIpQLSejrVMF2ucvGdzXefD7MeoKze4_8Fn-ir7dHmrAIwduHzBbtg/viewform"
Set oBrowser = New InternetExplorer
oBrowser.Silent = True
oBrowser.Navigate sURL
oBrowser.Visible = False

Do
' Wait till the Browser is loaded
Loop Until oBrowser.ReadyState = READYSTATE_COMPLETE
Set HTMLDoc = oBrowser.Document
 HTMLDoc.getElementsByTagName("input").Item(0).Value = Me.n1
 HTMLDoc.getElementsByTagName("input").Item(1).Value = Me.n2
 HTMLDoc.getElementsByClassName("appsMaterialWizButtonPaperbuttonLabel quantumWizButtonPaperbuttonLabel exportLabel").Item(0).Click

Do
' Wait till the Browser is loaded
Loop Until oBrowser.LocationURL <> sURL

oBrowser.Quit

MsgBox "لقد تم إرسال البيانات بنجاح"
Me.n1 = ""
Me.n2 = ""
Err_Clear:
If Err <> 0 Then
   Err.Clear
   Resume Next
End If

شرح الكود:



Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorer
Dim oHTML_Element As IHTMLElement
Dim sURL As String

هنا قمنا بتعريف المتغيرات التي نحتاجها



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

هذا رابط الموقع



Set oBrowser = New InternetExplorer

إسناد نسخة من جديدة من Internet Explorer للمتغير oBrowser



oBrowser.Silent = True
oBrowser.Navigate sURL
oBrowser.Visible = False

السطر الأول هو إيقاف ظهور رسائل الأخطاء من المتصفح

السطر الثاني تصفح الرابط sURL

السطر الثالث التحكم في إظهاء أو إخفاء المتصفح أثناء العمل عليه



Do
' Wait till the Browser is loaded
Loop Until oBrowser.ReadyState = READYSTATE_COMPLETE

الإنتظار إلى حين تحميل الصفحة



 HTMLDoc.getElementsByTagName("input").Item(0).Value = Me.n1
 HTMLDoc.getElementsByTagName("input").Item(1).Value = Me.n2

إرسال قيم للمربع الأول و الثاني



 HTMLDoc.getElementsByClassName("appsMaterialWizButtonPaperbuttonLabel quantumWizButtonPaperbuttonLabel exportLabel").Item(0).Click

الضغط على زر إرسال



Do
' Wait till the Browser is loaded
Loop Until oBrowser.LocationURL <> sURL

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



oBrowser.Quit

إغلاق المتصفح بعد إرسال البيانات

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

و للإطلاع على ظهور النتائج ادخل على هذا الرابط:

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

202020.jpg.a8bfb3ec10039f2dcf6490381e7e2488.jpg

ارسال بيانات لنماذج غوغل.rar 46.33 kB · 104 downloads

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

هل بالمكان ان نستهدف بمتصفح اخر مثل chrome

وممكن هذا الكود ينفعنا بشي ولكم جزيل الشكر


  Dim chromePath As String

  chromePath = """C:\Program Files\Google\Chrome\Application\chrome.exe"""

  Shell (chromePath & "https://docs.google.com/forms/d/e/1FAIpQLSejrVMF2ucvGdzXefD7MeoKze4_8Fn-ir7dHmrAIwduHzBbtg/viewform")

تم تعديل بواسطه sevgilim
رابط هذا التعليق
شارك

18 دقائق مضت, sevgilim said:

هل بالمكان ان نستهدف بمتصفح اخر مثل chrome

حاليا حسب معلوماتي لا

الكود الذي وضعته يقوم بفتح رابط معين في المتصفح فقط و لا تستطيع التحكم به ارسال و استقبال بيانات

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

لقد وجدت واحد لكنها غير فعالة

رابط هذا التعليق
شارك

  • 2 weeks later...

السلام عليكم 

 استاذنا هل بالامكان استهداف رمز الصوره واضافته تلقائي في مربع النص 

ولكم جزيل الشكر   

https://enjazit.com.sa/Enjaz/GetMusanedVisaInformation

 

imgCaptcha.bmp

تم تعديل بواسطه sevgilim
رابط هذا التعليق
شارك

8 ساعات مضت, sevgilim said:

 استاذنا هل بالامكان استهداف رمز الصوره واضافته تلقائي في مربع النص 

لا يمكن لأنه لا نستطيع قراءة بيانات الصورة

و الله أعلم

رابط هذا التعليق
شارك

السلام عليكم 

الاخوه الكرام هل بالامكان ارسال قيمه للمتصفح المفتوح 

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

التعامل مع صفحات الويب بدون إستخدام أداة webbrowser - Copy.mdb

رابط هذا التعليق
شارك

  • 2 weeks later...
  • 1 month later...
2 ساعات مضت, jjafferr said:

التحديث ستم اصداره في شهر 8 من هذه السنة 2021 ، ولكن لا توجد معلومة اذا كان سيعمل لاصدارات الاكسس السابقة ، فالكلام عن مايكروسوفت 365 والذي الاكسس جزء منه 🙂

نعم. سوف نضطر إلى تتبعهم

لأن ميكروسفت أعلنت على موقعها الرسمي إزالة الدعم عن أوفيس 2007 و أوفيس 2010

رابط هذا التعليق
شارك

  • 1 month later...
On 12/1/2020 at 5:46 AM, sevgilim said:

السلام عليكم 

الاخوه الكرام هل بالامكان ارسال قيمه للمتصفح المفتوح 

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

التعامل مع صفحات الويب بدون إستخدام أداة webbrowser - Copy.mdb 256 kB · 17 downloads

السلام عليكم 

استاذنا صالح اقصد نفس متصفح الانترنت اكسبلورر ارغب بتنفيذ امر اخر بنفس المتصفح بدون اغلاقه بنفس النموذج .. ولكم جزيل الشكر

 

 

رابط هذا التعليق
شارك

16 ساعات مضت, sevgilim said:

السلام عليكم 

استاذنا صالح اقصد نفس متصفح الانترنت اكسبلورر ارغب بتنفيذ امر اخر بنفس المتصفح بدون اغلاقه بنفس النموذج .. ولكم جزيل الشكر

و عليكم السلام أخي

أظن أن المشكلة الآن أصبحت أكبر منا بكثير

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

لا يقبل تشغيل هذا الموقع.

و كذلك المثال السابق الذي وضعته أنا من قبل لم يرضى أن يشتغل معي الآن لنفس الأسباب

سوف ننتظر جديد شركة مكروسفت و فقط الآن ليس لدينا حل آخر . آسف جدا أخي لأنني لم أستطع مساعدتك

  • 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