You are on page 1of 62

‫رﺑﻂ اﻟﻔﻴﺠﻮال ﺑﻴﺴﻚ ‪ VB‬ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫اﻟﻤﺤﺘﻮﻳﺎت‬
‫ﻮﻳ‬
‫ﻣﺎ هﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ‪..‬‬ ‫•‬
‫ﻣﻌﻨﺎهﺎ ؟؟‬
‫ﺳﺠﻞ و ﺣﻘﻞ ‪ ..‬ﻣﺎﺎ هﻮ ﻌﻨﺎهﺎ‬
‫اﻟﻤﺼﻄﻠﺤﺎت ﺟﺪول ‪ ،‬ﺠﻞ‬
‫اﻟ ﺼﻄﻠﺤﺎت‬ ‫•‬
‫ﻣﺎ هﻲ ﻧﻈﻢ ادارة اﻟﺒﻴﺎﻧﺎت ‪ DBMS‬و ﻣﺎ هﻲ ﻣﻜﻮﻧﺎﺗﻬﺎ ‪...‬‬ ‫•‬
‫ﻣﺎ هﻮ اﻟـ ‪ ، Microsoft Database Jet‬و ﻣﺎ ﻋﻼﻗﺘﻪ‬ ‫•‬
‫ﺑﺑﺎﻟـ ‪!!! VB‬‬
‫اﻧﺸﺎء ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﺑـ ‪Visual Data Manager‬‬ ‫•‬
‫ﺗﻘﻨﻴﺎت اﻟﻮﺻﻮل اﻟاﻟﻰ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬ ‫•‬
‫• ﺑﺎﻟﺘﻔﺼﻴﻞ اﻟﻤﻤﻞ ‪Data Control‬‬
‫• ﺑﺎﻟﺘﻔﺼﻴﻞ اﻟﻤﻠﻞ ‪(ADO) ActiveX Data Objects‬‬
‫‪Data Report‬‬‫‪p‬‬ ‫اﻟﺘﻘﺎرﻳﺮ ﺑﺑﺎﺳﺘﺨﺪامم‬
‫رﻳﺮ‬ ‫اﻧﺸﺎء‬ ‫•‬
‫ﻲ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ؟‬
‫ﻣﺎ هﻲ‬
‫• ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت هﻲ أي ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺠﺪاول اﻟﻤﻨﻈﻤﺔ اﻟﺘﻲ ﺗﺠﻤﻌﻬﺎ ﻋﻼﻗﺔ‬
‫ﺑﻴﻨﻬﺎ ‪...‬‬
‫ﻓﻴﻤﺎﺎ ﺑﻴﻨ ﺎ‬
‫ﻓﻴ‬
‫• ﻣﺜﺎل ﻋﻠﻰ ذﻟﻚ ‪ :‬اﺳﻤﺎء اﻟﻄﻼب و درﺟﺎﺗﻬﻢ اﻟﺪراﺳﻴﺔ و ﺑﻴﺎﻧﺎت اﻟﻤﻮاد و‬
‫اﻟاﻟﻤﺪرﺳﻴﻦ ‪ ،‬اﻟاﻟﺦ ‪..‬‬
‫• اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﻳﻮﺿﺢ ﺷﻜﻞ ﻗﺎﻋﺪة‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬ ‫اﻟﺒﻴﺎﻧﺎت و ﻣﻜﻮﻧﺎﺗﻬﺎ ‪:‬‬
‫ﺣﻘﻞ‬
‫ﺟﺪولل‬
‫ﺟﺪول‬
‫‪Table‬‬
‫‪Table‬‬
‫ﻞ‬
‫ﺳﺠﻞ‬
‫ﺟﺪول‬
‫‪Table‬‬
‫ﻣﺎ هﻲ اﻟﺠﺪاول ؟ ﻣﺎ هﻲ ‪ DBMS‬؟‬
‫• اﻟﺠﺪول ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺼﻔﻮف و اﻷﻋﻤﺪة ‪..‬‬
‫ﺣﻘﻞ‬
‫ﺳﺠﻼت ‪..‬‬
‫ﻰ ﺠ‬ ‫اﻟﺼﻔﻮف ﺗﺴﻤﻰ‬
‫ﻮ‬
‫و ﺗﻘﺎﻃﻊ اﻟﺼﻒ ﻣﻊ اﻟﻌﻤﻮد ﻳﺴﻤﻰ ﺣﻘﻞ ‪..‬‬

‫ل‬
‫ﺟﺪول‬ ‫ﺳﺠﻞ‬
‫• ﻧﻈﺎم ادارة ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪DBMS‬‬
‫هﻮ ﻧﻈﺎم ﻳﺪﻳﺮ آﺎﻓﺔ اﻟﻌﻤﻠﻴﺎت اﻟﺘﻲ ﺗﺠﺮى ﻋﻠﻰ‬
‫ﻋﻠﻴﻬﺎ اوو‬
‫ﻳﻞ ﻴﻬ‬‫ول اوو اﻟﺘﻌﺪﻳﻞ‬
‫اﻟﺠﺪاول‬
‫ﻋﻤﻠﻴﺔ اﻧﺸﺎء ﺠ‬
‫ﻞ ﻴ‬ ‫اﻟﺒﻴﺎﻧﺎت ﻣﺜﻞ‬
‫ﻗﺎﻋﺪة ﺒﻴ‬
‫ﺣﺘﻰ ﺣﺬﻓﻬﺎ ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬و اﻳﻀًﺎ ﻋﻤﻠﻴﺔ ﺑﻨﺎء اﻟﻌﻼﻗﺎت ﺑﻴﻦ‬
‫اﻟﺒﻴﺎﻧﺎت ‪.‬‬
‫ﺪة اﻟ ﺎﻧﺎت‬
‫ل ﻗﺎﻗﺎﻋﺪة‬
‫ﺟﺪاول‬
‫ﺪا‬
‫• ﻣﺜﺎل ﻋﻠﻰ اﻧﻈﻤﺔ ادارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ‪ Access : DBMS‬و‬
‫اﻟﻜﺜﻴﺮ ‪..‬‬
‫‪ Oracle‬و ‪ MS-SQL Server‬و ‪ FoxPro‬و ﻏﻴﺮهﻢ اﻟ ﺜ‬
‫ﻣﻜﻮﻧﺎت ﻧﻈﻢﻢ ادارة ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬
‫• ﻳﺘﻜﻮن ﻧﻈﺎم ادارة ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﺟﺰﺋﻴﻴﻦ هﻤﺎ ‪:‬‬
‫اﻟﺘﻲ ﻳﺘﻌﺎﻣﻞ ﻣﻦ ﺧﻼﻟﻬﺎ ﻣﻊ‬‫‪ .1‬اﻟﻮاﺟﻬﺔ ‪ User Interface‬اﻟﺘ‬ ‫‪1‬‬
‫اﻟﻤﺴﺘﺨﺪم ‪..‬‬
‫اﻟﺒﻴﺎﻧﺎت ‪ Database Engine‬و ههﻮ ﺎ ة‬
‫ﻋﺒﺎرة‬ ‫ك ﻗﺎﻋﺪة اﻟ ﺎﻧﺎت‬ ‫‪ .2‬ﻣﺤﺮك‬ ‫‪2‬‬
‫ﻋﻦ اﻵﻟﻴﺔ اﻟﺘﻲ ﻣﻦ ﺷﺄﻧﻬﺎ ﺗﻨﻈﻴﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت )ﻣﻦ‬
‫ﺎن ﺗﻜﺎ ﻞ‬
‫ﺗﻜﺎﻣﻞ‬ ‫ﺿﻤﺎن‬
‫ﻞﺿ‬ ‫ﺗﻌﺪﻳﻞ ‪ ...‬اﻟﺦ( و ذﻟﻚ ﻓﻓﻲ ﺳﺒﻴﻞ‬
‫ﺬف و ﺗ ﺪ ﻞ‬
‫إﺿﺎﻓﺔ و ﺣﺬف‬
‫ﺑﻴﺎﻧﺎت ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت و ﺳﺮﻳﺘﻬﺎ )ﻣﺎ ﻣﻌﻨﻲ ﺗﻜﺎﻣﻞ ‪Integrity‬‬
‫ﺎﻧﺎت ؟؟(( ‪.‬‬
‫اﻟاﻟﺒﻴﺎﻧﺎت‬

‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬ ‫اﻟﻮاﺟﻬﺔ‬


‫‪Database‬‬
‫‪ Microsoft Database Jet‬هﻮ اﺣﺪ اﻻﻣﺜﻠﺔ ﻋﻠﻰ ﻣﺤﺮآﺎت‬ ‫•‬
‫اﻷوﻟﻴﺔ ﻟﻠﻔﻴﺠﻮال ﺑﻴﺴﻚ ﻟﻜﻲ‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت و اﻟﺬي ﻳﻮﻓﺮ اﻟﻮﺳﺎﺋﻞ ﻷ‬
‫ﻳﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﻤﺨﺘﻠﻔﺔ ) ‪ .. Access , Oracle‬اﻟﺦ(‬

‫ﻦ ‪ VB‬آﻤﺎ ﻮ‬
‫هﻮ‬ ‫ﻦ ‪ Microsoft Database Jet‬ﺟﺰءًا ﻣﻦ‬ ‫ﻟﻢﻢ ﻳﻳﻜﻦ‬ ‫•‬
‫اﻵن )و ذﻟﻚ ﺣﺘﻰ اﻻﺻﺪارة اﻟﺜﺎﻟﺜﺔ ﻣﻦ ‪ (VB‬ﻣﻤﺎ اﺳﺘﺪﻋﻰ اﺳﺘﺨﺪام‬
‫اﻟﺒﻴﺎﻧﺎت ‪ ODBC‬داﺧﻞ‬
‫ﻞ ﺑﻴﺑﻴﺌﺔ‬ ‫ﻟﻘﻮاﻋﺪ ﺒﻴ‬
‫ﻮح ﻮ‬‫ل اﻟﻤﻔﺘﻮح‬
‫ﺞ اﻻﺗﺼﺎل‬‫ﺑﺮﻧﺎﻣﺞ‬
‫ﺑﺮ‬
‫اﻟﻔﻴﺠﻮال ﺑﻴﺴﻚ و اﻟﺬي ﻳﻌﺘﺒﺮ اﺣﺪ اﻟﺒﺮاﻣﺞ اﻟﺘﻲ ﻳﻘﺪﻣﻬﺎ وﻳﻨﺪوز ‪ ،‬و‬
‫ﻞ ﻣﺸﻐﻞ‬
‫ﻞ‬ ‫ن آﻞ‬ ‫ﻰ ﻣﺸﻐﻼت ‪ ، Drivers‬ﻴ‬
‫ﺣﻴﺚ ان‬ ‫ﺞ ﻋﻠﻰ‬‫اﻟﺒﺮﻧﺎﻣﺞ‬
‫ﻮى هﺬا ﺒﺮ‬
‫ﻳﻳﺤﺘﻮى‬
‫ﻳﺨﺺ ﻧﻮع ﻣﻌﻴﻦ ﻣﻦ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ‪ ،‬ﻣﺜﺎل ﻋﻠﻰ ذﻟﻚ ‪Microsoft‬‬
‫اﻟﻤﺒﻨﻴﺔ‬
‫اﻟﺒﻴﺎﻧﺎت ﺒ ﻴ‬‫ﻗﻮاﻋﺪ ﺒﻴ‬‫ﻞ ﻣﻊﻊ ﻮ‬‫ﺢ اﻟﺘﻌﺎﻣﻞ‬
‫ي ﻳﻳﺘﺢ‬
‫‪ Access Driver‬اﻟﺬي‬
‫ﺑﻮاﺳﻄﺔ ﺑﺮﻧﺎﻣﺞ ‪ Access‬اﻟﻤﻌﺮوف ‪.‬‬
‫‪Visual Data Manager‬‬ ‫اﻧﺸﺎء ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﺑـ‬
‫• آﻤﺎ هﻮ ﻣﻤﻜﻦ اﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت داﺧﻞ ﺑﺮﻧﺎﻣﺞ اﻟـ ‪ Access‬ﻧﻔﺴﻪ‬
‫ﺑﻴﺌﺔ‬
‫داﺧﻞﻞ ﺑﻴ‬
‫اﻟﺒﻴﺎﻧﺎت ا‬
‫ﻗﻮاﻋﺪ ا ﺒﻴ‬
‫ﻮاع ﻮا‬
‫ﻣﻦ ااﻧﻮاع‬
‫ﻮع ﻦ‬
‫اﻟﻤﻤﻜﻦ اﻳاﻳﻀ ًﺎ ااﻧﺸﺎءء أي ﻧﻮع‬
‫ﻣﻦ ا ﻦ‬ ‫ﻓﺈﻧﻪ ﻦ‬
‫ﺈ‬
‫ﺧﺎﺻﺔ داﺧﻞ ‪ VB‬ﺗﺴﻤﻰ ‪ ،Visual Data Manager‬و ذﻟﻚ آﻤﺎ ﻳﻠﻲ‪:‬‬

‫‪ .1‬اﻟﺨﻄﻮة اﻷوﻟﻰ ﻓﺘﺢ اﻟﻔﻴﺠﻮال ﺑﻴﺴﻚ آﺎﻟﻤﻌﺘﺎد و ﻣﻦ ﺛﻢ‬


‫‪...Add-ins‬‬
‫‪Add i >> visual‬‬‫‪i‬‬ ‫‪l data‬‬
‫ﻗﺎﺋﻤﺔ ‪d t manager‬‬ ‫اﻟﺬهﺎب إﻟإﻟﻰ ﻗﺎ ﺔ‬
‫اﻟﺬ ﺎ‬
‫‪ .2‬ﺑﻌﺪ ذﻟﻚ ﺳﺘﻔﺘﺢ ﻟﻚ ﻧﺎﻓﺬة اﻟﺒﺮﻧﺎﻣﺞ اذهﺐ‬
‫إﻟﻰ ‪File>>new>>Microsoft access>>version 7.0‬‬
‫‪..mdb‬‬
‫ﺳﻴﻈﻬﺮ ﻟﻚ ﻣﺮﺑﻊ ﺣﻔﻆ ﻟﺘﺤﺪد اﻟﻤﻮﻗﻊ اﻟﺬي‬
‫ﺗﺮﻳﺪ أن ﺗﺤﻔﻆ ﻓﻴﻪ ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎﺗﻚ ‪..‬‬
‫ﺑﻌﺪهﺎ اﺧﺘﺮ ﺣﻔﻆ‬
‫ﺗﺎﺑﻊ‬
‫‪ .3‬ﺑﻌﺪ ذﻟﻚ ﺳﺘﻈﻬﺮ ﻟﻚ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬ﺣﺪد‬
‫اﻟﺨﺼﺎﺋﺺ‪ Properties‬ﺑﺎﻟﺰر اﻷﻳﻤﻦ‬
‫ﺛﻢ أﺧﺘﺮ ‪ New Table‬ﻣﻦ اﺟﻞ اﻧﺸﺎء ﺟﺪول ‪.‬‬

‫‪ .4‬ﺑﻌﺪ ذﻟﻚ ﺳﺘﻔﺘﺢ ﻟﻚ ﻧﺎﻓﺬة ﺗﻜﺘﺐ ﻓﻴﻬﺎ أﺳﻢ اﻟﺠﺪول‬


‫و ﺛﻢ أﺿﻒ ﺣﻘﻮل اﻟﺠﺪول اﻟﺤﻘﻮل آﻤﺎ هﻮ ﻣﺒﻴﻦ ‪.‬‬

‫‪ .5‬ﻳﺘﻔﺘﺢ ﻟﻚ ﻧﺎﻓﺬة إﺿﺎﻓﺔ اﻟﺤﻘﻮل ‪ ،‬اآﺘﺐ أﺳﻢ اﻟﺤﻘﻞ‬


‫ﺑﻴﺎﻧﺎت اﻟﺤﻘﻞﻞ‬
‫ﻮع ﺑﻴ‬
‫ﺺ و ﺣﺪد ﻧﻮع‬‫ن اﻟﻤﺨﺼﺺ‬ ‫ﻲ اﻟﻤﻜﺎن‬
‫ﻓﻲ‬
‫أي هﻞ هﻲ رﻗﻤﻴﺔ أو ﺣﺮﻓﻴﺔ ‪ ...‬اﻟﺦ ‪ ،‬ﺛﻢ آﺮر اﻟﻌﻤﻠﻴﺔ‬
‫ﺣﺘﻰ ﺗﻨﻬﻲ ﺟﻤﻴﻊ اﻟﺤﻘﻮل اﻟﺘﻲ ﺗﺮﻳﺪهﺎ ‪.‬‬‫ﺣﺘ‬
‫ﻰ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬
‫ﺗﻘﻨﻴﺎت اﻟﻮﺻﻮل اﻟﻰ‬
‫• اﻟﺘﻘﻨﻴﺔ ‪ : ( DAO) Data Access Objects‬ﺗﻮﻓﺮ هﺬﻩ اﻟﺘﻘﻨﻴﺔ‬
‫وإرﺳﺎلل‬
‫اﻟﺒﻴﺎﻧﺎت‪ ،‬وإر‬
‫ﺐ ﻣﻊﻊ ﻗﺎﻋﺪة ﺒﻴ‬‫ﻦ اﻟﻜﺎﺋﻨﺎت )‪ (Objects‬ﻟﻠﺘﺨﺎﻃﺐ‬‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ‬
‫ﺠ ﻮ‬
‫اﻷواﻣﺮ ﻟﻬﺎ‪ .‬وهﻲ ﻣﺼﻤﻤﺔ ﺑﺸﻜﻞ رﺋﻴﺲ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت أآﺴﺲ‬
‫ﻓﻲ اﻟﺘﻌﺎﻣﻞ ﻣﻊﻊ ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت‬
‫ﻰ اﻻﺻﺪارة ‪ ، (97‬و ﻳﻤﻜﻨﻚ اﺳﺘﺨﺪاﻣﻬﺎ ﻲ‬
‫)اﻟﻰ‬
‫أﺧﺮى ﻣﻦ ﺧﻼل اﻟﻤﺤﺮك ‪ Jet‬اﻟﺬي ﺗﻮﻓﺮﻩ‪.‬‬

‫• اداة اﻟﺘﺤﻜﻢ ﻓﻲ اﻟﺒﻴﺎﻧﺎت ‪ : Data Control‬و هﻲ ﺗﻘﻨﻴﺔ ﺳﻬﻠﺔ ﻟﻠﺘﻌﺎﻣﻞ‬


‫ﻓﻲ ﺻﻨﺪوق‬
‫وق‬ ‫اﻟﻤﻮﺟﻮدة ﻲ‬
‫اﻟﺘﺤﻜﻢ ﻮﺟﻮ‬
‫ﻢ‬ ‫ادوات‬
‫اﺣﺪى و‬
‫هﻲ ى‬ ‫اﻟﺒﻴﺎﻧﺎت و ﻲ‬
‫ﻣﻊﻊ ﻗﺎﻋﺪة ﺒﻴ‬
‫اﻷدوات اﻟﻘﻴﺎﺳﻲ ‪ ،‬و هﻲ ﺗﻤﻜﻨﻨﺎ ﻣﻦ اﻻﺗﺼﺎل ﺑﻤﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺴﺠﻼت‬
‫‪ Recordset‬ﻓﻲ ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ‪ Jet‬ﻟﻠﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ و آﺬﻟﻚ رﺑﻄﻬﺎ ﺑﻌﺪة‬
‫ادوات ﻓﻲ ﻓﻴﺠﻮال ﺑﻴﺴﻚ ﻣﺜﻞ اداة ‪..Textbox‬‬
‫ﺗﺎﺑﻊ‬
‫• ﺗﻘﻨﻴﺔ ‪ : (RDO) Remote Data Objects‬و ﻃﻮّرت هﺬﻩ اﻟﺘﻘﻨﻴﺔ‬
‫ﻓﻴﺠﻮالل‬
‫ﺠﻲ ﻟﻐﺔ ﻴﺠﻮ‬ ‫ﻟﺘﻘﻨﻴﺔ ‪ ODBC‬ﻟ ﺒﺮ‬
‫ﻤﺒﺮﻣﺠﻲ‬ ‫َﺴﻄﺔ ﻴ‬
‫ﻃﺒﻘﺔ ُﻣﺒ ِ‬
‫ﻟﺘﻮﻓﺮﺮ ﺒ‬
‫ﻴﺲ ﻮ‬‫ﺑﺸﻜﻞ ررﺋﻴﺲ‬
‫ﺑ ﻞ‬
‫ﺑﻴﺴﻚ‪.‬‬

‫• ﺗﻘﻨﻴﺔ ‪ : (ADO) ActiveX Data Objects‬واﺳﺘﻜﻤﺎ ًﻻ ﻟﻤﺴﻴﺮة‬


‫اﻟﺘﻘﺪم واﻟﺘﻄﻮﻳﺮ ﻃﺮﺣﺖ ﺷﺮآﺔ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖ ﺑﻌﺪهﺎ ﻧﻈﺎم ‪ ،ADO‬واﻟﺘﻲ‬
‫ﻗﺎﻣﺖ ﺑﺘﺴﻬﻴﻞ ﻋﻤﻠﻴﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﺑﺸﻜﻞ آﺒﻴﺮ‪ ،‬وأﺻﺒﺤﺖ‬
‫ﺣﺴﺐ ‪ ،‬ﺑﻞ و‬
‫ﻲ ﻟﻐﺔ ‪ VB‬و ﺐ‬ ‫اﻟﺒﻴﺎﻧﺎت ﻟﻴﺲ‬
‫ﻴﺲ ﻓﻲ‬ ‫ﻮل ﻟﻘﺎﻋﺪة ﺒﻴ‬
‫ﻟﻠﻮﺻﻮل‬
‫ﻲ ﻮ‬‫اﻟﻨﻬﺎﺋﻲ‬
‫اﻟﺸﻜﻞﻞ ﻬ‬
‫ﻓﻲ اﻟﻌﺪﻳﺪ ﻣﻦ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ‪.‬‬
‫اﻟﺮﺑﻂ ﺑﺎﻷداة ‪Data Control‬‬
‫ﻗﺒﻞ ﻋﻤﻠﻴﺔ اﻟﺮﺑﻂ ﻳﺠﺐ ﻋﻠﻴﻨﺎ او ًﻻ ﺗﺼﻤﻴﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬و ﻳﺠﺐ ان‬ ‫•‬
‫ﻰ ﺗﻘﺪﻳﺮ ‪.‬‬
‫ﻰ اﻗﺼﻰ‬‫ع ‪ Access 97‬ﻋﻠﻰ‬ ‫ﺗﻜﻮن ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻧﻮع‬
‫ﺧﻄﻮات اﻟﺮﺑﻂ ﺳﺘﻜﻮن ﻋﻠﻰ اﻟﻨﺤﻮ اﻵﺗﻲ ‪:‬‬ ‫•‬
‫ﻰ اﻟﻮاﺟﻬﺔ‬
‫ﺻﻨﺪوق اﻻدوات اﻟﻰ‬
‫ق‬ ‫‪ .1‬ﻳﺘﻢﻢ اﻧﺰال اﻻداة ‪ Data Control‬ﻣﻦ‬
‫‪ ، Form‬و ﺳﻴﻌﻄﻰ ﻟﻬﺎ اﻻﺳﻢ ‪.Data1‬‬
‫‪ .2‬ﻣﻦ ﺧﻼل ﺧﺼﺎﺋﺺ اﻻداة ‪Data Control‬‬
‫ﻳﺘﻢ ﺗﺤﺪﻳﺪ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﻤﺮاد اﻻﺗﺼﺎل ﺑﻬﺎ‬
‫ﻋﻦ ﻃﺮﻳﻖ اﻟﺨﺎﺻﻴﺔ ‪. DatabaseName‬‬
‫‪ .3‬ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ ﺗﺤﺪﻳﺪ اﻟﺠﺪول اﻟﻤﺮاد اﻻﺗﺼﺎل‬
‫ﺑﻪ ﻋﻦ ﻃﺮﻳﻖ اﻟﺨﺎﺻﻴﺔ ‪RecordSourse‬‬
‫و اﻟﺘﻲ ﻣﻌﻨﺎهﺎ اﻟﺴﺠﻼت اﻟﺘﻲ اود اﺳﺘﺮﺟﺎﻋﻬﺎ‬
‫ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪..‬‬
‫رﺑﻂ ﻣﺮﺑﻌﺎت اﻟﻨﺺ ‪ Textboxes‬ﺑﺤﻘﻮل ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫• ﻳﺘﻢ رﺑﻂ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﺑﻤﺮﺑﻌﺎت اﻟﻨﺺ ‪ Textbox‬ﻋﻦ ﻃﺮﻳﻖ اﻻداة‬
‫ﻓﻴﻬﺎ ‪ ،‬و ﻳﻳﺘﻢﻢ ذﻟﻚ‬
‫اﻟﺒﻴﺎﻧﺎت ﻴﻬ‬
‫ﻮل ﺒﻴ‬‫ﺮض ﺣﻘﻮل‬
‫ﺟﻞ ﻋﺮض‬ ‫ﻦ اﺟﻞ‬
‫‪ Data Control‬ﻣﻦ‬
‫ﺑﺈﺗﺒﺎع اﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫ﻦ ﺧﺼﺎﺋﺺ‬
‫ﺺ‬ ‫اﻟﺨﺎﺻﻴﺔ ‪ DataSource‬ﻣﻦ‬ ‫ﻴ‬ ‫اﺧﺘﺮ ا‬
‫‪ .1‬ا ﺮ‬
‫ﻣﺮﺑﻊ اﻟﻨﺺ اﻟﻤﺮاد ﻋﺮض ﺣﻘﻞ ﻣﻦ اﻟﺒﻴﺎﻧﺎت‬
‫ﻣﻦ ﺧﻼﻟﻪ و ﺿﻊ ﻓﻴﻪ اﺳﻢ اﻟاﻟـ ‪Data Control‬‬
‫اﻟﺘﻲ ﺗﺼﻠﻨﺎ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت )و اﻟﺘﻲ ﺳﻴﻜﻮن اﺳﻤﻬﺎ‬
‫‪. (Data1‬‬
‫اﻟﺴﻴﺎق ‪D 1‬‬ ‫هﺬا اﻟ ﺎ‬
‫ﻓﻓﻲ ﺬا‬
‫‪ .2‬ﻏﻴﺮ اﻟﺨﺎﺻﻴﺔ ‪ DataField‬ﻣﻦ ﺧﺼﺎﺋﺺ ﻣﺮﺑﻊ اﻟﻨﺺ‬
‫اﻟﻰ اﺳﻢ اﻟﺤﻘﻞ اﻟﻤﺮاد ﻋﺮﺿﻪ ‪.‬‬
‫ﻋﺮض اﻟﺒﻴﺎﻧﺎت ﺑـ ‪Data Grid‬‬
‫ﻣﻦ اﻟﻤﻤﻜﻦ آﺬﻟﻚ ﻋﺮض اﻟﺒﻴﺎﻧﺎت داﺧﻞ اداة ﺧﺎﺻﺔ ﺗﻌﺮف ﺑﺎﺳﻢ‬ ‫•‬
‫ﺟﺪول ﻣﺎ ﻓﻲ‬
‫ﻲ‬ ‫ﺮض ﺑﻴﺑﻴﺎﻧﺎت ﺟ و‬
‫ﻴﺰ ﺑﺑﻌﺮض‬
‫ﻲ ﺗﺘﻤﻴﺰ‬
‫‪ Data Bound Grid‬و اﻟﺘﻲ‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻋﻞ ﺷﻜﻞ ﺟﺪول و ذﻟﻚ ﺑﺤﺴﺐ اﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ ‪:‬‬

‫‪ .1‬ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ Project‬ﻧﺨﺘﺮ اﻻﻣﺮ‬


‫‪ ، Component‬و اﻟﺬي ﺳﻴﻈﻬﺮ‬
‫ﻣﺠﻤﻮﻋﺔ اﻻدوات اﻻﺿﺎﻓﻴﺔ اﻟﺘﻲ‬
‫ﻣﻨﻬﺎﺎ اﻻداة‬
‫ﻧﺨﺘﺮ ﻨ‬
‫ﻳﻮﻓﺮهﺎ ‪ ، VB‬و ﻧﺨﺘ‬
‫ﻳ ﻓ هﺎ‬
‫‪ Data Bound Grid‬و ﺑﻌﺪهﺎ‬
‫ﻣﻮاﻓﻖ ‪.‬‬
‫ﻧﻀﻐﻂ اﻓﻖ‬
‫ﻂ‬
‫‪ .2‬ﻣﻦ ﻣﺮﺑﻊ اﻻدوات ﻧﺨﺘﺮ اﻻداة اﻟﺠﺪﻳﺪة ‪.‬‬
‫ﺗﻈﻬﺮ ﻟﻨﺎ اﻻداة ﻋﻠﻰ اﻟﻮاﺟﻬﺔ ‪ Form‬آﻤﺎ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ‪.‬‬ ‫‪.3‬‬

‫اﻵن ﻣﻦ ﺧﺼﺎﺋﺺ اﻻداة ‪ Data Grid‬ﻧﺤﺪد ﻓﻲ اﻟﺨﺎﺻﻴﺔ‬ ‫‪.4‬‬


‫ﺗﺼﻠﻨﺎ ﻘﺎ ة‬
‫ﺑﻘﺎﻋﺪة‬ ‫اﻟﺘﻲ ﺗ ﻠﻨﺎ‬
‫‪ Data‬اﻟﺘ‬
‫‪D t C‬‬‫‪Control‬‬
‫‪ DataSource‬ااﺳﻢ اﻟاﻟـ ‪t l‬‬
‫‪D t S‬‬
‫اﻟﺒﻴﺎﻧﺎت ‪ ،‬و اﻟﺘﻲ ﺳﻴﻜﻮن اﺳﻤﻬﺎ ‪، Data1‬و ذﻟﻚ ﻷن ‪ Data1‬ﺳﻮف‬
‫ﻣﺴﺎر ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ و اﻟﺠﺪول اﻟﻤﻄﻠﻮب ‪.‬‬
‫ﺗﺤﻮي ﻣ ﺎ‬
‫ﺗﺤﻮ‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ ﺳﺠﻼت ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫• إﻧﺸﺎء ﺳﺠﻞ ﺟﺪﻳﺪ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫‪Data1 RecordSet Addnew‬‬
‫‪Data1.RecordSet.Addnew‬‬
‫ﺣﻴﺚ ان ‪:‬‬
‫ﻘﺎﻋﺪة اﻟ ﺎﻧﺎت‬
‫اﻟﺒﻴﺎﻧﺎت‬ ‫ﻠﻨﺎ ﺑﻘﺎﻋﺪة‬
‫اﻟﺘﻲ ﺗﺗﺼﻠﻨﺎ‬
‫‪ : Data1‬ههﻮ ااﺳﻢ اﻟاﻟـ ‪ Data Control‬اﻟﺘ‬
‫اﻟﻤﻄﻠﻮﺑﺔ ‪..‬‬
‫ل اﻟ اد‬
‫اﻟﻤﺮاد‬ ‫ﻟﻠﺠﺪول‬
‫اﻟﺘﺎﺑﻌﺔﺔ ﻟﻠ ﺪ‬
‫اﻟﺴﺠﻼت )اﻟﺘﺎ‬
‫ﻋﺔ اﻟ ﻼت‬ ‫ﻳﻘﺼﺪ ﺑﻪﻪ ﻣﺠﻤﻮﻋﺔ‬
‫‪ : RecordSet‬ﻘ ﺪ‬
‫إﺿﺎﻓﺔ ﺳﺠﻞ اﻟﻴﻪ( و اﻟﺘﻲ ﺗﺮﺗﺒﻂ ﺑﻬﺎ اﻷداة ‪. Data1‬‬

‫• ﺗﻌﺪﻳﻞ ﺑﻴﺎﻧﺎت اﻟﺴﺠﻞ اﻟﺤﺎﻟﻲ ‪:‬‬


‫‪Data1.Recordset.Edit‬‬
‫‪D‬‬ ‫‪t 1R‬‬ ‫‪d t Edit‬‬
‫ﺣﻴﺚ ﻳﻘﻮم هﺬا اﻻﻣﺮ ﺑﺤﻔﻆ اﻟﺘﻌﺪﻳﻼت اﻟﺘﻲ ﺗﺠﺮى ﻋﻠﻰ اﻟﺴﺠﻞ اﻟﺤﺎﻟﻲ ‪.‬‬
‫ﻰ ﺳﺠﻼت ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ‬
‫• ﺣﻔﻆ اﻟﺒﻴﺎﻧﺎت )او اﻟﺘﻌﺪﻳﻼت( ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫‪Data1 RecordSet Update‬‬
‫‪Data1.RecordSet.Update‬‬
‫و هﻲ ﺗﺠﺮى ﺑﻌﺪ ﻋﻤﻠﻴﺔ اﻻﺿﺎﻓﺔ او اﻟﺘﻌﺪﻳﻞ )ﻓﻘﻂ( ﻣﻦ اﺟﻞ ﺣﻔﻆ اﻟﺴﺠﻞ‬
‫اﻟﺒﻴﺎﻧﺎت ‪.‬‬
‫داﺧﻞ ﻗﺎﻗﺎﻋﺪة اﻟ ﺎ ﺎ‬
‫اﻟاﻟﺠﺪﻳﺪ ا ﻞ‬

‫• ﺣﺬف ﺳﺠﻞ ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬


‫‪Data1.Recordset.Delete‬‬
‫‪Data1‬‬ ‫‪Recordset Delete‬‬
‫‪Data1.Refresh‬‬
‫اﻟﺨﺎﺻﻴﺔ ‪R f h‬‬
‫‪Refresh‬‬ ‫اﻟﺤﺎﻟﻲ ‪ ،‬و اﻟ ﺎ ﺔ‬
‫ﻞ اﻟ ﺎﻟ‬
‫ﺬف اﻟاﻟﺴﺠﻞ‬
‫ﻳﻘﻮم ﺑﺤﺬف‬
‫اﻻﻣﺮ ﻘ‬‫هﺬا اﻻ‬
‫ﺚ اان ﺬا‬
‫ﺣﻴﺚ‬
‫ﺗﻘﻮم ﺗﺤﺪﻳﺚ ﺑﻴﺎﻧﺎت ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﺑﻌﺪ ﻋﻤﻠﻴﺔ اﻟﺤﺬف ‪.‬‬
‫ﻰ ﺳﺠﻼت ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ‬
‫• اواﻣﺮ اﻟﺘﻨﻘﻞ ﺑﻴﻦ اﻟﺴﺠﻼت ‪:‬‬
‫‪Data1 Recordset MoveFirst‬‬
‫‪Data1.Recordset.MoveFirst‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻻول‬

‫‪Data1.Recordset.MoveLast‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻷﺧﻴﺮ‬

‫‪Data1.Recordset.MoveNext‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻟﺘﺎﻟﻲ‬

‫‪Data1.Recordset.MovePrevious‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻟﺴﺎﺑﻖ‬

‫))‪Data1.Recordset.Move ((#no‬‬ ‫اﻟﻤﺮور ﻋﻠﻰ اﻟﺴﺠﻼت‬


‫ﻗﻴﻤﺔ ‪#no‬‬
‫ﺑﺤﺴﺐ ﻗ ﺔ‬
‫ﻰ ﺳﺠﻼت ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ‬
‫• اواﻣﺮ اﻟﺒﺤﺚ ﺑﻴﻦ اﻟﺴﺠﻼت ‪:‬‬
‫‪D t 1R‬‬
‫اﻟﺒﺤﺚ(‪Data1.Recordset.‬‬ ‫‪) " col_name‬ﻃ ﻘﺔ‬
‫)ﻃﺮﻳﻘﺔ اﻟ ﺚ( ‪d t‬‬ ‫‪l‬‬ ‫" ’اﻟ ﻄﻠ‬
‫اﻟﻤﻄﻠﻮب‘ =‬
‫ﺣﻴﺚ ان ‪ col_name‬هﻮ اﺳﻢ اﻟﻌﻤﻮد )ﻓﻲ اﻟﺠﺪول( اﻟﻤﻄﻠﻮب اﻟﺒﺤﺚ ﺑﻴﻦ ﺣﻘﻮﻟﻪ‬
‫ﻳﻠﻲ ‪:‬‬
‫ﻋﻦ اﻟﻘﻴﻤﺔ اﻟﻤﻄﻠﻮﺑﺔ ‪ ...‬و ﻃﺮق اﻟﺒﺤﺚ آﻤﺎ ﻳﻠ‬
‫‪Data1.Recordset.FindFirst‬‬ ‫اول ﺳﺠﻞ ﻳﻄﺎﺑﻖ اﻟﻤﻄﻠﻮب ﻣﻦ اﻟﺒﺤﺚ‬

‫‪Data1.Recordset.FindLast‬‬ ‫اﺧﺮ ﺳﺠﻞ ﻳﻄﺎﺑﻖ اﻟﻤﻄﻠﻮب ﻣﻦ اﻟﺒﺤﺚ‬

‫‪Data1.Recordset.FindNext‬‬ ‫اﻟﺴﺠﻞ اﻟﺘﺎﻟﻲ اﻟﺬي ﻳﻄﺎﺑﻖ اﻟﻤﻄﻠﻮب ﻣﻦ اﻟﺒﺤﺚ‬

‫‪Data1.Recordset.FindPrevious‬‬ ‫اﻟﺴﺠﻞ اﻟﺴﺎﺑﻖ اﻟﺬي ﻳﻄﺎﺑﻖ اﻟﻤﻄﻠﻮب ﻣﻦ اﻟﺒﺤﺚ‬


‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ ﺳﺠﻼت ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫• اﻣﺮ اﻟﻮﺻﻮل اﻟﻰ ﻋﻤﻮد ﻓﻲ اﻟﺠﺪول ‪:‬‬
‫]اﺳﻢ اﻟﻌﻤﻮد[!‪Data1 RecordSet‬‬
‫اﻟﻌﻤﻮد[!‪Data1.RecordSet‬‬
‫ﻣﺜﺎل ‪:‬‬
‫]‪RecordSet![name‬‬
‫[!‪Data1.RecordSet‬‬
‫‪Data1‬‬
‫• اﻟﺪاﻟﺔ ‪ (Data1. Recordset. EOF ) EOF‬ﺗﻌﻴﺪ اﻟﻘﻴﻤﺔ ‪True‬‬
‫اﻟﺠﺪول ‪.‬‬
‫ﻞ ﻓﻓﻲ اﻟ ﺪ ل‬
‫اﺧﺮ ﺳﺠﻞ‬
‫اﻟﻤﺆﺷﺮ ﻋﻨﺪ اﺧ‬
‫اذا آﺎن اﻟ ﺆﺷ‬

‫‪T‬‬
‫‪True‬‬ ‫‪ (Data1.‬ﺗﻌﻴﺪ اﻟﻘ ﺔ‬
‫اﻟﻘﻴﻤﺔ‬ ‫‪D t 1 Recordset.‬‬
‫‪R‬‬ ‫اﻟﺪاﻟﺔ ‪d t BOF ) BOF‬‬ ‫• اﻟ اﻟﺔ‬
‫اذا آﺎن اﻟﻤﺆﺷﺮ ﻋﻨﺪ اول ﺳﺠﻞ ﻓﻲ اﻟﺠﺪول ‪.‬‬

‫• اﻟﺪاﻟﺔ ‪ Exclusive‬ﺗﺤﺪد ﻣﺎ اذا آﺎن اﻵﺧﺮون ﻳﺴﺘﻄﻴﻌﻮن اﻟﺘﻌﺎﻣﻞ ﻣﻊ‬


‫)‪(Data1.Exclusive‬‬
‫ﻟﻬﺎ ) ‪D t 1 E l i‬‬ ‫ﻖﻟ ﺎ‬
‫اﻟﺘﻄﺒﻴﻖ‬
‫اﺳﺘﺨﺪام اﻟﺘﻄ‬
‫اﺛﻨﺎء ا ﺘ ا‬
‫اﻟﺒﻴﺎﻧﺎت اﺛ ﺎ‬
‫ﻗﺎﻗﺎﻋﺪة اﻟ ﺎ ﺎ‬
‫ﺗﻄﺒﻴﻘﺎت ﻋﻤﻠﻴﺔ‬
‫ ﻹﺿﺎﻓﺔ ﺳﺠﻞ اﻟﻰ ﺟﺪول )اﻟﺒﻴﺎﻧﺎت ﻣﻮﺟﻮدة ﻓﻲ‬: ‫• اﻟﺘﻄﺒﻴﻖ اﻻول‬
. ( !! ‫ﻣﺮﺑﻌﺎت ﻧﺺ ﻏﻴﺮ ﻣﺮﺗﺒﻄﺔ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬

Data1.
D 1 Recordset.
R d AddN
AddNew
Data1. Recordset![name] = Txt1.Text
Data1. Recordset![address] = Txt2.Text
Data1 Recordset![phone] = Txt3.Text
Data1. Txt3 Text
Data1. Recordset. Update
‫ﺗﻄﺒﻴﻘﺎت ﻋﻤﻠﻴﺔ‬
‫ اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻟﺘﺎﻟﻲ و ﻋﺮض اﻟﺒﻴﺎﻧﺎت ﻓﻲ‬: ‫• اﻟﺘﻄﺒﻴﻖ اﻟﺜﺎﻧﻲ‬
. ‫ﻣﺮﺑﻌﺎت ﻧﺺ ﻏﻴﺮ ﻣﺮﺗﺒﻄﺔ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
If Data1. Recordset. EOF Then
M B " ‫ﺳﺠﻞ‬
MsgBox ‫هﺬا ﺁﺁﺧﺮ ﻞ‬
‫" ﺬا‬
Else
Data1. Recordset. MoveNext
Txt1 Text = Data1.
Txt1. Data1 Recordset![name]
Txt2. Text = Data1. Recordset![address]
T t3 Text
Txt3. T t = Data1.
D t 1 Recordset![phone]
R d t![ h ]
‫ﺗﻄﺒﻴﻘﺎت ﻋﻤﻠﻴﺔ‬
: ‫ اﻟﺒﺤﺚ ﻋﻦ ﺳﺠﻞ ﻣﻌﻴﻦ ﺑﺤﺴﺐ اﺳﻢ اﻟﺸﺨﺺ‬: ‫• اﻟﺘﻄﺒﻴﻖ اﻟﺜﺎﻟﺚ‬
Dim name,str As String

name = InputBox(" ‫اﻟﻤﻄﻠﻮب‬


‫" أأدﺧﻞ اﻻﺳﻢ ﻄ‬, " ‫) " ﺑﺤﺚ‬

If Len(( name)) = 0 Then


MsgBox " ‫“ﻟﻢ ﺗﻘﻢ ﺑﺈدﺧﺎل أي ﺑﻴﺎﻧﺎت‬
Exit Sub
End If

str= "name= ‘ “ + name + “ ' “ ‘ str = (name = ‘ ‫)’ اﻻﺳﻢ اﻟﻤﻄﻠﻮب‬


D t 1R d t Fi dFi t str
Data1.Recordset.FindFirst ‫ﻳﻘﻮم هﺬا اﻷﻣﺮ ﺑﺎﻟﺒﺤﺚ ﻋﻦ‬
If Data1.Recordset.NoMatch = True Then ، ‫اول ﺳﺠﻞ ﻳﻄﺎﺑﻖ اﻟﺒﺤﺚ‬
MsgBox " ‫"هﺬا اﻻﺳﻢ ﻏﻴﺮ ﻣﻮﺟﻮد‬ ‫اﻟﻤﺆﺷﺮﺮ ﻋﻨﺪﻩ‬
‫وﺟﺪﻩ ﻳﻳﻘﻒ ﺆ‬‫ﺈن وﺟ‬
‫ﻓﺈن‬
Else
Txt1. Text = Data1. Recordset![name] True ‫ﻳﻘﻮم هﺬا اﻷﻣﺮ ﺑﺈﻋﺎدة‬
Txt2. Text = Data1. Recordset![[ address]] ‫ﻓﻲ ﺣﺎﻟﺔ اﻧﻪ ﻟﻢ ﻳﺠﺪ أي ﺳﺠﻞ‬
Txt3. Text = Data1. Recordset![ phone] ‫ﻣﻄﺎﺑﻖ ﻟﻠﺒﺤﺚ‬
End If
‫اﻟﺮﺑﻂ ﺑﺎﻷداة ‪ADODC‬‬
‫اﻷداة ‪ ADODC‬هﻲ اﺧﺘﺼﺎر ﻟــ ‪، ADO Data Control‬‬ ‫•‬
‫ﺑﻘﻮاﻋﺪ‬
‫ﻟﻼرﺗﺒﺎط ﺑ ﻮ‬
‫اﻟﻤﻬﻤﺔ ر ﺒ‬
‫اﻟﺤﺪﻳﺜﺔ ﻬ‬
‫ﻳ‬ ‫اﻟﺘﻘﻨﻴﺎت‬
‫ﻦ ﻴ‬ ‫ﺒﺮ ‪ ADO‬ﻣﻦ‬ ‫ﺣﻴﺚ ﺗﻌﺘﺒﺮ‬
‫ﻴ‬
‫اﻟﺒﻴﺎﻧﺎت و اﻟﺘﻲ ﻳﺘﻢ اﺳﺘﺨﺪاﻣﻬﺎ ﻟﻴﺲ ﻓﺤﺴﺐ ﻓﻲ ﻟﻐﺔ ‪ VB‬و ﻟﻜﻦ ﻓﻲ‬
‫اﻟﻌﺪﻳﺪ ﻣﻦ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ ‪ .‬ﻃﺮﻳﻘﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻷداة ‪ ADODC‬ﻻ‬
‫اﻷداة ‪ Data Control‬ﻏﻴﺮ اﻧﻬﺎ‬ ‫ﺗﺨﺘﻠﻒ ﻋﻦ ﻃﺮﻳﻘﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻷ‬
‫ﺗﺘﻴﺢ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت اﻟﺤﺪﻳﺜﺔ ﻣﻦ ﻗﻮاﻋﺪ ﺑﻴﺎﻧﺎت ‪Access‬‬
‫ﻗﻮاﻋﺪ‬
‫ﻞ ﻣﻊ ﻗ ا‬‫ﺗﺘﻌﺎﻣﻞ‬
‫اﻟﺘﻲ ﻻ ﺗﺘ ﺎ‬
‫‪ Data‬اﻟﺘ‬
‫‪D t C‬‬‫‪Control‬‬‫اﻷداة ‪t l‬‬
‫ﻋﻜﺲ اﻷ اة‬
‫ﻋﻠﻰ ﻜ‬ ‫ﻠ‬
‫ﺑﻴﺎﻧﺎت اﺣﺪث ﻣﻦ ‪.Access97‬‬
‫آﻤﺎ ﻠﻳﻠﻲ ‪:‬‬
‫اﻟﻤﺸﺮوع آ ﺎ‬
‫ﻘﺔ اﺿﺎﻓﺔ اﻷداة ‪ ADODC‬إﻟإﻟﻰ اﻟ ﺸ ع‬
‫ﻃﻃﺮﻳﻘﺔ‬ ‫•‬
‫‪ .1‬ﻧﺨﺘﺎر اﻻﻣﺮ ‪ Component‬ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺰر اﻷﻳﻤﻦ‬
‫ﻟﻠﻔﺄرة ﻓﻲ ﻣﺮﺑﻊ اﻻدوات ﻣﻦ اﺟﻞ اﺧﺘﻴﺎر‬
‫ﺄ‬
‫اﻻداة ﻣﻦ ﻣﺮﺑﻊ اﻟﺤﻮار ‪. Component‬‬
‫اﻟﺤﻮارر ‪Component‬‬
‫ﺮﺑﻊ ﻮ‬ ‫ﻦ ﻣﺮﺑﻊ‬
‫‪ .2‬ﻣﻦ‬
‫ﻧﻘﻮم ﺑﺎﺧﺘﻴﺎر اﻻداة ‪:‬‬
‫)‪MICROSOFT ADO DATA CONTROL 6. 0 (OLEDB‬‬

‫‪ .3‬ﺑﻌﺪ اﻟﻀﻐﻂ ﻋﻠﻰ زر ﻣﻮاﻓﻖ ‪ ،‬ﺗﺘﻢ إﺿﺎﻓﺔ اﻻداة‬


‫ع‪.‬‬
‫ﻰ ﻣﻠﻒ اﻟﻤﺸﺮوع‬
‫إﻟﻰ‬

‫ﻧﻘﻮم ﺑﺈﺿﺎﻓﺔ اﻻداة إﻟإﻟﻰ اﻟاﻟـ ‪.Form‬‬


‫اﺧﻴﺮا ‪ ،‬ﻧﻘﻮ‬
‫‪ .4‬و اﺧﻴﺮاً‬

‫و ﻳﺒﻘﻰ ﻣﻌﻨﺎ ﺧﻄﻮات رﺑﻂ اﻻداة ‪ ADODC‬ﺑﻘﺎﻋﺪة‬


‫اﻟﺒﻴﺎﻧﺎت اﻟﻤﺮاد اﻻرﺗﺒﺎط ﺑﻬﺎ ‪..‬‬
‫ﺧﻄﻮات رﺑﻂ اﻻداة ‪ ADOBC‬ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫ﺑﻌﺪ ان ﺗﻤﺖ ﻋﻤﻠﻴﺔ اﺿﺎﻓﺔ اﻻداة ‪ ADODC‬إﻟﻰ اﻟﻤﺸﺮوع ﻧﻘﻮم ﺑﺮﺑﻄﻬﺎ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫اﻟﻤﻄﻠﻮب اﻻرﺗﺒﺎط ﺑﻬﺎ ‪.‬‬

‫ﺛﺎﻧﻴ ًﺎ ‪ :‬ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ زر‬ ‫او ًﻻ ‪ :‬ﻳﺘﻢ ﺿﺒﻂ ﺧﺼﺎﺋﺺ‬


‫اﻟﺬي أ‬
‫ﻳﺒﺪأ‬ ‫‪ Build‬و اﻟﺬ‬
‫‪B ild‬‬ ‫ﺧﺼﺎﺋﺺ‬
‫ﺑﺎﻟﺪﺧﻮلل إﻟإﻟﻰ ﺧ ﺎﺋ‬
‫اة ﺎﻟ ﺧ‬
‫اﻷداة‬
‫اﻷ‬
‫ﺳﻠﺴﻠﺔ ﺧﻄﻮات اﻻرﺗﺒﺎط‬ ‫اﻷداة ﻣﻦ اﻟﻘﺎﺋﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ‪.‬‬
‫ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫راﺑﻌ ًﺎ ‪ :‬ﻧﺤﺪد ﻣﺴﺎر ﻗﺎﻋﺪة‬


‫ﺛﺎﻟﺜ ًﺎ ‪ :‬ﻓﻲ ﺑﺪاﻳﺔ اﻻﺗﺼﺎل‬
‫اﻟﺒﻴﺎﻧﺎت ‪ Access‬اﻟﺘﻲ‬
‫ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻧﺤﺪد‬
‫ﺳﻴﺘﻢ اﻻرﺗﺒﺎط ﺑﻬﺎ ‪ ،‬و ﺑﻌﺪ‬
‫اﻟﻤﺤﺮك( اﻟﻤﺮاد‬
‫اﻟاﻟﻤﺰود )اﻟ ك‬
‫ذﻟﻚ ﻧﻀﻐﻂ ﻋﻠﻰ زر اﺧﺘﺒﺎر‬
‫اﻻﺗﺼﺎل ﺑﻪ ‪ ..‬و هﻨﺎ ﻧﺤﺪد‬
‫اﻻﺗﺼﺎل ﻟﻠﺘﺄآﺪ ان اﻻﺗﺼﺎل‬
‫اﻻﺗﺼﺎل ﺑـ ‪.Access‬‬
‫ﻗﺪ ﺗﻢ ‪.‬‬
‫ﺗﺎﺑﻊ ﺧﻄﻮات رﺑﻂ اﻻداة ‪ ADODC‬ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫ﺳﺎدﺳ ًﺎ ‪ :‬ﺑﻌﺪ ذﻟﻚ ﺳﻨﻌﻮد إﻟﻰ‬ ‫ﺧﺎﻣﺴ ًﺎ ‪ :‬ﻓﻲ ﺣﺎﻟﺔ ان‬
‫ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ ﻣﻦ ﺟﺪﻳﺪ ‪،‬‬ ‫ﻓﺬ‬ ‫اﻻﺗﺼﺎل ﺗﻢ ﺑﻨﺠﺎح ‪ ،‬ﺳﻮف‬
‫و ﺑﻬﺎ ﺗﻔﺎﺻﻴﻞ اﻻرﺗﺒﺎط ‪،‬‬ ‫ﺗﻈﻬﺮ ﻟﻨﺎ اﻟﻨﺎﻓﺬة اﻟﻈﺎهﺮة‬
‫ﺑﻌﺪهﺎ ﻧﺨﺘﺎر اﻟﺘﺒﻮﻳﺐ‬ ‫ﻓﻲ اﻟﺸﻜﻞ ‪ ،‬ﻓﻨﻀﻐﻂ ﻋﻠﻰ‬
‫ﻰ‬ ‫ﻲ‬
‫‪RecordSource‬‬ ‫زر ﻣﻮاﻓﻖ‪.‬‬

‫اﺧﻴﺮًا ‪ ،‬ﺣﺪد ان ﻧﻮع اﻻواﻣﺮ ‪ Command Type‬ﺳﻴﻜﻮن‬


‫ﺣﺪد اﻟﺠﺪول‬
‫اﻻوﻟﻰ ‪ ،‬ﺛﺛﻢ ﺪد‬
‫اﻟﻤﻨﺴﺪﻟﺔ اﻻ ﻟ‬
‫اﻟﻘﺎﺋﻤﺔﺔ اﻟ ﻨ ﺪﻟﺔ‬
‫ﻣﻦ اﻟﻘﺎﺋ‬
‫اﻟﺠﺪاولل ﻦ‬
‫ﻋﻠﻰ اﻟ ﺪا‬
‫ﻋﻠ‬
‫اﻟﺬي ﺳﻴﺘﻢ اﻻرﺗﺒﺎط ﺑﻪ ‪ ،‬و ﻣﻦ اﻟﻤﻤﻜﻦ اﺳﺘﺨﺪام ﺟﻤﻞ ‪SQL‬‬
‫ﻲ ﺳﻴﺘﻢﻢ اﻻرﺗﺒﺎط ﺑﻬﺎ ﺑﺎﺳﺘﺨﺪامم‬
‫ع اﻟﺴﺠﻼت اﻟﺘﻲ‬ ‫ﻣﻦ اﺟﻞ اﺳﺘﺮﺟﺎع‬
‫ﺟﻤﻠﺔ ‪ Select‬ﻣﻤﺎ ﻳﺘﺢ ﻟﻨﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اآﺜﺮ ﻣﻦ ﺟﺪول ﻓﻲ‬
‫ﻧﻔﺲ اﻟﻮﻗﺖ ) آﻴﻒ؟ (‪.‬‬
‫ﻋﺮض اﻟﺒﻴﺎﻧﺎت ﺑـ ‪ Text BOXES‬و ‪DataGrid‬‬
‫ﻳﺘﻢ ﻋﺮض ﺑﻴﺎﻧﺎت ﺣﻘﻮل اﻟﺠﺪول اﻟﺬي ﺗﻢ اﻻرﺗﺒﺎط ﺑﻪ ﺑﺎﻷداة‬ ‫•‬
‫ذآﺮهﺎ‬
‫ﻲ ﺗﻢﻢ ﺮ‬‫اﻟﻄﺮﻳﻘﺔ اﻟﺘﻲ‬
‫ﺲ ﺮﻳ‬ ‫ﺺ ﺑﺑﻨﻔﺲ‬
‫ﻣﺮﺑﻌﺎت اﻟﻨﺺ‬
‫‪ ADODC‬ﺑﺑﺎﺳﺘﺨﺪامم ﺮﺑ‬
‫ﻋﻨﺪ رﺑﻂ ﻣﺮﺑﻌﺎت اﻟﻨﺺ ﺑﺎﻷداة ‪) Data Control‬اﻟﺨﺎﺻﻴﺔ‬
‫‪ Data Source‬ﻟﺘﺤﺪﻳﺪ اداة اﻟﺮﺑﻂ ‪ ADODC‬و اﻟﺨﺎﺻﻴﺔ‬
‫‪ Data Filed‬ﻟﺘﺤﺪﻳﺪ اﻟﺤﻘﻞ( ‪.‬‬

‫ﻣﻦ اﻟﻤﻤﻜﻦ آﺬﻟﻚ ﻋﺮض اﻟﺒﻴﺎﻧﺎت داﺧﻞ اداة ﺧﺎﺻﺔ ﺗﻌﺮف ﺑﺎﺳﻢ‬ ‫•‬
‫‪) DataGrid‬ﻟﻴﺴﺖ اﻻداة ‪ Data Bound Grid‬اﻟﺘﻲ ﺗﻢ‬
‫اﺳﺘﺨﺪاﻣﻬﺎ ﻣﻊ اﻻداة ‪ Data Control‬و ﻟﻜﻨﻬﺎ ﺗﺮﺑﻂ ﺑﻨﻔﺲ اﻟﻄﺮﻳﻘﺔ‬
‫و ذﻟﻚ ﺑﺘﻐﻴﺮ اﻟﺨﺎﺻﻴﺔ ‪ Data Source‬إﻟﻰ اداة اﻟﺮﺑﻂ‬
‫ل ﻣﺎﺎ ﻓﻓﻲ‬
‫ﺎﻧﺎت ﺟﺪول‬
‫ض ﺑﻴﺎﻧﺎت‬
‫‪ (ADODC1‬و هﻲ آﺬﻟﻚ ﺗﺘﺗﺘﻤﻴﺰﺰ ﺑﻌﺮض‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻋﻞ ﺷﻜﻞ ﺟﺪول ‪ ،‬و ﻳﺘﻢ اﺧﺘﻴﺎرهﺎ ﻣﻦ‬
‫‪ Component‬ﺑﺈﺿﺎﻓﺔ اﻻداة ‪Microsoft DataGrid‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ اﻷداة ‪ADODC‬‬
‫• إﻧﺸﺎء ﺳﺠﻞ ﺟﺪﻳﺪ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫‪ADODC1 R‬‬
‫‪ADODC1.RecordSet.Addnew‬‬
‫‪dS t Add‬‬

‫ﺣﻴﺚ ان ‪:‬‬
‫‪ : ADODC1‬هﻮ اﺳﻢ اﻟـ ‪ ADODC‬اﻟﺘﻲ ﺗﺼﻠﻨﺎ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫اﻟﻤﻄﻠﻮﺑﺔ ‪..‬‬
‫ﻟﻠﺠﺪول اﻟ اد‬
‫اﻟﻤﺮاد‬ ‫اﻟﺘﺎﺑﻌﺔ ﻟﻠ ﺪ ل‬
‫اﻟﺴﺠﻼت )اﻟﺘﺎ ﺔ‬
‫ﻣﺠﻤﻮﻋﺔ اﻟ ﻼت‬
‫ﺔ‬ ‫ﺑﻪ‬
‫ﻳﻘﺼﺪ ﻪ‬
‫‪ : RecordSet‬ﻘ ﺪ‬
‫إﺿﺎﻓﺔ ﺳﺠﻞ اﻟﻴﻪ( و اﻟﺘﻲ ﺗﺮﺗﺒﻂ ﺑﻬﺎ اﻷداة ‪. ADODC1‬‬
‫ﻰ اﻷداة ‪ADODC‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ‬
‫• ﺣﻔﻆ اﻟﺒﻴﺎﻧﺎت )او اﻟﺘﻌﺪﻳﻼت( ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫‪ADODC1 RecordSet Update‬‬
‫‪ADODC1.RecordSet.Update‬‬
‫و هﻲ ﺗﺠﺮى ﺑﻌﺪ ﻋﻤﻠﻴﺔ اﻻﺿﺎﻓﺔ او اﻟﺘﻌﺪﻳﻞ )ﻓﻘﻂ( ﻣﻦ اﺟﻞ ﺣﻔﻆ اﻟﺴﺠﻞ‬
‫اﻟﺒﻴﺎﻧﺎت ‪.‬‬
‫داﺧﻞ ﻗﺎﻗﺎﻋﺪة اﻟ ﺎ ﺎ‬
‫اﻟاﻟﺠﺪﻳﺪ ا ﻞ‬

‫• ﺣﺬف ﺳﺠﻞ ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬


‫‪ADODC1 Recordset Delete‬‬
‫‪ADODC1.Recordset.Delete‬‬
‫‪ADODC1.Refresh‬‬
‫اﻟﺨﺎﺻﻴﺔ ‪R f h‬‬
‫‪Refresh‬‬ ‫اﻟﺤﺎﻟﻲ ‪ ،‬و اﻟ ﺎ ﺔ‬
‫ﻞ اﻟ ﺎﻟ‬
‫ﺬف اﻟاﻟﺴﺠﻞ‬
‫ﻳﻘﻮم ﺑﺤﺬف‬
‫اﻻﻣﺮ ﻘ‬
‫هﺬا اﻻ‬
‫ﺚ اان ﺬا‬
‫ﺣﻴﺚ‬
‫ﺗﻘﻮم ﺗﺤﺪﻳﺚ ﺑﻴﺎﻧﺎت ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﺑﻌﺪ ﻋﻤﻠﻴﺔ اﻟﺤﺬف ‪.‬‬
‫ﻰ اﻷداة ‪ADODC‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ‬
‫• اواﻣﺮ اﻟﺘﻨﻘﻞ ﺑﻴﻦ اﻟﺴﺠﻼت ‪:‬‬
‫‪ADODC1 Recordset MoveFirst‬‬
‫‪ADODC1.Recordset.MoveFirst‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻻول‬

‫‪ADODC1.Recordset.MoveLast‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻷﺧﻴﺮ‬

‫‪ADODC1.Recordset.MoveNext‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻟﺘﺎﻟﻲ‬

‫‪ADODC1.Recordset.MovePrevious‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻟﺴﺎﺑﻖ‬

‫))‪ADODC1.Recordset.Move ((#no‬‬ ‫اﻟﻤﺮور ﻋﻠﻰ اﻟﺴﺠﻼت‬


‫ﻗﻴﻤﺔ ‪#no‬‬
‫ﺑﺤﺴﺐ ﻗ ﺔ‬
‫ﻰ اﻷداة ‪ADODC‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ‬
‫• اﻣﺮ اﻟﺒﺤﺚ ﺑﻴﻦ اﻟﺴﺠﻼت هﻮ اﻻﻣﺮ ‪ Find‬و اﻟﺬي ﻳﺤﺘﻮي ﻋﻠﻰ ارﺑﻊ‬
‫ري ‪:‬‬
‫اﺧﺘﻴﺎري‬
‫اﻟﺒﻘﻴﺔ ﻴ‬
‫ﻲو ﺒﻴ‬ ‫اﻟﺰاﻣﻲ‬
‫اوﻟﻬﺎ ﺰ‬
‫ﺒﺮ و ﻬ‬
‫ووﺳﺎﺋﻂ ‪ ،‬ﻳﻳﻌﺘﺒﺮ‬
‫‪ِADODC1.Recordset.Find 1 , 2 , 3 , 4‬‬

‫‪ /2‬ﻧﻘﻄﺔ ﺑﺪاﻳﺔ اﻟﺒﺤﺚ‬ ‫‪ /3‬اﺗﺠﺎﻩ اﻟﺒﺤﺚ و هﻮ‬


‫‪ /1‬اﺳﻢ اﻟﻌﻤﻮد و‬ ‫اﺣﺪ ﺧﻴﺎرﻳﻦ ‪:‬‬ ‫‪ /4‬ﻧﻘﻄﺔ ﺑﺪاﻳﺔ اﻟﺒﺤﺚ‬
‫و ﺗﻮﺿﻊ ‪ 0‬اﻓﺘﺮاﺿﻴﺎً‬
‫اﻓﺘﺮاﺿﻴﺎ‬
‫اﻟﺤﻘﻞ اﻟﻤﺮاد اﻟﺒﺤﺚ‬ ‫‪adSearchBackward‬‬ ‫و ﻟﻜﻨﻨﺎ ﻧﺤﺪد هﻨﺎ‬
‫او ﻳﺘﻢ اﻟﺒﺪء ﻓﻲ اﻟﺒﺤﺚ‬
‫ﻋﻨﻪ ‪:‬‬ ‫أي وﺻﻮ ًﻻ إﻟﻰ اول ﺳﺠﻞ‬ ‫ﻣﻦ أي ﺻﻒ ﺳﻮف‬
‫ﻣﻦ اﻟﻨﻘﻄﺔ اﻟﻤﺘﻮﻗﻒ‬ ‫‪adSearchForward‬‬
‫” ’‪“Name= ‘Ali‬‬ ‫ﻳﺒﺪأ اﻟﺒﺤﺚ‬
‫ﻋﻨﺪهﺎ اﻟﻤﺆﺷﺮ ﺣﺎﻟﻴ ًﺎ‬
‫ﺣﺎﻟﻴﺎ‬ ‫أي وﺻﻮ ًﻻ إﻟﻰ اﺧﺮ ﺳﺠﻞ‬

‫ﻣﺜﺎل ‪:‬‬
‫‪Adodc1.Recordset.Find " Name = 'Ali' ", 0, adSearchForward, 1‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ اﻷداة ‪ADODC‬‬
‫• اﻣﺮ اﻟﻮﺻﻮل اﻟﻰ اﻟﺤﻘﻞ اﻟﻤﺸﺎر اﻟﻴﻪ ﺣﺎﻟﻴ ًﺎ ﻣﻦ ﻋﻤﻮد ﻓﻲ اﻟﺠﺪول ‪:‬‬
‫]ا]اﺳﻢ اﻟ د[!‪ADODC1 RecordSet‬‬
‫اﻟﻌﻤﻮد[!‪ADODC1.RecordSet‬‬
‫ﻣﺜﺎل ‪:‬‬
‫]‪ADODC1.RecordSet![name‬‬

‫• اﻟﺪاﻟﺔ ‪ (ADODC1. Recordset. EOF ) EOF‬ﺗﻌﻴﺪ اﻟﻘﻴﻤﺔ‬


‫‪ True‬اذا آﺎن اﻟﻤﺆﺷﺮ ﻋﻨﺪ اﺧﺮ ﺳﺠﻞ ﻓﻲ اﻟﺠﺪول ‪.‬‬

‫‪ (ADODC1.‬ﺗﻌﻴﺪ اﻟﻘ ﺔ‬
‫اﻟﻘﻴﻤﺔ‬ ‫‪ADODC1 Recordset.‬‬
‫‪R‬‬ ‫اﻟﺪاﻟﺔ ‪d t BOF ) BOF‬‬ ‫• اﻟ اﻟﺔ‬
‫‪ True‬اذا آﺎن اﻟﻤﺆﺷﺮ ﻋﻨﺪ اول ﺳﺠﻞ ﻓﻲ اﻟﺠﺪول ‪.‬‬
‫اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻋﻦ ﻃﺮﻳﻖ اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫ﺗﻌﻠﻤﻨﺎ ﻓﻲ اﻟﻤﻮﺿﻮع اﻟﺴﺎﺑﻖ آﻴﻔﻴﺔ اﻻﺗﺼﺎل و اﻟﺘﻌﺎﻣﻞ ﻣﻊ‬ ‫•‬
‫ﺑﺎﺳﺘﺨﺪام اﻷداة ‪ ، ADODC‬و ﻓﻓﻲ هﺬا‬
‫ﺎﻧﺎت ﺎ ﺘﺨﺪا‬
‫ﺪة اﻟاﻟﺒﻴﺎﻧﺎت‬
‫ﻗﺎﻗﺎﻋﺪة‬
‫اﻟﺪرس ﺳﻮف ﻧﺘﻌﻠﻢ – إن ﺷﺎء اﷲ – آﻴﻔﻴﺔ اﻻﺗﺼﺎل و‬
‫ل ﻟاﻟﻤﻜﺘﺒﺔ ‪ ADO‬ﻟاﻟﺘﻲ‬ ‫ﻞ ﻣﻊ ﻗﺎﻋﺪة ﻟاﻟﺒﻴﺎﻧﺎت ﻣﻊ ﺧﻼل‬ ‫ﻟاﻟﺘﻌﺎﻣﻞ‬
‫ﻳﻮﻓﺮهﺎ ﻟﻨﺎ ‪. Visual Basic‬‬
‫اﻟﻤﻜﺘﺒﺔ ‪ ADO‬ﺗﻌﺘﺒﺮ اﻷﺳﻠﻮب اﻟﺠﺪﻳﺪ ‪ -‬ﻗﺒﻞ اﻷداة اﻟﺠﺪﻳﺪة‬ ‫•‬
‫‪ - ADO.NET‬ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪ اﻟﺒﻴﺎﻧﺎت ‪ ،‬ﻓﻤﺜﻼ ﻳﻤﻜﻨﻨﺎ‬
‫‪ADO NET‬‬
‫اﻻﺗﺼﺎل وﻗﺮاءة ﻣﺤﺘﻮﻳﺎت ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت اآﺴﺲ ‪Access‬‬
‫ﺔ‬
‫ﺧﺪﻣﺔ‬ ‫ﺗﻮﻓﺮ‬
‫اﻟﻤﻜﺘﺒﺔﺔ ﻓ‬
‫ﻓﻬﺬﻩ اﻟ ﻜ‬
‫‪ Access‬ﻓ ﺬ‬
‫‪A‬‬ ‫اﻟﺤﺎﺟﺔﺔ ﻟﻟﻮﺟﻮد‬
‫ﺑﺪون اﻟ ﺎ‬
‫اﻻﺗﺼﺎل واﻹﺟﺮاءات اﻟﻤﺨﺘﻠﻔﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪.‬‬
‫اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻋﻦ ﻃﺮﻳﻖ اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫ﺧﻄﻮات اﺿﺎﻓﺔ اﻟﻤﻜﺘﺒﺔ إﻟﻰ ﻣﻠﻒ اﻟﻤﺸﺮوع آﻤﺎ ﻳﻠﻲ ‪:‬‬
‫ل اﻟﻘﺎﺋﻤﺔ ‪ Project‬ﻧﺨﺘﺎرر ‪References‬‬ ‫ﻦ ﺧﻼل‬
‫‪ .1‬ﻣﻦ‬
‫ﻓﺘﻈﻬﺮ ﻟﻨﺎ اﻟﻨﺎﻓﺬة ‪ References – Project1‬و‬
‫ﻋﺪﻳﺪة ‪ ،‬ﻣﺎﺎ ﻳﻬﻤﻨﺎﻨﺎ ﻨ ﺎ‬
‫ﻣﻨﻬﺎ‬ ‫ﺎت ﺪ ﺪة‬
‫ﻣﻜﺘﺒﺎت‬
‫ﻋﻠﻰ ﻜﺘ‬
‫ﺗﺤﺘﻮي ﻠ‬
‫اﻟﺘﻲ ﺗ ﺘ‬
‫اﻟﺘ‬
‫هﻮ ﻣﻜﺘﺒﺔ ‪. ADO‬‬
‫‪ .2‬ﻧﻘﻮم ﺑﺎﺧﺘﻴﺎر اﻟﻤﻜﺘﺒﺔ ‪:‬‬
‫‪Microsoft ActiveX Data Objects‬‬
‫‪j‬‬ ‫‪2.X Library‬‬
‫‪y‬‬
‫ﺣﻴﺚ ان اﻟـ ‪ X‬ﻳﻌﺒﺮ ﻋﻦ اﻹﺻﺪار اﻟﻤﺜﺒﺖ ﻋﻠﻰ‬
‫اﻻﺻﺪارات و‬
‫ﺟﻬﺎزك ‪ ،‬ﻓﺄﺧﺘﺮ اﺣﺪ هﺬﻩ اﻻ ﺪارات‬
‫اﺿﻐﻂ ﻣﻮاﻓﻖ ﻟﻴﺘﻢ اﺿﺎﻓﺔ اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫إﻟﻰ ﻣﻠﻒ اﻟﻤﺸﺮوع ‪.‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫او ًﻻ ‪ :‬ﻋﻤﻠﻴﺔ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫ﻣﻨﻪ ههﻮ‬
‫ﻣﺘﻐﻴﺮ ﻳﻌﺒﺮ ﻋﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬اﻟﻬﺪف ﻨﻪ‬
‫ﻳﻦ ﺘﻐﻴﺮ‬‫ﺗﻜﻮﻳﻦ‬
‫ﻳﺘﻳﺘﻢ ﻓﻓﻲ اﻟﺒﺪاﻳﺔ ﺗﻜ‬
‫ﺗﻮﺻﻴﻒ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬ﺑﻤﻌﻨﻰ ﻣﻦ هﻮ ﻣﺰود )ﻣﺤﺮك(‬
‫آﻤﺎ ﻳﻠﻳﻠﻲ ‪:‬‬
‫ﻣﺴﺎر ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬آ ﺎ‬
‫ﻣﺎ ههﻮ ﺎ‬ ‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت و ﺎ‬
‫) ﻣﺘﻐﻴﺮ ﻋﺎم ( ‪Dim db As New ADODB.Connection‬‬
‫ﺣﻴﺚ ‪ db‬ﻳﻌﺘﺒﺮ ﻣﺘﻐﻴﺮ )آﺎﺋﻦ ﺑﺎﻟﻤﻌﻨﻰ اﻻﺻﺢ( ‪ ،‬و هﺬا اﻟﻜﺎﺋﻦ ﻳﺴﺘﺨﺪم‬
‫ﻟﺘﻮﺻﻴﻒ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت آﻤﺎ ﻳﻠﻲ ‪:‬‬
‫";‪db.Provider = "Microsoft.JET.OLEDB.4.0‬‬
‫اﻟﺨﺎﺻﻴﺔ ‪Provider‬‬
‫‪db Open “c:\db1‬‬
‫‪db.Open‬‬ ‫‪c:\db1.mdb‬‬
‫" ‪mdb‬‬ ‫اﻟﺨﺎﺻﻴﺔ ‪Open‬‬
‫ﺔ‬ ‫ﺗﻌﻨﻲ ﻣﺰود )ﻣﺤﺮك(‬
‫ﺗﺴﺘﺨﺪم ﻟﺘﺤﺪﻳﺪ‬ ‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫ﻣﺴﺎر ﻗﺎﻋﺪة‬ ‫و اﻟﺘﻲ هﻲ ﻗﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت‬ ‫ﺑﻴﺎﻧﺎت ‪Access‬‬
‫ﻣﻼﺣﻈﺎت ﻋﻨﺪ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫اﻟﺠﻤﻠﺔ ‪:‬‬
‫اﻟ ﻠﺔ‬ ‫•‬
‫" ;‪db.Provider = "Microsoft.JET.OLEDB.4.0‬‬
‫ﺗﺴﺘﺨﺪم ﻟﻼﺗﺼﺎل ﺑﻘﺎﻋﺪة ﺑﻴﺎﻧﺎت ﻣﻦ ﻧﻮع ‪ ، Access‬و ﻋﻨﺪ اﻻﺗﺼﺎل‬
‫ﺑﻘﺎﻋﺪة ﺑﻴﺎﻧﺎت ‪ SQL‬ﻧﺴﺘﺨﺪم ‪:‬‬
‫" ;‪db.Provider = " SQLOLEDB. 1‬‬
‫ﻼ ‪ jam‬هﻮ اﺳﻢ‬ ‫ﻓﻲ ﺣﺎﻟﺔ ان آﺎﻧﺖ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻣﺤﻤﻴﺔ ﺑﻜﻠﻤﺔ ﻣﺮور ) ﻣﺜ ً‬ ‫•‬
‫اﻟﻤﺴﺘﺨﺪم و آﻠﻤﺔ اﻟﻤﺮور هﻲ ‪ (123‬ﻧﻘﻮم ﺑﻔﺘﺢ اﻟﺠﺪاول آﻤﺎ ﻳﻠﻲ ‪:‬‬
‫‪db.Open‬‬
‫‪p "c:\SALE.mdb", "userID='jam'",‬‬ ‫‪j‬‬ ‫“‪"password=123‬‬
‫‪p‬‬
‫• ﻣﻦ اﻟﻤﻤﻜﻦ اﺧﺘﺼﺎر ﺟﻤﻠﺘﻲ ﺗﺨﺼﻴﺺ اﻟﻤﺰود و ﻓﺘﺢ ﺟﺪول ﻣﻦ ﻗﺎﻋﺪة‬
‫ﻲ ﺳﺘﻜﻮن ‪:‬‬‫‪ ConnectionString‬و اﻟﺘﻲ‬ ‫اﻟﺒﻴﺎﻧﺎت ﺑﺈﺳﺘﺨﺪامم اﻟﺨﺎﺻﻴﺔ ‪g‬‬
‫‪db. ConnectionString = "provider =microsoft. jet.‬‬
‫‪OLEDB. 4. 0;data‬‬ ‫;‬ ‫"‪source= c:\SALE.mdb‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫ﺛﺎﻧﻴ ًﺎ ‪ :‬ﻋﻤﻠﻴﺔ ﻓﺘﺢ ﺟﺪول ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫ﺳﻴﺘﻢﻢ‬
‫ﻲ ﻴ‬‫اﻟﺴﺠﻼت( اﻟﺘﻲ‬
‫ﻣﺠﻤﻮﻋﺔ ﺠ‬ ‫ول ) ﺠ ﻮ‬ ‫اﻟﺠﺪول‬
‫ﻦ ﺠ‬ ‫ﺒﺮ ﻋﻦ‬
‫ﻴﺮ ﻳﻳﻌﺒﺮ‬
‫ﻮﻳﻦ ﻣﺘﻐﻴﺮ‬
‫ﻳﻳﺘﻢﻢ ﺗﻜﻮﻳﻦ‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت آﻤﺎ ﻳﻠﻲ ‪:‬‬
‫) ﻣﺘﻐﻴﺮ ﻋﺎم ( ‪ADODB Recordset‬‬
‫‪Dim rs As New ADODB.Recordset‬‬
‫ﺣﻴﺚ ‪ rs‬ﻳﻌﺘﺒﺮ ﻣﺘﻐﻴﺮ )آﺎﺋﻦ ﺑﺎﻟﻤﻌﻨﻰ اﻻﺻﺢ( ‪ ،‬و هﺬا اﻟﻜﺎﺋﻦ ﻳﺴﺘﺨﺪم‬
‫ﻣﻦ ا ﻞ‬
‫اﺟﻞ‬ ‫ﺑﻬﺎ ﻦ‬
‫اﻻرﺗﺒﺎط ﺎ‬
‫اﻟﺘﻲ ﺘﻳﺘﻢ اﻻ ﺗ ﺎط‬
‫اﻟﺠﺪول( اﻟﺘ‬
‫اﻟﺴﺠﻼت )اﻟ ﺪ ل‬
‫ﻟﺘﺤﺪﻳﺪﺪ ﻣﺠﻤﻮﻋﺔﺔ اﻟ ﻼت‬
‫ﻟﺘ ﺪ‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ ‪:‬‬
‫اﻟﺠﺪول” ‪rs.Open‬‬
‫‪,‬ﻣﺘﻐﻴﺮ ﻗﺎﻋﺪة ﻟاﻟﺒﻴﺎﻧﺎت ‪",‬اﺳﻢ ﻟ ل‬
‫ع اﻟﺴﺠﻼت‬ ‫ع اﻟﺘﺰاﻣﻦ اﻟﻤﻄﻠﻮب ‪,‬ﻧﻮع‬ ‫ﻧﻮع‬
‫ﻣﺜﺎل ‪:‬‬
‫"]‪rs Open "[Table1‬‬
‫‪rs.Open‬‬ ‫‪[Table1] , db,‬‬
‫‪db adOpenStatic‬‬
‫‪adOpenStatic, adLockReadOnly‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫ﺛﺎﻧﻴ ًﺎ ‪ :‬ﺗﺎﺑﻊ ﻋﻤﻠﻴﺔ ﻓﺘﺢ ﺟﺪول ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫‪rs Open 1,‬‬
‫‪rs.Open‬‬ ‫‪1 2,3,4‬‬

‫ﻧﻮع اﻟﺴﺠﻼت اﻟﻤﺮﺗﺒﻄﺔ ‪:‬‬ ‫ﻦ‪:‬‬


‫اﻟﺘﺰاﻣﻦ‬
‫ﻮع ﺰ‬ ‫ﻧﻮع‬
‫‪adOpenDynamic‬‬ ‫‪adLockBatchOptimistic‬‬
‫اﺳﻢ اﻟﻤﺘﻐﻴﺮ اﻟﺬي ﺗﻢ‬ ‫ﻏﻠﻖ اﻟﺴﺠﻞ ﻣﻦ اﻻﺧﺮﻳﻦ اﺛﻨﺎء‬
‫ﺗﻌﺎﻣﻞ ﻣﺒﺎﺷﺮة ﻣﻦ اﻟﺴﺠﻼت‬
‫اﺳﻢﻢ اﻟﺠﺪول اﻟﻤﺮاد‬ ‫ﻦ ﻧﻮع‬
‫ﻮع‬ ‫ﺗﻌﺮﻳﻔﺔ ﻣﻦ‬
‫ﺮﻳ‬ ‫اﻟﺴﻴﺮﻓﺮﺮ‬
‫ع ﻴﺮ‬ ‫ﺛﻢ اﻃﻼع‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ‪ ،‬ﻢ‬
‫ﻞ‬
‫اﻟﺤﻘﻴﻘﺔ‬
‫اﻻﺗﺼﺎل ﺑﻪ‬ ‫‪ADODB.Connection‬‬
‫‪adOpenForwardOnly‬‬ ‫ﻋﻠﻰ اﻟﺘﺤﺪﻳﺚ‬
‫ﺑﺎﻟﺘﺤﺮك داﺧﻞ اﻟﺴﺠﻼت ﻓﻲ‬ ‫‪adLockOptimistic‬‬
‫اﻻﺗﺠﺎﻩ ﻟﻸﻣﺎم ﻓﻘﻂ‬ ‫ﻏﻠﻖ اﻟﺴﺠﻞ ﻣﻦ اﻻﺧﺮﻳﻦ اﺛﻨﺎء‬
‫‪adOpenKeyset‬‬ ‫اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ‬
‫ﻟﻠﻘﺮاءة ﻓﻘﻂ ﻣﻊ اﻟﺘﻌﺪﻳﻞ‬ ‫‪adLockPessimistic‬‬
‫‪adOpenStatic‬‬ ‫ﻏﻠﻖ اﻟﺴﺠﻞ اﺛﻨﺎء اﻟﺘﻌﺪﻳﻞ ﻓﻘﻂ‬
‫ﻟﻠﻘﺮاءة ﻓﻘﻂ‬ ‫‪adLockReadOnly‬‬
‫اﻟﺴﺠﻞ ﻟﻠﻘﺮاءة ﻓﻘﻂ‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫ﻋﻤﻠﻴﺔ ﻓﺘﺢ ﺟﺪول )ﺟﺪاول ( ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام ﺟﻤﻞ ‪:SQL‬‬
‫ع اﻟﺴﺠﻼت اﻟﻤﺮاد‬ ‫ﻳﺘﻴﺢ ﻣﺮوﻧﺔ آﺒﻴﺮة ﻣﻦ اﺟﻞ اﺳﺘﺮﺟﺎع‬ ‫اﺳﺘﺨﺪامم ﺟﻤﻞ ‪ SQL‬ﺢ‬ ‫•‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ ‪ ،‬ﺣﻴﺚ اﻧﻨﺎ ﻧﺴﺘﻄﻴﻊ هﻨﺎ ان ﻧﺤﺪد اﻻﻋﻤﺪة اﻟﻤﺮاد اﺳﺘﺮﺟﺎﻋﻬﺎ ‪،‬‬
‫او اﺳﺘﺨﺪام اﻟﺸﺮط ‪ Where‬ﻟﺘﺤﺪﻳﺪ اﻟﺴﺠﻼت اﻟﻤﺮاد اﺳﺘﺮﺟﻌﻬﺎ و آﺬﻟﻚ‬
‫اﻟﺠﺪول( و‬
‫ﻋﻼﻗﺔ ﺑﻴﻦ اﻟ ل‬
‫ﺑﺸﺮط وﺟﻮد ﻼﻗﺔ‬ ‫ﺟﺪول ) ﺸ ط‬
‫ل‬ ‫اآﺜﺮ ﻣﻦ‬
‫اﻟﺴﺠﻼت ﻣﻦ اآﺜ‬
‫اﺳﺘﺮﺟﺎع اﻟ ﻼ‬
‫ا ﺘ ﺎ‬
‫ذﻟﻚ ﺑﺎﺳﺘﺨﺪام ‪. JOIN‬‬
‫اﻟﺒﻴﺎﻧﺎت ‪: (SALE‬‬
‫ﻋﻠﻰ ﻗﺎﻗﺎﻋﺪة اﻟ ﺎ ﺎ‬
‫ﺜﻠﺔ ﻠ‬
‫اﻷﻣﺜﻠﺔ‬
‫اﺳﺘﺮﺟﺎع ااﻋﻤﺪة ﻣﺤﺪدة )اﻷ‬
‫ﻣﺜﺎل )‪ : (1‬ا ﺘ ﺎ‬
‫ﺜﺎل‬
‫‪rs.Open "select CustomeName,Country from Customer",‬‬
‫‪db adOpenKeyset adLockReadOnly‬‬
‫‪db,adOpenKeyset,‬‬
‫ﻣﺜﺎل )‪ : (2‬اﺳﺘﺮﺟﺎع ﺳﺠﻼت ﻣﻦ ﺟﺪاول ﺑﻴﻨﻬﺎ ﻋﻼﻗﺔ ‪:‬‬
‫‪rs.Open‬‬
‫‪rs‬‬ ‫‪Open “select Customer.CustomeName,Orders.OrderDate‬‬
‫‪Customer CustomeName Orders OrderDate‬‬
‫‪FROM Customer INNER JOIN Orders ON‬‬
‫‪Customer.CustomerID = Orders.CustomerID",‬‬
‫‪db,adOpenKeyset, adLockReadOnly‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫اﺳﺘﻌﺮاض ﺑﻴﺎﻧﺎت ﺣﻘﻮل اﻟﺠﺪاول ‪:‬‬
‫ﺣﺎﻟﻴ ًﺎ هﻮﻮ ‪:‬‬
‫اﻟﻴﻪ ﻴ‬
‫ﺠﻞ اﻟﻤﺸﺎرر ﻴ‬
‫ﻲ اﻟﺴﺠﻞ‬
‫ﻰ ﺣﻘﻞﻞ ﻓﻲ‬
‫اﻟﻮﺻﻮل إإﻟﻰ‬
‫اﻣﺮ ﻮ ﻮل‬
‫ﺮ‬ ‫•‬
‫]اﺳﻢ اﻟﻌﻤﻮد[!‪rs‬‬
‫ﺣﻴﺚ ‪ rs‬هﻮ اﺳﻢ اﻟﻤﺘﻐﻴﺮ )اﻟﻜﺎﺋﻦ( اﻟﺬي ﺗﻢ ﺗﻌﺮﻳﻔﻪ ﻣﻦ ﻧﻮع ‪:‬‬
‫‪ADODB.Recordset‬‬
‫ﻻﺣﻆ اﻧﻪ ﻋﻨﺪ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻜﺘﺒﻪ ‪ ADO‬ﺳﻮف ﺗﺨﺘﺼﺮ اواﻣﺮ اﻻداة‬ ‫•‬
‫‪ ADODC‬اﻟﺘﻲ ﺗﺤﻮي ‪ ADODC1.Recordset‬إﻟﻰ اﺳﻢ اﻟﻤﺘﻐﻴﺮ‬
‫ﺑﻘﻴﺔ‬
‫ﻮع ‪ ADODB.Recordset‬ﺛﻢﻢ ﺑ ﻴ‬ ‫ﻦ ﻧﻮع‬‫ﺗﻌﺮﻳﻔﻪ ﻣﻦ‬
‫ي ﺗﻢﻢ ﺮﻳ‬
‫ﻦ( ‪ rs‬ااﻟﺬي‬‫)ااﻟﻜﺎﺋﻦ‬
‫اﻻواﻣﺮ اﻟﻤﻌﺘﺎدة ‪.‬‬
‫• ﻣﺜﺎل ﻟﻌﺮض ﺑﻴﺎﻧﺎت اﻟﺤﻘﻞ ‪: ID‬‬
‫]‪If Not IsNull(rs![ID]) Then Text1 = rs![ID‬‬
‫ﺣﻴﺚ ان اﻟﻐﺮض ﻣﻦ ‪ Not IsNull‬هﻮ اﻟﺘﺄآﺪ ﻣﻦ اﻟﺤﻘﻞ اﻟﺬي ﺗﺗﻢ ارﺟﺎﻋﻪ ﻟﻴﺲ ﻓﺎرﻏﺎً‬
‫ﻓﺎرﻏﺎ‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫• إﻧﺸﺎء ﺳﺠﻞ ﺟﺪﻳﺪ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫‪rs Addnew‬‬
‫‪rs.Addnew‬‬
‫ﺣﻴﺚ ان ‪:‬‬
‫‪ : rs‬هﻮ اﻟﻜﺎﺋﻦ اﻟﻤﻌﺮف ﻣﻦ ﻧﻮع ‪ADODB.Recordset‬‬
‫اﻟﺒﻴﺎﻧﺎت‬
‫ﻣﻦ ﺧﻼﻟﻪ اﻟﺘﻌﺎﻣﻞ ﻣﻊﻊ ﺑﻴﺑﻴﺎﻧﺎت ﻗﺎﻋﺪة ﺒﻴ‬
‫ﺳﻴﺠﺮى ﻦ‬
‫اﻟﺬي ﻴﺠﺮى‬
‫و ي‬
‫اﻟﺘﻲ ﺗﻢ اﻻﺗﺼﺎل ﺑﻬﺎ ‪.‬‬
‫• ﺗﻌﺪﻳﻞ ﺑﻴﺎﻧﺎت اﻟﺴﺠﻞ اﻟﺤﺎﻟﻲ ‪:‬‬
‫‪rs.Update‬‬
‫ﺣﻴﺚ ﻳﻘﻮم هﺬا اﻻﻣﺮ ﺑﺤﻔﻆ اﻟﺘﻌﺪﻳﻼت اﻟﺘﻲ ﺗﺠﺮى ﻋﻠﻰ اﻟﺴﺠﻞ‬
‫اﻟﺤﺎﻟﻲ ‪.‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫• ﺣﺬف ﺳﺠﻞ ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫‪rs.Delete‬‬
‫‪D l t‬‬
‫‪rs.MoveNext‬‬
‫ﺣﻴﺚ ان هﺬا اﻻﻣﺮ ﻳﻘﻮم ﺑﺤﺬف اﻟﺴﺠﻞ اﻟﺤﺎﻟﻲ ‪ ،‬و اﻟﺨﺎﺻﻴﺔ‬
‫ﻲ ﺑﻌﺪ اﻟﺤﺬف‪.‬‬
‫ﻰ اﻟﺴﺠﻞ اﻟﺘﺎﻟﻲ‬ ‫‪ MoveNext‬ﺗﻘﻮمم م‬
‫ﺗﻘﻮم ﺑﺎﻻﻧﺘﻘﺎل اﻟﻰ‬

‫‪ (rs.‬ﺗﻌﻴﺪ اﻟﻘﻴﻤﺔ ‪ True‬اذا آﺎن اﻟﻤﺆﺷﺮ ﻋﻨﺪ‬


‫• اﻟﺪاﻟﺔ ‪rs EOF ) EOF‬‬
‫اﺧﺮ ﺳﺠﻞ ﻓﻲ اﻟﺠﺪول ‪.‬‬
‫ﻋﻨﺪ‬
‫اﻟﻤﺆﺷﺮ ﻨ‬
‫آﺎن اﻟ ﺷ‬
‫‪ True‬اذا آﺎ‬
‫‪T‬‬ ‫اﻟﺪاﻟﺔ ‪ (rs. BOF ) BOF‬ﺗﺗﻌﻴﺪ اﻟﻘ ﺔ‬
‫اﻟﻘﻴﻤﺔ‬ ‫• اﻟ اﻟﺔ‬
‫اول ﺳﺠﻞ ﻓﻲ اﻟﺠﺪول ‪.‬‬
‫ﺗﻄﺒﻴﻘﺎت ﻋﻤﻠﻴﺔ‬
‫اﻋﺘﺒﺎر ان اﻟﺒﻴﺎﻧﺎت اﻟاﻟﻤﺮاد‬
‫اد‬ ‫ﻋﻠﻰ اﻋﺘﺒﺎ‬
‫ﻠﻴﺔ اﻻﺿﺎﻓﺔ ‪ ،‬ﻋﻠ‬
‫ﻋﻤﻠﻴﺔ‬
‫• اﻟﺘﻄﺒﻴﻖ )‪ : (1‬ﻋ‬
‫اﺿﺎﻓﺘﻬﺎ ﻣﻮﺟﻮدة ﻓﻲ ﻣﺮﺑﻌﺎت اﻟﻨﺼﻮص ‪: Text Boxes‬‬
‫‪rs. AddNew‬‬
‫‪AddN‬‬
‫‪rs![name] = Txt1‬‬
‫‪rs![ address] = Txt2‬‬
‫‪rs![ phone] = Txt3‬‬
‫‪rs. Update‬‬
‫اﻟﺒﻴﺎﻧﺎت‬
‫ن ﺒﻴ‬ ‫اﻋﺘﺒﺎرر ان‬
‫ﻰ ﺒ‬ ‫اﻟﺘﻌﺪﻳﻼت(‪،‬ﻋﻠﻰ‬
‫ﻳﻼ‬ ‫ﻳﻞ )ﺣﻔﻆ‬
‫ﻋﻤﻠﻴﺔ اﻟﺘﻌﺪﻳﻞ‬
‫ﺒﻴﻖ )‪ : (2‬ﻴ‬
‫• اﻟﺘﻄﺒﻴﻖ‬
‫اﻟﻤﺮاد ﺗﻌﺪﻳﻠﻬﺎ و ﺣﻔﻆ اﻟﺘﻌﺪﻳﻞ ﻣﻮﺟﻮدة ﻓﻲ ﻣﺮﺑﻌﺎت اﻟﻨﺼﻮص ‪:‬‬
‫‪rs![name] = Txt1‬‬
‫‪rs![address] = Txt2‬‬
‫]‪rs![phone‬‬
‫‪![ h‬‬ ‫‪] = Txt3‬‬
‫‪T t3‬‬
‫‪rs. Update‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫• ذآﺮﻧﺎ ﺳﺎﺑﻘًﺎ ان اﻻﻣﺮ ] [!‪ rs‬هﻮ ﻟﻠﻮﺻﻮل إﻟﻰ ﺣﻘﻞ اﻟﻤﺸﺎر اﻟﻴﻪ ﻣﻦ‬
‫اﻟﻌﻤﻮد ‪ ،‬و آﺬﻟﻚ ﻳﻤﻜﻦ اﻟﻮﺻﻮل اﻟﻰ اﻟﺤﻘﻞ اﻟﻤﺸﺎر اﻟﻴﻪ ﺣﺎﻟﻴًﺎ ﻣﻦ ﻋﻤﻮد‬
‫ﻓﻲ اﻟﺠﺪول ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫(‬
‫)‪rs.Fields(#no‬‬ ‫)‬
‫ﺣﻴﺚ ان ‪ #no‬ﺗﻤﺜﻞ رﻗﻢ اﻟﻌﻤﻮد ﺑﺤﺴﺐ ﺗﺮﺗﻴﺐ اﺳﺘﺮﺟﺎﻋﻪ ﻣﻦ ﻗﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت ‪ ،‬ﻣﺜﺎلل ‪:‬‬
‫ﺒﻴ‬
‫)‪rs.Fields(0‬‬ ‫ﻟﻠﺪﻻﻟﺔ ﻋﻠﻰ اﻧﻨﺎ ﻧﺮﻳﺪ اﻟﻮﺻﻮل‬
‫إﻟﻰ ﺣﻘﻞ اول ﻋﻤﻮد ﺗﻢ اﺳﺘﺮﺟﺎﻋﻪ‬

‫• و آﺬﻟﻚ ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻄﺮﻳﻘﺔ اﻟﺘﺎﻟﻴﺔ ‪:‬‬


‫]اﺳﻢ اﻟﻌﻤﻮد[!‪rs.Fields‬‬
‫اﻟﻴﻪ ‪:‬‬
‫ي ﻳﻳﺸﺎرر ﻴ‬
‫اﻟﻘﻴﻤﺔ اﻟﺤﻘﻞ اﻟﺬي‬
‫ع ﻴ‬ ‫ﻟﻼﺳﺘﺮﺟﺎع‬
‫ﺮ‬ ‫و‬
‫‪] . Value‬اﺳﻢ اﻟﻌﻤﻮد[!‪Text1.text= rs.Fields‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫• اواﻣﺮ اﻟﺘﻨﻘﻞ ﺑﻴﻦ اﻟﺴﺠﻼت ‪:‬‬
‫‪rs MoveFirst‬‬
‫‪rs.MoveFirst‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻻول‬

‫‪rs.MoveLast‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻷﺧﻴﺮ‬

‫‪rs.MoveNext‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻟﺘﺎﻟﻲ‬

‫‪rs.MovePrevious‬‬ ‫اﻻﻧﺘﻘﺎل اﻟﻰ اﻟﺴﺠﻞ اﻟﺴﺎﺑﻖ‬

‫))‪rs.Move ((#no‬‬ ‫اﻟﻤﺮور ﻋﻠﻰ اﻟﺴﺠﻼت‬


‫ﻗﻴﻤﺔ ‪#no‬‬
‫ﺑﺤﺴﺐ ﻗ ﺔ‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫• اﻣﺮ اﻟﺒﺤﺚ ﺑﻴﻦ اﻟﺴﺠﻼت هﻮ اﻻﻣﺮ ‪ Find‬و اﻟﺬي ﻳﺤﺘﻮي ﻋﻠﻰ‬
‫ري ‪:‬‬
‫اﺧﺘﻴﺎري‬
‫اﻟﺒﻘﻴﺔ ﻴ‬
‫اﻟﺰاﻣﻲ و ﺒ ﻴ‬
‫اوﻟﻬﺎ ﺰ ﻲ‬
‫ﺒﺮ و ﻬ‬
‫ارﺑﻊ ووﺳﺎﺋﻂ ‪ ،‬ﻳﻳﻌﺘﺒﺮ‬
‫رﺑﻊ‬
‫‪ِrs.Find 1 , 2 , 3 , 4‬‬

‫‪ /2‬ﻧﻘﻄﺔ ﺑﺪاﻳﺔ اﻟﺒﺤﺚ‬ ‫‪ /3‬اﺗﺠﺎﻩ اﻟﺒﺤﺚ و هﻮ‬


‫‪ /1‬اﺳﻢ اﻟﻌﻤﻮد و‬ ‫اﺣﺪ ﺧﻴﺎرﻳﻦ ‪:‬‬ ‫‪ /4‬ﻧﻘﻄﺔ ﺑﺪاﻳﺔ اﻟﺒﺤﺚ‬
‫و ﺗﻮﺿﻊ ‪ 0‬اﻓﺘﺮاﺿﻴﺎً‬
‫اﻓﺘﺮاﺿﻴﺎ‬
‫اﻟﺤﻘﻞ اﻟﻤﺮاد اﻟﺒﺤﺚ‬ ‫‪adSearchBackward‬‬ ‫و ﻟﻜﻨﻨﺎ ﻧﺤﺪد هﻨﺎ‬
‫او ﻳﺘﻢ اﻟﺒﺪء ﻓﻲ اﻟﺒﺤﺚ‬
‫ﻋﻨﻪ ‪:‬‬ ‫أي وﺻﻮ ًﻻ إﻟﻰ اول ﺳﺠﻞ‬ ‫ﻣﻦ أي ﺻﻒ ﺳﻮف‬
‫ﻣﻦ اﻟﻨﻘﻄﺔ اﻟﻤﺘﻮﻗﻒ‬ ‫‪adSearchForward‬‬
‫” ’‪“Name= ‘Ali‬‬ ‫ﻳﺒﺪأ اﻟﺒﺤﺚ‬
‫ﻋﻨﺪهﺎ اﻟﻤﺆﺷﺮ ﺣﺎﻟﻴ ًﺎ‬
‫ﺣﺎﻟﻴﺎ‬ ‫أي وﺻﻮ ًﻻ إﻟﻰ اﺧﺮ ﺳﺠﻞ‬

‫ﻣﺜﺎلل ‪:‬‬
‫‪rs.Find " Name = 'Ali' ", 0, adSearchForward, 1‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫• اﻻﻣﺮ ‪ Find‬ﻳﺴﺘﺮﺟﻊ ﺳﺠﻞ وﺣﻴﺪ ﻣﻦ اﻟﺴﺠﻼت اﻟﺘﻲ ﺗﻢ اﻻرﺗﺒﺎط ﺑﻬﺎ‬
‫ﺑﺎﺳﺘﺨﺪامم اﻟﻜﺎﺋﻦ ‪ ، rs‬و ﻟﻜﻦ ﻣﺎذا اذا اردﻧﺎ ان ﻧﺴﺘﺮﺟﻊﻊ اآﺜﺮ ﻣﻦ ﺳﺠﻞ‬
‫اﺛﻨﺎء ﻋﻤﻠﻴﺔ اﻟﺒﺤﺚ ؟ اﻻﻣﺮ اﻟﺬي ﻳﺴﺘﺨﺪم ﻟﺬﻟﻚ هﻮ اﺳﺘﺨﺪام اﻟﺨﺎﺻﻴﺔ‬
‫‪ ، Filter‬آﻤﺎ ﻳﻠﻲ ‪:‬‬
‫“'اﻟﻴﻤﻦ‘ = ‪rs.Filter = "Country‬‬
‫ﺣﻴﺚ ان اﻟﺴﺠﻼت اﻟﺘﻲ ﺗﻢ اﺳﺘﺮﺟﻌﻬﺎ ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام اﻻﻣﺮ‬
‫‪ rs.Open‬ﺳﻮف ﻳﺘﻢ ﺗﺼﻔﻴﺘﻬﺎ )ﻓﻠﺘﺮاﺗﻬﺎ( إﻟﻰ اﻟﺴﺠﻼت اﻟﺘﻲ ﻗﻴﻤﺔ اﻟﺤﻘﻞ‬
‫ﻓﻴﻬﺎ ‘اﻟﻴﻤﻦ’ ﻣﻦ اﻟﻌﻤﻮد ‪. Country‬‬
‫ﺑﺎﻟﺘﺄﺛﻴﺮ ﻋﻠﻰ ﺑﻴﺎﻧﺎت‬
‫ﻻﺣﻆ ان ﻋﻤﻠﻴﺔ اﻟﺘﺼﻔﻴﺔ ﺑﺎﺳﺘﺨﺪام اﻻﻣﺮ ‪ Filter‬ﺗﻘﻮم ﺄ‬
‫اﻟﺘﻲ ﺗﻢ اﺳﺘﺮﺟﻌﻬﺎ ﺑﺎﺳﺘﺨﺪام ‪ ، rs.Open‬و ﻣﻦ اﺟﻞ اﻟﻐﺎء ﻋﻤﻠﻴﺔ اﻟﺘﺼﻔﻴﺔ‬
‫اﻻﻣﺮ‬
‫ﺑﺎﺳﺘﺨﺪام اﻻ‬
‫اﺳﺘﺮﺟﺎﻋﻬﺎ ﺎ ﺘﺨ ا‬
‫اﻟﺘﻲ ﺗﺗﻢ ا ﺘ ﺎ ﺎ‬‫اﻻﺻﻠﻴﺔ اﻟﺘ‬
‫ﻼت اﻻ ﻠ ﺔ‬
‫اﻟﻌﻮدة إﻟإﻟﻰ اﻟاﻟﺴﺠﻼت‬
‫هﺬﻩ ‪ ،‬و اﻟ ة‬
‫ﺬ‬
‫‪ rs.Open‬ﻧﻘﻮم ﺑﺎﻟﺘﺎﻟﻲ ‪:‬‬
‫‪rs.Filter‬‬
‫"" = ‪Filt‬‬
‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬

‫اﻟﺘﻲ ﺗﻢ‬
‫‪ rs.RecordCount‬ﻟﻤﻌﺮﻓﺔ ﻋﺪد اﻟﺴﺠﻼت اﻟﺘ‬
‫• ﻳﺴﺘﺨﺪم اﻻﻣﺮ ‪rs RecordCount‬‬
‫اﺳﺘﺮﺟﺎﻋﻬﺎ ﺑﺎﺳﺘﺨﺪام اﻻﻣﺮ ‪ rs.Open‬او اﻻﻣﺮ ‪. rs.Filter‬‬

‫• اﻻﻣﺮ ‪ db.Close‬ﻳﺴﺘﺨﺪم ﻟﻐﻠﻖ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬ﺣﻴﺚ ان ‪ db‬هﻮ‬


‫اﻟﻤﺘﻐﻴﺮ )اﻟﻜﺎﺋﻦ( اﻟﺬي ﺗﻢ ﺗﻌﺮﻳﻔﻪ ‪ ADODB.Connection‬ﻣﻦ اﺟﻞ‬
‫ﺗﻮﺻﻴﻒ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪.‬‬
‫ﻋﺮض اﻟﺒﻴﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪ADO‬‬
‫• ﻋﻨﺪﻣﺎ ﺗﺤﺪﺛﻨﺎﻋﻦ اﻻداة ‪ ADODC‬ﻋﺮﻓﻨﺎ اﻧﻪ ﻣﻦ اﻟﻤﻤﻜﻦ ﻋﺮض‬
‫ﻲ ﺗﺘﻤﻴﺰ‬
‫ﻴﺰ‬ ‫ﺗﻌﺮف ﺑﺑﺎﺳﻢﻢ ‪ DataGrid‬ووهﻲ‬ ‫اﻟﺒﻴﺎﻧﺎت داﺧﻞ اداة ﺧﺎﺻﺔ ﺮ‬ ‫ﺒﻴ‬
‫ﺑﻌﺮض اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ ﺷﻜﻞ ﺟﺪول ‪ ،‬و ﻣﻦ اﻟﻤﻤﻜﻦ اﻳﻀًﺎ اﺳﺘﺨﺪاﻣﻬﺎ‬
‫ﻣﻊ اﻟﻤﻜﺘﺒﺔ ‪ ، ADODB‬و ﻳﺘﻢ اﺧﺘﻴﺎرهﺎ ﻣﻦ ‪Component‬‬
‫ﺑﺈﺿﺎﻓﺔ اﻻداة ‪: Microsoft DataGrid‬‬
‫• و ﻣﻦ اﺟﻞ ﻋﺮض اﻟﺒﻴﺎﻧﺎت ﻓﻲ اﻟـ ‪ DataGrid‬ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ‬
‫‪ ADO‬ﻓﺈن اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺬي ﻳﻠﺰﻣﻨﺎ هﻮ ‪:‬‬
‫‪db.CursorLocation = adUseClient‬‬ ‫ﻟﻺﺷﺎرة إﻟﻰ ان ﺟﻬﺔ‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة اﻟ ﺎﻧﺎت‬
‫اﻟﺒﻴﺎﻧﺎت‬ ‫اﻟﺘ ﺎ ﻞ‬
‫‪Set DataGrid1.DataSource = rs‬‬ ‫ﻟﻴﺴﺖ ‪ Server‬ﺑﻞ ‪Client‬‬
‫ﻧﺮﻳﺪ ان‬
‫ن‬ ‫ﻧﺴﺘﺨﺪم اﻻﻣﺮﺮ ‪ Set‬ﻋﻨﺪﻣﺎ ﺮﻳ‬
‫م‬ ‫آﺎﺋﻦ و ﻟﺬﻟﻚ‬
‫ﻳﻌﺘﺒﺮ ﻦ‬
‫ن ‪ rs‬ﻳ ﺒﺮ‬ ‫ﺣﻴﺚ ان‬ ‫ﻴ‬
‫ﻻ ﻳﺘﻢ اﺿﺎﻓﺔ اﻟـ ‪DataGrid‬‬ ‫ﻧﺴﻨﺪ آﺎﺋﻦ إﻟﻰ اﺧﺮ ‪) .‬ﻻﺣﻆ اﻧﻪ او ً‬
‫إﻟﻰ اﻟﻔﻮرم( ‪.‬‬
‫ﻋﺮض اﻟﺒﻴﺎﻧﺎت ﻓﻲ ‪ DataList‬و ‪ComboList‬‬
‫ﻣﻦ اﻟﻤﻤﻜﻦ آﺬﻟﻚ ﻋﺮض اﻟﺤﻘﻮل داﺧﻞ ﻗﻮاﺋﻢ ﻣﻨﺴﺪﻟﺔ ‪ ،‬و ﻳﺴﺘﻔﺎد ﻣﻦ‬ ‫•‬
‫ذﻟﻚ ﻓﻲ ﺗﻘﻴﺪ ﻋﻤﻠﻴﺔ ادﺧﺎل اﻟﺒﻴﺎﻧﺎت ﻣﻦ اﻟﻤﺴﺘﺨﺪم و ذﻟﻚ ﺑﺎﻻﻋﺘﻤﺎد‬
‫ﻋﻠﻰ ﺟﺪاول اﻟﺘﺮﻣﻴﺰ )وﺿﺢ اآﺜﺮ ؟( ‪.‬‬
‫ﻞﻋ ض‬
‫ﻋﺮض‬ ‫ﻦ ااﺟﻞ‬‫ﺗﺴﺘﺨﺪم اﻻداﺗﺎن ‪ DataList‬و ‪ ComboList‬ﻣﻦ‬ ‫ﺗ ﺘﺨﺪ‬ ‫•‬
‫اﻟﺒﻴﺎﻧﺎت داﺧﻞ ﻗﻮاﺋﻢ ﻣﻨﺴﺪﻟﺔ ‪ ،‬و ﻳﺘﻢ اﺿﺎﻓﺔ اﻻداﺗﺎن ﻣﻦ‬
‫‪Microsoft DataList Control6.0‬‬
‫ﺑﺈﺿﺎﻓﺔ ‪Control6 0‬‬‫‪ Component‬ﺈﺿﺎﻓﺔ‬
‫و ﺳﻮف ﻳﻈﻬﺮان ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ‪:‬‬
‫ﺚ ﻓﻓﻲ‬
‫ﺑﺎﻟﺒﺤﺚ‬
‫ﻧﻘﻮم ﺎﻟ‬
‫ﺣﻘﻞ( ﻘ‬
‫ﻓﻴﻬﻤﺎ ) ﻘﻞ‬
‫ﻣﺎ ﻓ ﺎ‬ ‫ﺑﻴﺎﻧﺎت ﻋﻤﻮد ﺎ‬
‫اﺟﻞ ﻋﺮض ﺎ ﺎ‬ ‫ﻣﻦ ا ﻞ‬ ‫•‬
‫ﺧﺼﺎﺋﺼﻬﻤﺎ ﻋﻦ اﻟﺨﺎﺻﻴﺔ ‪ RowSource‬و اﺳﻨﺎد اداة اﻟﺮﺑﻂ‬
‫اﺳﻨﺎد‬
‫‪ ListFeild‬و ا ﺎ‬
‫اﻟﺨﺎﺻﻴﺔ ‪Li tF ild‬‬
‫اﻟﺒﻴﺎﻧﺎت ‪ ADODC1‬اﻟاﻟﻴﻬﺎﺎ و اﻟ ﺎ ﺔ‬
‫ﺑﻘﺎﻋﺪة اﻟ ﺎ ﺎ‬
‫ﻘﺎ‬
‫اﺳﻢ اﻟﻌﻤﻮد اﻟﻤﺮاد ﻋﺮﺿﻪ اﻟﻴﻬﺎ ‪.‬‬
‫ﻋﺮض اﻟﺒﻴﺎﻧﺎت ﻓﻲ ‪ DataList‬و ‪ComboList‬‬
‫اﻣﺎ ﻋﺮض اﻟﺒﻴﺎﻧﺎت داﺧﻞ ‪ DataList‬و ‪ ComboList‬ﺑﺎﺳﺘﺨﺪام‬ ‫•‬
‫اﻟﻤﻜﺘﺒﺔ ‪ ADODB‬ﻓﻴﻠﺰم ﻣﻨﺎ ذﻟﻚ اﺳﻨﺎد اﻟﻘﻴﻢ إﻟﻰ اﻟﺨﺼﺎﺋﺺ‬
‫‪ RowSource‬و ‪ ListFeild‬ﺑﺮﻣﺠﻴًﺎ آﻤﺎ ﻳﻠﻲ )اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ‬
‫اﺑﺪا ﻋﻦ ﻋﺮض اﻟﺒﻴﺎﻧﺎت‬ ‫ﻟﻸداة ‪ ComboList‬و هﻮ ﻻ ﻳﺨﺘﻠﻒ اﺑﺪاً‬
‫ﺑﺮﻣﺠﻴًﺎ ﻓﻲ اﻻداة ‪: (DataList‬‬

‫‪Set DataCombo1.RowSource = rs‬‬


‫"‪DataCombo1.ListField = "CustomeName‬‬

‫اﺳﻢ اﻟﻌﻤﻮد‬
‫اﻟﻤﺮﺣﻠﺔ اﻻﺧﻴﺮة ‪ ،،‬اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ‬
‫• ﺗﻌﺘﺒﺮ اﻟﺘﻘﺎرﻳﺮ هﻲ اﻟﺨﻼﺻﺔ اﻻﺧﻴﺮة ﻟﻠﺒﻴﺎﻧﺎت ‪ ،‬و اﻟﺘﻲ ﻳﺴﺘﻔﻴﺪ ﻣﻨﻬﺎ‬
‫رﺑﻂ‬‫ﻳﺘﻢ رﺑ‬
‫ﺟﻮدة اداء اﻟﻨﻈﺎمم( ‪ ،‬و ﻳ ﻢ‬
‫ﺧﻼﻟﻬﺎ ﺟﻮ‬
‫ﻬ‬ ‫س ﻣﻦ‬
‫ﻦ‬ ‫ﻲ ﻳﻳﻘﺎس‬
‫اﻟﻤﺴﺘﺨﺪمم )و اﻟﺘﻲ‬
‫اﻟﺘﻘﺎرﻳﺮ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬و ﻋﺮض ﺳﺠﻼت ﻣﺤﺪدة ﻣﻨﻬﺎ اﻣﺎ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ‬
‫ﺗﺤﺪﻳﺪ اﻟﺘﻘﺮﻳﺮ‬
‫ﺮﻳﺮ‬ ‫ﻞ اﻟﻤﺴﺘﺨﺪمم ﻳ‬ ‫ﺟﻌﻞ‬‫ﻦﺟ‬ ‫ﻦ اﻟﻤﻤﻜﻦ‬
‫ﻞ ‪ ، SQL‬و ﻣﻦ‬ ‫ﺟﻤﻞ‬‫ﺮﻳﻖ ﺟ‬
‫ﻦ ﻃﺮﻳﻖ‬ ‫اوو ﻋﻦ‬
‫اﻟﺬي ﻳﺮﻳﺪﻩ و ﻣﻦ ﺛﻢ ﺗﺮﺟﻤﺔ ذﻟﻚ إﻟﻰ ﺟﻤﻠﺔ ‪ SQL‬ﻧﻌﺮض ﻣﻦ ﺧﻼﻟﻬﺎ‬
‫ﺑﺎﻟﻄﺎﺑﻌﺔ ﻟﻠﻤﺴﺘﺨﺪمم ‪.‬‬
‫ﺮﻳﺮ ﺑ ﺑ‬‫ج ذﻟﻚ اﻟﺘﻘﺮﻳﺮ‬‫اﺧﺮاج‬
‫اﻣﻜﺎﻧﻴﺔ ﺮ‬
‫ﻴ‬ ‫ﻮب ‪ ،‬ﻣﻊﻊ‬
‫ﺮﻳﺮ اﻟﻤﻄﻠﻮب‬‫اﻟﺘﻘﺮﻳﺮ‬

‫هﺬﻩ‬
‫ﺎﻧﺎت ﺗﺗﺴﻤﻰ هﺬ‬
‫ﺪة اﻟاﻟﺒﻴﺎﻧﺎت‬
‫ﺑﻘﺎﻋﺪة‬
‫ﻟﻼﺗﺼﺎل ﻘﺎ‬
‫ﺟﺎهﺰة ﻟﻼﺗ ﺎل‬
‫ﺑﻴﺌﺔ ﺎهﺰة‬
‫ﻳﻮﻓﺮ ‪ Visual Basic‬ﺌﺔ‬
‫• ﻓ‬
‫اﻟﺒﻴﺌﺔ ﺑـ ‪ DataEnvironment‬و ﺑﻴﺌﺔ اﺧﺮى ﺟﺎهﺰة ﻹﻧﺸﺎء‬
‫‪. DataReport‬‬
‫‪D t R‬‬ ‫اﻟﺘﻘﺎرﻳﺮ ﺗﺴﻤﻰ ‪t‬‬
‫اﻟ ﻘﺎ‬
‫ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ‬
‫ﻳﺘﻢ اﻧﺸﺎء اﻟﺘﻘﺮﻳﺮ ﻋﻠﻰ ﻣﺮﺣﻠﺘﻴﻦ ‪ ،‬اﻻوﻟﻰ هﻲ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻋﻦ ﻃﺮﻳﻖ اﻟﺒﻴﺌﺔ‬
‫‪ DataEnvironment‬ﺛﻢ اﻧﺸﺎء اﻟﺘﻘﺮﻳﺮ ﻋﻦ ﻃﺮﻳﻖ اﻟﺒﻴﺌﺔ ‪DataReport‬‬

‫‪ /2‬ﻳﺘﻢ اﻧﺸﺎء اﻟﺒﻴﺌﺔ‬


‫‪ /1‬ﻳﺘﻢ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة‬
‫‪DataEnvironment1‬‬
‫اﻟﺒﻴﺎﻧﺎت ﻋﻦ ﻃﺮﻳﻖ اﻟﺒﻴﺌﺔ‬
‫ﻮي ﻋﻠﻰ‬
‫ﻰ‬ ‫ﺳﻮف ﺗﺤﺘﻮي‬ ‫ﻲ ﻮ‬ ‫و اﻟﺘﻲ‬
‫‪، DataEnvironment‬‬
‫‪D t E i‬‬ ‫‪t‬‬
‫ﻋﻨﺼﺮ‪Connection1‬‬
‫و اﻟﺘﻲ ﻳﺘﻢ اﻧﺸﺎءهﺎ ﻣﻦ اﻟﻘﺎﺋﻤﺔ‬
‫اﻓﺘﺮاﺿﻲ ﻧﺘﺼﻞ ﻣﻦ ﺧﻼﻟﻪ‬
‫‪ Project‬ﺛﻢ‬
‫ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫‪add DataEnvironment‬‬

‫‪ /4‬ﻓﻲ اول ﺧﻄﻮة ﻣﻦ ﺧﻄﻮات‬ ‫‪ /3‬ﻣﻦ اﻟﻘﺎﺋﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ‬


‫ﺗﻮﺻﻴﻒ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬ ‫ﻟﻠﻌﻨﺼﺮ ‪Connection1‬‬
‫ﺺ‪ ،‬ﻦ‬
‫ﻣﻦ‬ ‫اﻻﻣﺮ ﺧﺼﺎﺋﺺ‬ ‫ﻧﺨﺘﺎرر ﺮ‬
‫ﻧﺤﺪد آﻤﺎ هﻮ ﻣﻌﺘﺎد اﻟﻤﺰود‬
‫اﺟﻞ ﺗﻮﺻﻴﻒ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة‬
‫) اﻟﻤﺤﺮك( اﻟﺨﺎص ﺑﻘﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت )ﻣﺰود ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪+‬‬
‫اﻟﺒﻴﺎﻧﺎت اﻟﻤﺮاد اﻻﺗﺼﺎل ﺑﻬﺎ‬ ‫ﻣﺴﺎر ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت(‬
‫ﺗﺎﺑﻊ ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ‬
‫‪ /5‬ﺛﺎﻧﻴﺔ ﺧﻄﻮة ﻣﻦ ﺧﻄﻮات‬
‫اﺧﻴﺮا ﻳﺘﻢ اﻟﺘﺄآﺪ ﻣﻦ ان اﻻﺗﺼﺎل‬
‫‪ /6‬اﺧﻴﺮاً‬ ‫ﺗﻮﺻﻴﻒ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة‬
‫ﺗﻢ ﺑﻨﺠﺎح ﻋﻦ ﻃﺮﻳﻖ ﺗﺠﺮﺑﺔ اﻻﺗﺼﺎل‬ ‫اﻟﺒﻴﺎﻧﺎت هﻮ ان ﻧﺤﺪد ﻣﺴﺎر‬
‫ﺑﺎﻟﺰر ‪Test Connection‬‬ ‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﺧﻼل‬
‫ﻳﺤﺘﻮي ﺛﻼث ﻧﻘﺎط‬
‫اﻟﺬي ﺘ‬
‫اﻟﺰر اﻟﺬ‬
‫اﻟﺰ‬

‫‪ /7‬ﺑﻌﺪ ان ﺗﻢ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬ﻧﺤﺪد ﻣﻦ هﻲ اﻟﺤﻘﻮل اﻟﻤﺮاد ﻋﺮﺿﻬﺎ ﻓﻲ‬


‫اﻟﺘﻘﺮﻳﺮ ‪ ،‬و ﻗﺒﻞ ذﻟﻚ ﻻﺑﺪ ﻣﻦ اﻧﺸﺎء اﻣﺮ ‪ Command‬ﻧﺠﺮي ﻣﻦ ﺧﻼﻟﻪ اﻻﺗﺼﺎل‬
‫ﺑﺎﻟﺤﻘﻮل اﻟﻤﺮاد ﻋﺮﺿﻬﺎ و ذﻟﻚ ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ Connection1‬ﺛﻢ ﻧﺨﺘﺎر اﻻﻣﺮ‬
‫‪ ، Add Command‬ﻓﻴﺘﻢ اﻧﺸﺎء ‪ Command‬ﺟﺪﻳﺪ ‪ ،‬و ﻣﻦ اﻟﻤﻤﻜﻦ اﻧﺸﺎء‬
‫ﺗﻘﺮﻳﺮا ﻣﺎ ‪..‬‬
‫اآﺜﺮ ﻣﻦ ‪Command‬ﺣﻴﺚ اﻧﻜﻞ ‪ Command‬ﻣﻤﻜﻦ ان ﻳﺸﻜﻞ ﺗﻘﺮﻳﺮاً‬
‫ﺗﺎﺑﻊ ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ‬
‫‪ /9‬اﻵن ﻳﺘﻢ اﻟﺪﺧﻮل إﻟﻰ‬
‫‪ /8‬ﻧﻼﺣﻆ اﻵن اﻧﻪ ﺗﻢ اﺿﺎف اﻣﺮ‬
‫ﺧﺼﺎﺋﺺ ﻣﻦ اﻟﻘﺎﺋﻤﺔ‬
‫‪ Command1‬ﻓﻲ ‪Connection1‬‬
‫اﻟﻤﻨﺴﺪﻟﺔ اﻟﺨﺎﺻﺔ ﺑﺎﻷﻣﺮ‬
‫)اﻟﺘﻲ ﺗﻮﺻﻠﻨﺎ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت( ‪ ،‬و ﻣﻦ‬
‫‪ Command‬ﻣﻦ اﺟﻞ‬
‫اﻟﻤﻤﻜﻦ ان ﻳﻜﻮن ﻟﺪﻳﻨﺎ اآﺜﺮ ﻣﻦ‬
‫ﺗﺤﺪﻳﺪ اﻟﺤﻘﻮل اﻟﻤﺮاد‬
‫اﻟﻮاﺣﺪة ‪.‬‬
‫ﺎﻧﺎت اﻟ ا ﺪة‬
‫ﻋﻠﻰ ﻗﺎﻋﺪة اﻟاﻟﺒﻴﺎﻧﺎت‬
‫‪ Command‬ﻋﻠ‬
‫ﻋﺮﺿﻬﺎ ﻓﻲ اﻟﺘﻘﺮﻳﺮ ‪.‬‬

‫‪ /10‬ﻣﻦ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ ‪ ،‬اﻟﻌﻨﺼﺮ ‪Command Name‬‬


‫ﻳﺘﻴﺢ ﻟﻨﺎ ﺗﻐﻴﺮ اﺳﻢ اﻟـ ‪ Command‬إﻟﻰ أي اﺳﻢ ﻣﻨﺎﺳﺐ ﻟﻨﺎ ‪ ،‬و ﻓﻲ‬
‫ﻧﺮﻳﺪ اﻻﺗﺼﺎلل‬
‫ﻦ اﻟﻘﺎﺋﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ اﻧﻨﺎ ﺮﻳ‬
‫اﻻﻣﺮﺮ ‪ DataBase Object‬ﻧﺤﺪد ﻣﻦ‬
‫ﺑﺠﺪول ‪ ،‬و ﻓﻲ اﻟﻘﺎﺋﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ ﻟﻸﻣﺮ ‪ Object Name‬ﻧﺤﺪد اﺳﻢ اﻟﺠﺪول‬
‫‪ ،‬و اﻟﺨﺎﻧﺔ ‪ SQL Statement‬ﻣﻦ اﻟﻤﻤﻜﻦ ﻧﻜﺘﺐ ﺟﻤﻠﺔ ‪ SQL‬ﻧﺤﺪد ﻣﻦ‬
‫ﺧﻼﻟﻬﺎ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ ‪ ،‬و ﺑﻌﺪ اﻟﻤﻮاﻓﻘﺔ ﻧﻼﺣﻆ ان اﻻﻣﺮ ‪Command‬‬
‫آﻮن ﺷﺠﺮة ﺑﺎﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ‬
‫ﺗﺎﺑﻊ ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ‬

‫‪ /11‬ﺑﻌﺪ ان ﺗﻤﺖ ﻋﻤﻠﻴﺔ اﻻرﺗﺒﺎط ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬و ااﺳﺘﺨﻼص‬


‫ﺘﺨﻼص‬
‫اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ ‪ ،‬ﻧﻘﻮم ﺑﺈﻧﺸﺎء اﻟﺘﻘﺮﻳﺮ ‪ ،‬و ذﻟﻚ ﻣﻦ اﻟﻘﺎﺋﻤﺔ‬
‫‪ Project‬ﺛﻢ ‪ ، Add Data Report‬ﻓﻨﻼﺣﻆ اﻧﻪ ﺗﻢ اﻧﺸﺎء اﻟﺘﻘﺮﻳﺮ‪.‬‬

‫‪ /12‬اﻵن ﻧﻘﻮم ﺑﺮﺑﻂ اﻟﺘﻘﺮﻳﺮ ﺑﺎﻟـ‬


‫‪ /13‬ﺑﻌﺪ ذﻟﻚ ﻧﻘﻮم ﺑﺘﺤﺪﻳﺪ اﻟـ‬
‫‪ DataEnvironment1‬اﻟﺘﻲ‬
‫ﻋﻠﻰ‬
‫‪Command‬اﻟﺬي ﻳﺤﺘﻮي ﻋﻠ‬ ‫ﺗﺤﺘﻮي ﺗﻮﺻﻴﻒ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬و ذﻟﻚ‬
‫اﻟﺤﻘﻮل اﻟﻤﺮاد ﻋﺮﺿﻬﺎ ﻓﻲ اﻟﺘﻘﺮﻳﺮ ﻋﻦ‬ ‫ﻣﻦ ﺧﻼل اﻟﺨﺎﺻﻴﺔ ‪Data Source‬‬
‫ﻃﺮﻳﻖ اﻟﺨﺎﺻﻴﺔ ‪Data Member‬‬ ‫ﻓﻲ ﺧﺼﺎﺋﺺ اﻟﺘﻘﺮﻳﺮ ‪DataReport1‬‬
‫اﻟﺘﻘﺮﻳﺮ ‪.‬‬
‫ﺧﺼﺎﺋﺺ اﻟﺘﻘ‬
‫ﻣﻦ ﺧ ﺎﺋ‬
‫ﻦ‬
‫ﺗﺎﺑﻊ ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ‬
‫‪ /14‬ﻻﺣﻆ ﺷﺎﺷﺔ اﻟﺘﻘﺮﻳﺮ ‪ ،‬ﺳﻮف ﺗﺠﺪ اﻧﻬﺎ ﻣﻘﺴﻤﺔ إﻟﻰ ﺧﻤﺴﺔ اﺟﺰاء آﻤﺎ ﻳﻠﻲ ‪:‬‬
‫‪ -‬اﻟﺠﺰء اﻻول و اﻻﺧﻴﺮ ‪ Report Header – Report Footer‬ﻳﻘﺼﺪ ﺑﻪ‬
‫اﻟﺮأس و اﻟﺘﺬﻳﻞ اﻟﺬي ﺳﻮف ﻳﻈﻬﺮ ﻓﻲ اﻟﺼﻔﺤﺔ اﻻوﻟﻰ ﻣﻦ اﻟﺘﻘﺮﻳﺮ ‪.‬‬
‫‪ -‬اﻟﺠﺰء اﻟﺜﺎﻧﻲ و اﻟﺮاﺑﻊ ‪ Page Header – Page Footer‬ﻳﻘﺼﺪ ﺑﻪ اﻟﺮأس‬
‫و اﻟﺘﺬﻳﻞ اﻟﺬي ﺳﻮف ﻳﻈﻬﺮ ﻓﻲ آﻞ ﺻﻔﺤﺎت اﻟﺘﻘﺮﻳﺮ ‪.‬‬
‫‪-‬اﻟﺠﺰء اﻻﺧﻴﺮ )اﻟﺜﺎﻟﺚ( ﺟﺰ اﻟﺘﻔﺎﺻﻴﻞ و ﻩ ﻣﺨﺼﺺ ﻟﻌﺮض ﺗﻔﺎﺻﻴﻞ اﻟﺘﻘﺮﻳﺮ ﻓﻴﻪ ‪ ،‬أي ﻋﺮض ﺣﻘﻮل‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬

‫‪ /16‬اﻵن ﺗﺒﺪأ ﻣﺮﺣﻠﺔ ﺗﺼﻤﻴﻢ و ﺗﻨﺴﻴﻖ‪،‬‬


‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﺘﻨﺴﻴﻖ اﻟﺘﻘﺮﻳﺮ ﻣﻦ ﺧﻼل‬ ‫‪ /15‬ﻓﻲ أي ﻣﻜﺎن ﻣﻦ ﺷﺎﺷﺔ اﻟﺘﻘﺮﻳﺮ اﺿﻐﻂ ﺑﺎﻟﺰر‬
‫اﺿﺎﻓﺔ اﻟﻌﺪﻳﺪ‬
‫ﺔ‬ ‫ﺻﻨﺪوق اﻻدوات ﻧﺴﺘﻄﻴﻊ‬ ‫اﻻﻣﺮ‬
‫اﺧﺘﺮ اﻻ‬
‫اﻟﻤﻨﺴﺪﻟﺔ اﺧﺘ‬
‫اﻟﻘﺎﺋﻤﺔﺔ اﻟ ﻨ ﻟﺔ‬
‫اﻻﻳﻤﻦ و ﻣﻦ اﻟﻘﺎ‬
‫اﻻ‬
‫ﻣﻦ اﻻدوات )… ‪(Label, Image‬‬ ‫‪ Retrieve Structure‬و اﺿﻐﻂ ﻣﻮاﻓﻖ ﻋﻠﻰ‬
‫ﻰ اﻟﺰر اﻻﻳﻤﻦ و اﺧﺘﻴﺎر‬‫و ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ‬ ‫ﺷﺎﺷﺔ رﺳﺎﻟﺔ اﻟﺘﻨﺒﻴﻪ اﻟﺘﻲ ﺗﻈﻬﺮ ‪.‬‬
‫اﻻﻣﺮ ‪ Insert Control‬ﻧﺴﺘﻄﻴﻊ اﺿﺎﻓﺔ‬
‫ﺗﺮﻗﻴﻢ ﻟﻠﺼﻔﺤﺎت او اﻟﺘﺎرﻳﺦ ‪ ...‬اﻟﺦ‬
‫ﺗﺎﺑﻊ ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ‬
‫‪ /17‬اﻵن ﺗﺄﺗﻲ اﻟﻤﺮﺣﻠﺔ اﻟﻤﻬﻤﺔ و هﻲ ﻋﺮض اﻟﺤﻘﻮل اﻟﺘﻲ ﺗﻢ ادراﺟﻬﺎ‬
‫ﺿﻤﻦ اﻻﻣﺮ ‪ Command1‬داﺧﻞ اﻟﺘﻘﺮﻳﺮ ‪ ،‬و ﻳﺘﻢ ذﻟﻚ ﺑﻔﺘﺢ ﺷﺎﺷﺔ‬
‫ﻣﻌﺎ ‪ ،‬ﺛﻢ ﻧﻘﻮم‬
‫اﻟﺘﻘﺮﻳﺮ و ﺷﺎﺷﺔ اﻟاﻟـ ‪ DataEnvironment‬ﻓﻓﻲ ﺁن ﻣﻌﺎً‬
‫ﺑﺴﺤﺐ اﺳﻢ اﻟﺤﻘﻞ ﻣﻦ اﻟﺸﺠﺮة اﻟﺨﺎﺻﺔ ﺑﺎﻟـ ‪ Command‬إﻟﻰ ﺟﺰء‬
‫اﻟﺘﻔﺎﺻﻴﻞ ﻓﻲ اﻟﺘﻘﺮﻳﺮ ‪ ...‬ﻓﻨﻼﺣﻆ اﻧﻪ ﺗﻢ اﻧﺸﺎء ﺧﺎﻧﺔ ﺧﺎﺻﺔ ﺑﺎﻟﺤﻘﻞ داﺧﻞ‬
‫اﻟﺤﻘﻞ ‪ ....‬و هﻜﺬا‬
‫ﻳﻮﺿﺢ ااﺳﻢ اﻟ ﻘﻞ‬
‫‪ Label‬ﺿ‬
‫ﺗﻤﺜﻞ ‪L b l‬‬
‫اﺧﺮى ﺗ ﺜﻞ‬
‫اﻟﺘﻘﺮﻳﺮ و ﺧﺎﻧﺔ اﺧ‬
‫اﻟﺘﻘ‬
‫ﺣﺘﻰ ﻧﻨﻘﻞ آﻞ اﻟﺤﻘﻮل اﻣﻄﻠﻮﺑﺔ إﻟﻰ اﻟﺘﻘﺮﻳﺮ ‪ ...‬ﻧﺴﺘﻄﻴﻊ ﺗﻨﺴﻴﻖ اﻟﺤﻘﻮل و‬
‫اﻟﺒﻴﺎﻧﺎت اﻟﺘﻲ ﻳﻈﻬﺮهﺎ اﻟﺘﻘﺮﻳﺮ ﻣﻦ ﺧﻼل ﺧﺼﺎﺋﺺ آﻞ ﺧﺎﻧﻪ و ﻣﻦ اﻟﻤﺴﺘﺤﺐ ﻧﻘﻞ ‪Labels‬‬
‫ﺔ‬
‫ﺻﻔﺤﺔ‬ ‫اﻟﺨﺎص ﺑﻜﻞ ﺟﺰء إﻟﻰ ﻗﻗﺴﻢ ‪ Page Header‬ﻣﻦ اﻟﺘﻘﺮﻳﺮ ﺣﺘﻰ ﻳﻜﻮن ﻇﺎهﺮ ﻓﻓﻲ آﻞ‬

‫‪ /18‬ﺗﺄﺗﻲ اﻵن اﺧﺮ ﻣﺮﺣﻠﺔ ‪ ..‬و هﻲ ﻋﺮض اﻟﺘﻘﺮﻳﺮ داﺧﻞ اﻟﻤﺸﺮوع ﻣﻦ ﺧﻼل‬
‫اﺣﺪى اﻟﻨﻮاﻓﺬ ‪ Forms‬و ذﻟﻚ ﺑﺎﺳﺘﺨﺪام اﻻﻣﺮ ‪DataRepot1 Show‬‬
‫‪DataRepot1.Show‬‬
‫ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ اﻟﺤﻲ ☺‬
‫إﻟﻰ اﻵن ﺗﻢ ﺗﺼﻤﻴﻢ ﺗﻘﺎرﻳﺮ ﻧﺎﺟﺤﺔ ﺑﺎﺳﺘﺨﺪام اﻟـ ‪Data Report‬‬ ‫•‬
‫‪ ،‬ﻏﻴﺮ ان هﺬﻩ اﻟﺘﻘﺎرﻳﺮ ﺗﻘﻮم ﺑﻌﺮض آﻞ اﻟﺴﺠﻼت اﻟﺘﻲ ﺗﺤﺘﻮﻳﻬﺎ‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ...‬و ﺣﺘﻰ ﻓﻲ ﺣﺎﻟﺔ اﺳﺘﺨﺪام ﺟﻤﻠﺔ ‪ SQL‬ﻓﺈﻧﻨﺎ ﻧﻠﺰم‬
‫اﻟﻤﺴﺘﺨﺪم ﺑﻌﺮض ﻣﺤﺪد ‪ ..‬و ﻣﻦ اﻟﻤﺮوﻧﺔ ان ﻧﺠﻌﻞ اﻟﻤﺴﺘﺨﺪم ان‬
‫ﻳﺤﺪد ﻧﻮع اﻟﺘﻘﺮﻳﺮ اﻟﺬي ﻳﺮﻳﺪﻩ ‪ ،‬و ذﻟﻚ )ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل( ﺑﺄن‬
‫ﻧﺠﻌﻞ اﻟﻤﺴﺘﺨﺪم ﻳﺤﺪد ان اﻟﺘﻘﺮﻳﺮ اﻟﺬي ﻳﺮﻳﺪﻩ هﻮ ﻧﺎﺗﺞ ﻋﻦ اﻟﺒﺤﺚ‬
‫ﺑﺤﺴﺐ ﺣﻘﻞ ﻣﻌﻴﻦ )و ﻟﻴﻜﻦ ﺗﺎرﻳﺦ اﻟﻄﻠﺒﻴﺔ ‪ ، (...‬و ﻳﻜﻮن ﻋﺮض‬
‫اﻟﺘﻘﺮﻳﺮ ﻧﺎﺗﺞ ذﻟﻚ اﻟﺒﺤﺚ ‪ ،‬و هﻜﺬا ﻓﺈﻧﻨﺎ ﺳﻮف ﻧﻜﻮن ﻗﺪ آﻮﻧﺎ‬
‫ﺗﻘﺮﻳﺮًا ﻳﻌﺮض اﻟﺨﺎﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ ﺣﻴﺚ ان ﺟﻤﻠﺔ اﻻﺳﺘﻌﻼم اﻟﺘﻲ‬
‫ﻳﻌﺘﻤﺪ ﻋﻠﻴﻬﺎ اﻟﺘﻘﺮﻳﺮ ﺳﻮف ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻟﺸﺮط اﻟﺬي ﻳﺤﺪدﻩ‬
‫اﻟﻤﺴﺘﺨﺪم و هﺬا ﻣﺎ ﻳﺴﻤﻰ ﺑﺎﻟﺘﻘﺮﻳﺮ اﻟﺤﻲ ‪..‬‬
‫ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ اﻟﺤﻲ ☺‬
‫ﺑﻌﺪ ان ﻧﻨﺘﻬﻲ ﻣﻦ ﺗﺠﻬﻴﺰ ‪ DataEnvironment‬ﺗﺤﺘﻮي ﻋﻠﻰ‬ ‫•‬
‫‪Command‬و آﺬﻟﻚ ﻣﻦ رﺑﻂ اﻟﺘﻘﺮﻳﺮ ﺑــ‬
‫‪ DataEnvironment‬ﻧﻘﻮم ﺑﻤﺎ ﻳﻠﻲ ‪:‬‬
‫‪ /1‬ﻣﻦ ﺧﻼل ﺗﺼﻤﻴﻢ اﻟﺘﻘﺮﻳﺮ ﻧﻐﻴﺮ اﻟﺨﺎﺻﻴﺔ ‪ Data Field‬ﻟﻤﺮﺑﻌﺎت‬
‫ﻲ ﺳﻮف ﺗﻌﺮﺿﻬﺎ ‪..‬‬ ‫اﻟﻨﺼﻮص إﻟﻰ اﺳﻤﺎء اﻟﺤﻘﻮل اﻟﺘﻲ‬
‫‪ /2‬ﻓﻲ داﺧﻞ اﻟﻔﻮرم ‪ ..‬و ﻋﻨﺪ ﻧﻘﻄﺔ اﻟﺒﺤﺚ اﻟﺘﻲ ﺳﻴﺘﻢ ﻣﻦ ﺧﻼﻟﻬﺎ‬
‫اﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫اﻟﺸﻔﺮة ﻴ‬
‫ﻧﻀﻴﻒ ﺮ‬ ‫ﺮﻳﺮ ﻴ‬‫اﺳﺘﺪﻋﺎءء اﻟﺘﻘﺮﻳﺮ‬
‫ﺗﺎﺑﻊ ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ اﻟﺤﻲ ☺‬

‫اﻟﺘﻘﺮﻳﺮ ‪ ،‬و ﻣﻦ‬


‫اﺳﺎﺳﻬﺎﺎ اﻟﺘﻘ‬
‫ﻋﻠﻰ ا ﺎ‬
‫ﺳﻴﻜﻮن ﻠ‬
‫اﻟﺘﻲ ﻜ‬
‫اﻟﺪوﻟﺔ اﻟﺘ‬
‫ﺧﻞ ااﺳﻢ اﻟ ﻟﺔ‬
‫اﻟﻤﺴﺘﺨﺪم اان ﻳﺪﺧﻞ‬
‫ﺑﺎﻟﻄﻠﺐ ﻣﻦ اﻟ ﺘﺨ‬
‫ﺗﻘﻮم ﺎﻟﻄﻠ‬
‫ﻘﺔ ﺗﻘ‬
‫اﻟﺴﺎﺑﻘﺔ‬
‫اﻟﺸﻔﺮة اﻟ ﺎ‬
‫اﻟﺸﻔ ة‬
‫ﺛﻢ ﻳﻨﺸﺊ اﺳﺘﻌﻼﻣ ًﺎ ﻣﻨﺎﺳﺒًﺎ ﻳﺴﻨﺪﻩ إﻟﻰ اﻟﺨﺎﺻﻴﺔ اﻟﺘﺎﻟﻴﺔ ﻣﻦ اﺟﻞ ﺟﻌﻞ ‪ Command1‬ﻳﻨﻔﺬ اﻻﺳﺘﻌﻼم ‪:‬‬
‫‪DataEnvironment1‬‬
‫‪DataEnvironment‬‬ ‫‪1.Commands(1‬‬
‫‪.Commands(1).CommandText‬‬
‫اﻟﺨﺎﺻﻴﺔ ‪:‬‬
‫ﺔ‬ ‫و ﻗﺒﻞ ذذﻟﻚ ﻳﺠﻌﻞ ‪ Command1‬ﻣﺴﺘﻌﺪاً ﻻﺳﺘﻘﺒﺎل اﺳﺘﻌﻼم ﻋﻦ ﻃﺮﻳﻖ‬
‫‪DataEnvironment1‬‬
‫‪DataEnvironment‬‬ ‫‪1.Commands(1‬‬
‫‪.Commands(1).CommandType = adCmdText‬‬
‫و ﻣﻦ ﺛﻢﻢ ﻳﻨﻔﺬ اﻻﺳﺘﻌﻼمم ﺑﺎﻷﻣﺮ ‪:‬‬
‫‪DataEnvironment1‬‬
‫‪DataEnvironment‬‬ ‫‪1.Commands(1‬‬
‫‪.Commands(1).Execute‬‬
‫و اﺧﻴﺮًا ﻳﻌﺮض اﻟﺘﻘﺮﻳﺮ ﻋﻦ ﻃﺮﻳﻖ اﻻﻣﺮ ‪:‬‬
‫‪DataReport1‬‬
‫‪DataReport‬‬‫‪1.Show‬‬

You might also like