الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استيراد بينات من صفحة ويب

مغلق
بدأه alimaeed في 11 مايو 2007 · 12 رد · 4,608 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

وللتوضيح اكثر لو عندي جدول مكون من ثلاث حقول الرقم التلقائي والعنوان الموضع

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

اتمنى من الجميع محاولة المساعدة او ارفاق مثال لذلك

اخت زهره تكفين العون في الله ثم فيك والاخوه ما يقصرون لكن انتي المشرفه وان شاء الله ما يصعب عليك مثل هل موضع

#2

اخي الكريم

هل جربت ان تضع نوع البيانات في هذا الحقل ارتباط تشعبي

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

#3

اخي الفاضل

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

هل من الممكن تعطينا رابط صفحة HTML المطلوب استيراد البيانات منها

#4

اخي الفاضل

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

طالما لم تتم الإجابه اذا سوف نضع لك ثلاث حلول واختار منها المناسب لك

عموما سوف نجرب على هذه الصفحة التي على الأنترنت

http://www.bennetyee.org/ucsd-pages/area.html

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

Dim conn As ADODB.Connection

Set conn = New ADODB.Connection
Call conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & _
			   "Data Source=http://www.bennetyee.org/ucsd-pages/area.html;" & _
			   "Extended Properties=""HTML Import;HDR=YES;IMEX=1""")

Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset
Call rs.Open("select count(*) from [Area Code Listing, by Number]", conn, adOpenDynamic, adLockReadOnly)
Debug.Print rs.Fields(0).Value
Call rs.Close

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

Dim db As DAO.Database
Dim td As DAO.TableDef

' Assumes we're in Access and adding the linked TableDef to the current database.  You could
' do this external to Access, but you'd have to create a Connection and open the database yourself.

Set db = CurrentDb()

Set td = db.CreateTableDef("AreaCodes")
td.Connect = "HTML Import;HDR=YES;IMEX=1;DATABASE=http://www.bennetyee.org/ucsd-pages/area.html"
td.SourceTableName = "Area Code Listing, by Number"
Call db.TableDefs.Append(td)

Dim rs As DAO.Recordset

Set rs = db.OpenRecordset("select count(*) from AreaCodes")
Debug.Print rs.Fields(0).Value
Call rs.Close

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

Dim conn  As ADODB.Connection

Set conn = New ADODB.Connection
Call conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\whatever\somefile.mdb")

Dim cat   As ADOX.Catalog
Dim table As ADOX.table

Set cat = New ADOX.Catalog
Set cat.ActiveConnection = conn

Set table = New ADOX.table
With table
  .Name = "AreaCodes"
  Set .ParentCatalog = cat
  .Properties("Jet OLEDB:Create Link").Value = True
  .Properties("Jet OLEDB:Link Provider String").Value = "HTML Import;HDR=YES;IMEX=1;DATABASE=http://www.bennetyee.org/ucsd-pages/area.html"
  .Properties("Jet OLEDB:Remote Table Name").Value = "Area Code Listing, by Number"
End With

Call cat.Tables.Append(table)

Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset
Call rs.Open("select count(*) from AreaCodes", conn, adOpenDynamic, adLockReadOnly)
Debug.Print rs.Fields(0).Value
Call rs.Close

Call conn.Close

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

post-15367-1179566857_thumb.gif

وضعنا لك ثلاث حلول الآن قم بالتطبيق فالموضوع سهل ممكن تعمله وانت مغمض عيونك

1
#5

اخت زهره انا ابي اتصفح مواقع ولمن احصل صفحه تعجبني اي صفحه

احط رابط الصفحه واسحب البينات منها تلقائي

يعني مو على صفحه معينه اي صفحه بس احط رابط الصفحه واسحب البينات

عموما انا ارفقت مثال عشان تتضح الصوره اسال الله لكم التوفيق واتمنى المساعده

db1.rar

تم تعديل هذه المشاركة بواسطة alimaeed في 19 مايو 2007 في 19:19

#6
zahrah كتب:
اخي الفاضل

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

طالما لم تتم الإجابه اذا سوف نضع لك ثلاث حلول واختار منها المناسب لك

عموما سوف نجرب على هذه الصفحة التي على الأنترنت

http://www.bennetyee.org/ucsd-pages/area.html

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

Dim conn As ADODB.Connection

Set conn = New ADODB.Connection
Call conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & _
			   "Data Source=http://www.bennetyee.org/ucsd-pages/area.html;" & _
			   "Extended Properties=""HTML Import;HDR=YES;IMEX=1""")

Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset
Call rs.Open("select count(*) from [Area Code Listing, by Number]", conn, adOpenDynamic, adLockReadOnly)
Debug.Print rs.Fields(0).Value
Call rs.Close

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

Dim db As DAO.Database
Dim td As DAO.TableDef

' Assumes we're in Access and adding the linked TableDef to the current database.  You could
' do this external to Access, but you'd have to create a Connection and open the database yourself.

Set db = CurrentDb()

Set td = db.CreateTableDef("AreaCodes")
td.Connect = "HTML Import;HDR=YES;IMEX=1;DATABASE=http://www.bennetyee.org/ucsd-pages/area.html"
td.SourceTableName = "Area Code Listing, by Number"
Call db.TableDefs.Append(td)

Dim rs As DAO.Recordset

Set rs = db.OpenRecordset("select count(*) from AreaCodes")
Debug.Print rs.Fields(0).Value
Call rs.Close

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

Dim conn  As ADODB.Connection

Set conn = New ADODB.Connection
Call conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\whatever\somefile.mdb")

Dim cat   As ADOX.Catalog
Dim table As ADOX.table

Set cat = New ADOX.Catalog
Set cat.ActiveConnection = conn

Set table = New ADOX.table
With table
  .Name = "AreaCodes"
  Set .ParentCatalog = cat
  .Properties("Jet OLEDB:Create Link").Value = True
  .Properties("Jet OLEDB:Link Provider String").Value = "HTML Import;HDR=YES;IMEX=1;DATABASE=http://www.bennetyee.org/ucsd-pages/area.html"
  .Properties("Jet OLEDB:Remote Table Name").Value = "Area Code Listing, by Number"
End With

Call cat.Tables.Append(table)

Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset
Call rs.Open("select count(*) from AreaCodes", conn, adOpenDynamic, adLockReadOnly)
Debug.Print rs.Fields(0).Value
Call rs.Close

Call conn.Close

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

post-15367-1179566857_thumb.gif

وضعنا لك ثلاث حلول الآن قم بالتطبيق فالموضوع سهل ممكن تعمله وانت مغمض عيونك

السلام عليكم

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

DAO

في محرر فيجوال بيسك

ولكن اذا كان الموقع ليس بلغة

HTML

كيف الحل يكون

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

http://www.tadawul.com.sa/wps/portal/!...s.7_0_A/7_0_4AI

او كتابة كلمة التداول في محرر

googel

ثم عرض جميع الاسعار

ثم تحويله الي اللغه الانجليزيه ممكن من هنا اذا الربط لم يعمل

مع الشرح لو سمحتي

عفوا على الازعاج الله يخليكي

#7

يا اخواني ممكن هذا الموضوع

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

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

http://www.tadawul.com.sa/wps/portal/!ut/p/.cmd/cs/.ce/7_0_A/.s/7_0_4AI/_s.7_0_A/7_0_4AI

علما ان هذه الصفحة ليست مصممه بلغة

html

مشكورين

#8
alimaeed كتب:
اخت زهره انا ابي اتصفح مواقع ولمن احصل صفحه تعجبني اي صفحه

احط رابط الصفحه واسحب البينات منها تلقائي

يعني مو على صفحه معينه اي صفحه بس احط رابط الصفحه واسحب البينات

اخي الفاضل

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

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

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

اخي الفاضل راشد

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

يمكن جلب بيانات موقع تداول مع الفيجول بيسك من خلال الأداة MSFlexGrid ومن ثم جلب البيانات منها الى قاعدة البيانات وستجد ملف اسمه Get IT.exe قم بفتحه . وستجد به عدة خيارات لتحديث البيانات وانت متصل بالإنترنت OnLine

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

Get_Data_from_web.zip

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

/index.php?showtopic=128096

#9

الف شكر

الله يجزيكم خير الحمد الاستفاده كبيره

مشكورين

#10

صباح الخير جميعاً

لساني عاجز عن الشكر ياانسة زهره مابعرف كيف بدي اعبرلك عن فرحي بالكود الي كتبتيه اشكرك من كل اعماق قلبي.

وبما إني من عشاق Ado حصرت إهتمامي في الكود الأول ولتعم الفائدة قمت بالتعديل على الكود بحيث يقوم بإستيراد البيانات بدلاً من عد الحقول

وشكرا مرة تانية

Dim WebConn As New ADODB.Connection
Dim RstGetData As New ADODB.Recordset

WebConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=http://www.bennetyee.org/ucsd-pages/area.html;Extended Properties=""HTML Import;HDR=YES;IMEX=1"""
RstGetData.Open "SELECT [Area Code Listing, by Number].[Area Code], [Area Code Listing, by Number].Region, [Area Code Listing, by Number].[Timezone Offset (from UTC)], [Area Code Listing, by Number].Description FROM [Area Code Listing, by Number];", WebConn, adOpenDynamic, adLockReadOnly
RstGetData.MoveFirst

Do Until RstGetData.EOF
  Debug.Print RstGetData![Area Code]
  Debug.Print RstGetData!Region
  Debug.Print RstGetData![Timezone Offset (from UTC)]
  Debug.Print RstGetData!Description
  RstGetData.MoveNext
Loop

RstGetData.Close
1
#11

استاذي ومعلمي الفاضل أمجد جمالي

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

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

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

بالنسبة للكود الذي وضعته استاذي امجد فهو رائع بالفعل ولم تخطر على بالي هذه الفكره ومنكم نستفيد :)

ختاما لك مني ومن كافة اعضاء المنتدى ارق تحيه وجزاك الله الفردوس الأعلى من الجنه .

#12

السلام عليكم لي مشاركة ارجو أن تعجبكم

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

ملف مرفق ضع المؤشر على البيانات وضغط الزر الايمن ثم اختر تحديث بيانات

يحدث البيانات من صفحة الويب المطلوبة

وله عيوب احيانا يغير مكان الحقول ويمكن أن تحل برمجيا واحينا يضيع العربي ويمكن ربطها بصفحة ثانية يكون العربي (لاسماء الشركات ثابت)

ويسهل جلبها للأكسس أو ربطها

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

السؤال هل يمكن ربطها بالكود مع الأكسس

وسلامتكم

_______.rar

من سار على الدرب وصل

#13

الاستاذة زهرة

هل من الممكن ارفاق ملف به المثال

لاني فعلا عجزت :angry: ومش عارف العيب في مين ؟؟؟ واكيد فيه :s

هذا الموضوع مغلق.

مواضيع مشابهة