‫رﺑﻂ اﻟﻔﻴﺠﻮال ﺑﻴﺴﻚ ‪ 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‬ﻣﻦ ﻣﺮﺑﻊ اﻻدوات ﻧﺨﺘﺮ اﻻداة اﻟﺠﺪﻳﺪة ‪.‬‬

‫‪.3‬‬

‫ﺗﻈﻬﺮ ﻟﻨﺎ اﻻداة ﻋﻠﻰ اﻟﻮاﺟﻬﺔ ‪ Form‬آﻤﺎ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ‪.‬‬

‫‪.4‬‬

‫اﻵن ﻣﻦ ﺧﺼﺎﺋﺺ اﻻداة ‪ Data Grid‬ﻧﺤﺪد ﻓﻲ اﻟﺨﺎﺻﻴﺔ‬
‫ﺗﺼﻠﻨﺎ ﻘﺎ ة‬
‫ﺑﻘﺎﻋﺪة‬
‫اﻟﺘﻲ ﺗ ﻠﻨﺎ‬
‫‪ 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‬‬

‫اﻟﻤﺮور ﻋﻠﻰ اﻟﺴﺠﻼت‬
‫ﻗﻴﻤﺔ ‪#no‬‬
‫ﺑﺤﺴﺐ ﻗ ﺔ‬

‫))‪Data1.Recordset.Move ((#no‬‬

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

‫‪Data1.Recordset.FindLast‬‬

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

‫‪Data1.Recordset.FindNext‬‬

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

‫‪Data1.Recordset.FindPrevious‬‬

‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ ﻋﻠﻰ ﺳﺠﻼت ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫• اﻣﺮ اﻟﻮﺻﻮل اﻟﻰ ﻋﻤﻮد ﻓﻲ اﻟﺠﺪول ‪:‬‬
‫]اﺳﻢ اﻟﻌﻤﻮد[!‪Data1 RecordSet‬‬
‫اﻟﻌﻤﻮد[!‪Data1.RecordSet‬‬

‫ﻣﺜﺎل ‪:‬‬
‫[!‪Data1.RecordSet‬‬
‫‪Data1‬‬
‫]‪RecordSet![name‬‬
‫• اﻟﺪاﻟﺔ ‪ (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
Data1.Recordset.FindFirst
d t Fi dFi t str
‫ﻳﻘﻮم هﺬا اﻷﻣﺮ ﺑﺎﻟﺒﺤﺚ ﻋﻦ‬
If Data1.Recordset.NoMatch = True Then
، ‫اول ﺳﺠﻞ ﻳﻄﺎﺑﻖ اﻟﺒﺤﺚ‬
MsgBox " ‫"هﺬا اﻻﺳﻢ ﻏﻴﺮ ﻣﻮﺟﻮد‬
‫اﻟﻤﺆﺷﺮﺮ ﻋﻨﺪﻩ‬
‫وﺟﺪﻩ ﻳﻳﻘﻒ ﺆ‬
‫ﺈن وﺟ‬
‫ﻓﺈن‬
Else
True ‫ﻳﻘﻮم هﺬا اﻷﻣﺮ ﺑﺈﻋﺎدة‬
Txt1. Text = Data1. Recordset![name]
‫ﻓﻲ ﺣﺎﻟﺔ اﻧﻪ ﻟﻢ ﻳﺠﺪ أي ﺳﺠﻞ‬
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‬إﻟﻰ اﻟﻤﺸﺮوع ﻧﻘﻮم ﺑﺮﺑﻄﻬﺎ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫اﻟﻤﻄﻠﻮب اﻻرﺗﺒﺎط ﺑﻬﺎ ‪.‬‬
‫او ًﻻ ‪ :‬ﻳﺘﻢ ﺿﺒﻂ ﺧﺼﺎﺋﺺ‬
‫ﺧﺼﺎﺋﺺ‬
‫ﺑﺎﻟﺪﺧﻮلل إﻟإﻟﻰ ﺧ ﺎﺋ‬
‫اة ﺎﻟ ﺧ‬
‫اﻷداة‬
‫اﻷ‬
‫اﻷداة ﻣﻦ اﻟﻘﺎﺋﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ‪.‬‬

‫ﺛﺎﻟﺜ ًﺎ ‪ :‬ﻓﻲ ﺑﺪاﻳﺔ اﻻﺗﺼﺎل‬
‫ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻧﺤﺪد‬
‫اﻟﻤﺤﺮك( اﻟﻤﺮاد‬
‫اﻟاﻟﻤﺰود )اﻟ ك‬
‫اﻻﺗﺼﺎل ﺑﻪ ‪ ..‬و هﻨﺎ ﻧﺤﺪد‬
‫اﻻﺗﺼﺎل ﺑـ ‪.Access‬‬

‫ﺛﺎﻧﻴ ًﺎ ‪ :‬ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ زر‬
‫اﻟﺬي أ‬
‫ﻳﺒﺪأ‬
‫‪ Build‬و اﻟﺬ‬
‫‪B ild‬‬
‫ﺳﻠﺴﻠﺔ ﺧﻄﻮات اﻻرﺗﺒﺎط‬
‫ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫راﺑﻌ ًﺎ ‪ :‬ﻧﺤﺪد ﻣﺴﺎر ﻗﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت ‪ 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‬‬

‫اﻟﻤﺮور ﻋﻠﻰ اﻟﺴﺠﻼت‬
‫ﻗﻴﻤﺔ ‪#no‬‬
‫ﺑﺤﺴﺐ ﻗ ﺔ‬

‫))‪ADODC1.Recordset.Move ((#no‬‬

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

‫‪ /4‬ﻧﻘﻄﺔ ﺑﺪاﻳﺔ اﻟﺒﺤﺚ‬
‫و ﻟﻜﻨﻨﺎ ﻧﺤﺪد هﻨﺎ‬
‫ﻣﻦ أي ﺻﻒ ﺳﻮف‬
‫ﻳﺒﺪأ اﻟﺒﺤﺚ‬

‫‪ /3‬اﺗﺠﺎﻩ اﻟﺒﺤﺚ و هﻮ‬
‫اﺣﺪ ﺧﻴﺎرﻳﻦ ‪:‬‬
‫‪adSearchBackward‬‬
‫أي وﺻﻮ ًﻻ إﻟﻰ اول ﺳﺠﻞ‬
‫‪adSearchForward‬‬
‫أي وﺻﻮ ًﻻ إﻟﻰ اﺧﺮ ﺳﺠﻞ‬

‫‪ /2‬ﻧﻘﻄﺔ ﺑﺪاﻳﺔ اﻟﺒﺤﺚ‬
‫و ﺗﻮﺿﻊ ‪ 0‬اﻓﺘﺮاﺿﻴﺎً‬
‫اﻓﺘﺮاﺿﻴﺎ‬
‫او ﻳﺘﻢ اﻟﺒﺪء ﻓﻲ اﻟﺒﺤﺚ‬
‫ﻣﻦ اﻟﻨﻘﻄﺔ اﻟﻤﺘﻮﻗﻒ‬
‫ﻋﻨﺪهﺎ اﻟﻤﺆﺷﺮ ﺣﺎﻟﻴ ًﺎ‬
‫ﺣﺎﻟﻴﺎ‬

‫‪ /1‬اﺳﻢ اﻟﻌﻤﻮد و‬
‫اﻟﺤﻘﻞ اﻟﻤﺮاد اﻟﺒﺤﺚ‬
‫ﻋﻨﻪ ‪:‬‬
‫” ’‪“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‬‬
‫ﺗﻌﻨﻲ ﻣﺰود )ﻣﺤﺮك(‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫و اﻟﺘﻲ هﻲ ﻗﺎﻋﺪة‬
‫ﺑﻴﺎﻧﺎت ‪Access‬‬

‫اﻟﺨﺎﺻﻴﺔ ‪Open‬‬
‫ﺔ‬
‫ﺗﺴﺘﺨﺪم ﻟﺘﺤﺪﻳﺪ‬
‫ﻣﺴﺎر ﻗﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت‬

‫‪db Open “c:\db1‬‬
‫‪db.Open‬‬
‫‪c:\db1.mdb‬‬
‫" ‪mdb‬‬

‫ﻣﻼﺣﻈﺎت ﻋﻨﺪ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫•‬

‫اﻟﺠﻤﻠﺔ ‪:‬‬
‫اﻟ ﻠﺔ‬

‫" ;‪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‬‬
‫ﺛﺎﻧﻴ ًﺎ ‪ :‬ﻋﻤﻠﻴﺔ ﻓﺘﺢ ﺟﺪول ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪:‬‬
‫ﺳﻴﺘﻢﻢ‬
‫ﻲ ﻴ‬
‫اﻟﺴﺠﻼت( اﻟﺘﻲ‬
‫ﻣﺠﻤﻮﻋﺔ ﺠ‬
‫ول ) ﺠ ﻮ‬
‫اﻟﺠﺪول‬
‫ﻦ ﺠ‬
‫ﺒﺮ ﻋﻦ‬
‫ﻴﺮ ﻳﻳﻌﺒﺮ‬
‫ﻮﻳﻦ ﻣﺘﻐﻴﺮ‬
‫ﻳﻳﺘﻢﻢ ﺗﻜﻮﻳﻦ‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت آﻤﺎ ﻳﻠﻲ ‪:‬‬
‫‪Dim rs As New ADODB.Recordset‬‬
‫) ﻣﺘﻐﻴﺮ ﻋﺎم ( ‪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‬‬

‫ﻦ‪:‬‬
‫اﻟﺘﺰاﻣﻦ‬
‫ﻮع ﺰ‬
‫ﻧﻮع‬

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

‫‪adLockBatchOptimistic‬‬
‫‪adOpenDynamic‬‬
‫ﻏﻠﻖ اﻟﺴﺠﻞ ﻣﻦ اﻻﺧﺮﻳﻦ اﺛﻨﺎء‬
‫ﺗﻌﺎﻣﻞ ﻣﺒﺎﺷﺮة ﻣﻦ اﻟﺴﺠﻼت‬
‫اﻟﺴﻴﺮﻓﺮﺮ‬
‫ع ﻴﺮ‬
‫ﺛﻢ اﻃﻼع‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ‪ ،‬ﻢ‬
‫ﻞ‬
‫اﻟﺤﻘﻴﻘﺔ‬
‫ﻋﻠﻰ اﻟﺘﺤﺪﻳﺚ‬
‫‪adOpenForwardOnly‬‬
‫‪adLockOptimistic‬‬
‫ﺑﺎﻟﺘﺤﺮك داﺧﻞ اﻟﺴﺠﻼت ﻓﻲ‬
‫ﻏﻠﻖ اﻟﺴﺠﻞ ﻣﻦ اﻻﺧﺮﻳﻦ اﺛﻨﺎء‬
‫اﻻﺗﺠﺎﻩ ﻟﻸﻣﺎم ﻓﻘﻂ‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ‬
‫‪adOpenKeyset‬‬
‫‪adLockPessimistic‬‬
‫ﻟﻠﻘﺮاءة ﻓﻘﻂ ﻣﻊ اﻟﺘﻌﺪﻳﻞ‬
‫ﻏﻠﻖ اﻟﺴﺠﻞ اﺛﻨﺎء اﻟﺘﻌﺪﻳﻞ ﻓﻘﻂ‬
‫‪adOpenStatic‬‬
‫‪adLockReadOnly‬‬
‫ﻟﻠﻘﺮاءة ﻓﻘﻂ‬
‫اﻟﺴﺠﻞ ﻟﻠﻘﺮاءة ﻓﻘﻂ‬

‫اﺳﻢ اﻟﻤﺘﻐﻴﺮ اﻟﺬي ﺗﻢ‬
‫ﻦ ﻧﻮع‬
‫ﻮع‬
‫ﺗﻌﺮﻳﻔﺔ ﻣﻦ‬
‫ﺮﻳ‬
‫‪ADODB.Connection‬‬

‫اﺳﻢﻢ اﻟﺠﺪول اﻟﻤﺮاد‬
‫اﻻﺗﺼﺎل ﺑﻪ‬

‫اﻟﻌﻤﻠﻴﺎت اﻟﺮﺋﻴﺴﻴﺔ اﻟﺘﻲ ﺗﺠﺮى ﺑﺎﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺔ ‪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‬‬

‫اﻟﻤﺮور ﻋﻠﻰ اﻟﺴﺠﻼت‬
‫ﻗﻴﻤﺔ ‪#no‬‬
‫ﺑﺤﺴﺐ ﻗ ﺔ‬

‫))‪rs.Move ((#no‬‬

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

‫‪ /4‬ﻧﻘﻄﺔ ﺑﺪاﻳﺔ اﻟﺒﺤﺚ‬
‫و ﻟﻜﻨﻨﺎ ﻧﺤﺪد هﻨﺎ‬
‫ﻣﻦ أي ﺻﻒ ﺳﻮف‬
‫ﻳﺒﺪأ اﻟﺒﺤﺚ‬

‫‪ /3‬اﺗﺠﺎﻩ اﻟﺒﺤﺚ و هﻮ‬
‫اﺣﺪ ﺧﻴﺎرﻳﻦ ‪:‬‬
‫‪adSearchBackward‬‬
‫أي وﺻﻮ ًﻻ إﻟﻰ اول ﺳﺠﻞ‬
‫‪adSearchForward‬‬
‫أي وﺻﻮ ًﻻ إﻟﻰ اﺧﺮ ﺳﺠﻞ‬

‫‪ /2‬ﻧﻘﻄﺔ ﺑﺪاﻳﺔ اﻟﺒﺤﺚ‬
‫و ﺗﻮﺿﻊ ‪ 0‬اﻓﺘﺮاﺿﻴﺎً‬
‫اﻓﺘﺮاﺿﻴﺎ‬
‫او ﻳﺘﻢ اﻟﺒﺪء ﻓﻲ اﻟﺒﺤﺚ‬
‫ﻣﻦ اﻟﻨﻘﻄﺔ اﻟﻤﺘﻮﻗﻒ‬
‫ﻋﻨﺪهﺎ اﻟﻤﺆﺷﺮ ﺣﺎﻟﻴ ًﺎ‬
‫ﺣﺎﻟﻴﺎ‬

‫‪ /1‬اﺳﻢ اﻟﻌﻤﻮد و‬
‫اﻟﺤﻘﻞ اﻟﻤﺮاد اﻟﺒﺤﺚ‬
‫ﻋﻨﻪ ‪:‬‬
‫” ’‪“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‬‬
‫‪ /1‬ﻳﺘﻢ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت ﻋﻦ ﻃﺮﻳﻖ اﻟﺒﻴﺌﺔ‬
‫‪، DataEnvironment‬‬
‫‪D t E i‬‬
‫‪t‬‬
‫و اﻟﺘﻲ ﻳﺘﻢ اﻧﺸﺎءهﺎ ﻣﻦ اﻟﻘﺎﺋﻤﺔ‬
‫‪ Project‬ﺛﻢ‬
‫‪add DataEnvironment‬‬
‫‪ /3‬ﻣﻦ اﻟﻘﺎﺋﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ‬
‫ﻟﻠﻌﻨﺼﺮ ‪Connection1‬‬
‫ﺺ‪ ،‬ﻦ‬
‫ﻣﻦ‬
‫اﻻﻣﺮ ﺧﺼﺎﺋﺺ‬
‫ﻧﺨﺘﺎرر ﺮ‬
‫اﺟﻞ ﺗﻮﺻﻴﻒ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت )ﻣﺰود ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪+‬‬
‫ﻣﺴﺎر ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت(‬

‫‪ /2‬ﻳﺘﻢ اﻧﺸﺎء اﻟﺒﻴﺌﺔ‬
‫‪DataEnvironment1‬‬
‫ﻮي ﻋﻠﻰ‬
‫ﻰ‬
‫ﺳﻮف ﺗﺤﺘﻮي‬
‫ﻲ ﻮ‬
‫و اﻟﺘﻲ‬
‫ﻋﻨﺼﺮ‪Connection1‬‬
‫اﻓﺘﺮاﺿﻲ ﻧﺘﺼﻞ ﻣﻦ ﺧﻼﻟﻪ‬
‫ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬

‫‪ /4‬ﻓﻲ اول ﺧﻄﻮة ﻣﻦ ﺧﻄﻮات‬
‫ﺗﻮﺻﻴﻒ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫ﻧﺤﺪد آﻤﺎ هﻮ ﻣﻌﺘﺎد اﻟﻤﺰود‬
‫) اﻟﻤﺤﺮك( اﻟﺨﺎص ﺑﻘﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت اﻟﻤﺮاد اﻻﺗﺼﺎل ﺑﻬﺎ‬

‫ﺗﺎﺑﻊ ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ‬
‫‪ /5‬ﺛﺎﻧﻴﺔ ﺧﻄﻮة ﻣﻦ ﺧﻄﻮات‬
‫ﺗﻮﺻﻴﻒ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت هﻮ ان ﻧﺤﺪد ﻣﺴﺎر‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﺧﻼل‬
‫ﻳﺤﺘﻮي ﺛﻼث ﻧﻘﺎط‬
‫اﻟﺬي ﺘ‬
‫اﻟﺰر اﻟﺬ‬
‫اﻟﺰ‬

‫اﺧﻴﺮا ﻳﺘﻢ اﻟﺘﺄآﺪ ﻣﻦ ان اﻻﺗﺼﺎل‬
‫‪ /6‬اﺧﻴﺮاً‬
‫ﺗﻢ ﺑﻨﺠﺎح ﻋﻦ ﻃﺮﻳﻖ ﺗﺠﺮﺑﺔ اﻻﺗﺼﺎل‬
‫ﺑﺎﻟﺰر ‪Test Connection‬‬

‫‪ /7‬ﺑﻌﺪ ان ﺗﻢ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬ﻧﺤﺪد ﻣﻦ هﻲ اﻟﺤﻘﻮل اﻟﻤﺮاد ﻋﺮﺿﻬﺎ ﻓﻲ‬
‫اﻟﺘﻘﺮﻳﺮ ‪ ،‬و ﻗﺒﻞ ذﻟﻚ ﻻﺑﺪ ﻣﻦ اﻧﺸﺎء اﻣﺮ ‪ Command‬ﻧﺠﺮي ﻣﻦ ﺧﻼﻟﻪ اﻻﺗﺼﺎل‬
‫ﺑﺎﻟﺤﻘﻮل اﻟﻤﺮاد ﻋﺮﺿﻬﺎ و ذﻟﻚ ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ Connection1‬ﺛﻢ ﻧﺨﺘﺎر اﻻﻣﺮ‬
‫‪ ، Add Command‬ﻓﻴﺘﻢ اﻧﺸﺎء ‪ Command‬ﺟﺪﻳﺪ ‪ ،‬و ﻣﻦ اﻟﻤﻤﻜﻦ اﻧﺸﺎء‬
‫ﺗﻘﺮﻳﺮا ﻣﺎ ‪..‬‬
‫اآﺜﺮ ﻣﻦ ‪Command‬ﺣﻴﺚ اﻧﻜﻞ ‪ Command‬ﻣﻤﻜﻦ ان ﻳﺸﻜﻞ ﺗﻘﺮﻳﺮاً‬

‫ﺗﺎﺑﻊ ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ‬
‫‪ /8‬ﻧﻼﺣﻆ اﻵن اﻧﻪ ﺗﻢ اﺿﺎف اﻣﺮ‬
‫‪ Command1‬ﻓﻲ ‪Connection1‬‬
‫)اﻟﺘﻲ ﺗﻮﺻﻠﻨﺎ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت( ‪ ،‬و ﻣﻦ‬
‫اﻟﻤﻤﻜﻦ ان ﻳﻜﻮن ﻟﺪﻳﻨﺎ اآﺜﺮ ﻣﻦ‬
‫اﻟﻮاﺣﺪة ‪.‬‬
‫ﺎﻧﺎت اﻟ ا ﺪة‬
‫ﻋﻠﻰ ﻗﺎﻋﺪة اﻟاﻟﺒﻴﺎﻧﺎت‬
‫‪ Command‬ﻋﻠ‬

‫‪ /9‬اﻵن ﻳﺘﻢ اﻟﺪﺧﻮل إﻟﻰ‬
‫ﺧﺼﺎﺋﺺ ﻣﻦ اﻟﻘﺎﺋﻤﺔ‬
‫اﻟﻤﻨﺴﺪﻟﺔ اﻟﺨﺎﺻﺔ ﺑﺎﻷﻣﺮ‬
‫‪ Command‬ﻣﻦ اﺟﻞ‬
‫ﺗﺤﺪﻳﺪ اﻟﺤﻘﻮل اﻟﻤﺮاد‬
‫ﻋﺮﺿﻬﺎ ﻓﻲ اﻟﺘﻘﺮﻳﺮ ‪.‬‬

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

‫ﺗﺎﺑﻊ ﺧﻄﻮات اﻧﺸﺎء اﻟﺘﻘﺎرﻳﺮ‬
‫‪ /11‬ﺑﻌﺪ ان ﺗﻤﺖ ﻋﻤﻠﻴﺔ اﻻرﺗﺒﺎط ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬و ااﺳﺘﺨﻼص‬
‫ﺘﺨﻼص‬
‫اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ ‪ ،‬ﻧﻘﻮم ﺑﺈﻧﺸﺎء اﻟﺘﻘﺮﻳﺮ ‪ ،‬و ذﻟﻚ ﻣﻦ اﻟﻘﺎﺋﻤﺔ‬
‫‪ Project‬ﺛﻢ ‪ ، Add Data Report‬ﻓﻨﻼﺣﻆ اﻧﻪ ﺗﻢ اﻧﺸﺎء اﻟﺘﻘﺮﻳﺮ‪.‬‬

‫‪ /12‬اﻵن ﻧﻘﻮم ﺑﺮﺑﻂ اﻟﺘﻘﺮﻳﺮ ﺑﺎﻟـ‬
‫‪ DataEnvironment1‬اﻟﺘﻲ‬
‫ﺗﺤﺘﻮي ﺗﻮﺻﻴﻒ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬و ذﻟﻚ‬
‫ﻣﻦ ﺧﻼل اﻟﺨﺎﺻﻴﺔ ‪Data Source‬‬
‫ﻓﻲ ﺧﺼﺎﺋﺺ اﻟﺘﻘﺮﻳﺮ ‪DataReport1‬‬

‫‪ /13‬ﺑﻌﺪ ذﻟﻚ ﻧﻘﻮم ﺑﺘﺤﺪﻳﺪ اﻟـ‬
‫ﻋﻠﻰ‬
‫‪Command‬اﻟﺬي ﻳﺤﺘﻮي ﻋﻠ‬
‫اﻟﺤﻘﻮل اﻟﻤﺮاد ﻋﺮﺿﻬﺎ ﻓﻲ اﻟﺘﻘﺮﻳﺮ ﻋﻦ‬
‫ﻃﺮﻳﻖ اﻟﺨﺎﺻﻴﺔ ‪Data Member‬‬
‫اﻟﺘﻘﺮﻳﺮ ‪.‬‬
‫ﺧﺼﺎﺋﺺ اﻟﺘﻘ‬
‫ﻣﻦ ﺧ ﺎﺋ‬
‫ﻦ‬

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

‫‪ /15‬ﻓﻲ أي ﻣﻜﺎن ﻣﻦ ﺷﺎﺷﺔ اﻟﺘﻘﺮﻳﺮ اﺿﻐﻂ ﺑﺎﻟﺰر‬
‫اﻻﻣﺮ‬
‫اﺧﺘﺮ اﻻ‬
‫اﻟﻤﻨﺴﺪﻟﺔ اﺧﺘ‬
‫اﻟﻘﺎﺋﻤﺔﺔ اﻟ ﻨ ﻟﺔ‬
‫اﻻﻳﻤﻦ و ﻣﻦ اﻟﻘﺎ‬
‫اﻻ‬
‫‪ Retrieve Structure‬و اﺿﻐﻂ ﻣﻮاﻓﻖ ﻋﻠﻰ‬
‫ﺷﺎﺷﺔ رﺳﺎﻟﺔ اﻟﺘﻨﺒﻴﻪ اﻟﺘﻲ ﺗﻈﻬﺮ ‪.‬‬

‫‪ /16‬اﻵن ﺗﺒﺪأ ﻣﺮﺣﻠﺔ ﺗﺼﻤﻴﻢ و ﺗﻨﺴﻴﻖ‪،‬‬
‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﺘﻨﺴﻴﻖ اﻟﺘﻘﺮﻳﺮ ﻣﻦ ﺧﻼل‬
‫اﺿﺎﻓﺔ اﻟﻌﺪﻳﺪ‬
‫ﺔ‬
‫ﺻﻨﺪوق اﻻدوات ﻧﺴﺘﻄﻴﻊ‬
‫ﻣﻦ اﻻدوات )… ‪(Label, Image‬‬
‫ﻰ اﻟﺰر اﻻﻳﻤﻦ و اﺧﺘﻴﺎر‬
‫و ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ‬
‫اﻻﻣﺮ ‪ 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‬‬

Sign up to vote on this title
UsefulNot useful