![]() |
|
شرح : طريقة للتنقل بين قواعدالبيانات اثناء تشغيل البرنامج - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم اسئلة vb6.0 المتعلقة بقواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=72) +--- الموضوع : شرح : طريقة للتنقل بين قواعدالبيانات اثناء تشغيل البرنامج (/showthread.php?tid=4585) |
شرح : طريقة للتنقل بين قواعدالبيانات اثناء تشغيل البرنامج - a_senan - 29-09-12 السلام عليكم ورحمة الله وبركاته
ساقوم بشرح طريقه بسيطه للتنقل بين قواعد البيانات داخل البرنامج وقت التنفيذ الطريقه صغيره لكن مع تفعيلها وتطويرها يمكن الاستفاده منها من خلال التنقل بين السنوات الماليه للمشاريع المحاسبيه او الصغيره اوالمتوسطه. الشرح نقلته من المنتدى السابق وهو لم يكن موضوع بل كان رد (جواب) لي على عضو يسمى الاهدل يستفسر عن تغيير مسار قاعدة البيانات من داخل البرنامج وكان الجواب كما يلي بسم الله نبدا الشرح . اولا قم بعمل مجلدات داخل مجلد المشروع واعط المجلدات اسماء باسماء الاعوام مثل مجلد باسم 2011 ومجلد باسم 2012 ثانيا قم بخزن قاعدة البيانات داخل المجلدات وبامكانك خزن قواعد بيانات مختلفة الاسماء والجداول مختلفه وليست ضروره ان تكون الاسماء متشابهه لكن في الشرح ساقوم باستخدام نفس الاسماء للقواعد وكذلك الجداول وسيكون اسم القواعد db1 والجداول table1 والحقول name1 و y . واسماء المجلدات التي ستخزن عليها القواعد تكون 2011 و 2012 . الان انتقل الى المشروع في الفيجوال واضف Combo1 و Text1 و Text2 واجعل style الخاص ب Combo1 = 2 opdwnlist لكي لايتم الكتابه داخل Combo1 . الان اذهب الى صفحة الاكواد في قسم التصريحات لتعريف الاتصال Dim RS As New ADODB.Recordset
Dim DB As New ADODB.Connection في Form_Load لتعبئة Combo1 بالاعوام
Private Sub Form_Load()
Combo1.AddItem "2010" Combo1.AddItem "2011" Combo1.AddItem "2012" Combo1.AddItem "2013" End Sub الان نعمل اجراءت لاستدعائها عند اختيار العام من Combo1
الاجراء الاول سنسميه y2011 وسنقوم باضافة كود الاتصال بقاعدة البيانات التي توجد داخل المجلد2011 وسنضيف للاجراء كود فتح الجدول كود جلب البيانات من الحقول الى Text1 و Text2 الكود Public Sub y2011()
Set DB = New ADODB.Connection Set RS = New ADODB.Recordset DB.Open "provider = microsoft.jet.oledb.4.0;data source = " & App.Path & "\2011\db1.mdb" RS.Open "[Table1]", DB, adOpenStatic, adLockPessimistic Text1.Text = RS!Name1 Text2.Text = RS!y End Sub والان الاجراء y2012 وهو نفس الاكواد التي في الاجراء y2011 بما ان القواعد والحقول والجداول تحمل نفس الاسماء لكن سيتغير كود مسار قاعدة البيانات " & App.Path & "\2012\db1.mdb"
الكود Public Sub y2012()
Set DB = New ADODB.Connection Set RS = New ADODB.Recordset DB.Open "provider = microsoft.jet.oledb.4.0;data source = " & App.Path & "\2012\db1.mdb" If RS.State = adStateOpen Then RS.Close RS.Open "[Table1]", DB, adOpenStatic, adLockPessimistic Text1.Text = RS!Name1 Text2.Text = RS!y End Sub الان ننتقل الى الكود الاخير وهو في Combo1 داخل حدث Click وذلك عند اختيار العام 2011 سيقوم باستدعاء الاجراء Sub y2011 ولو اخترت العام 2012 سيستدعي الاجراء Sub y2012 وذلك من خلال امر الاستدعا Call ولو كان العام الذي ستختاره لايوجد له اجراء لكي يقوم باستدعاة ستظهر رساله تفيدك بانه لايمكن الاستدعاء الكود :
Private Sub Combo1_Click()
If Combo1.Text = "2011" Then Call y2011 ElseIf Combo1.Text = "2012" Then Call y2012 Else MsgBox " ادخل العام الصحيح ", vbInformation, "النتيجة" Exit Sub End If
الكود بشكل كامل
Dim Db As New ADODB.Connection Dim RS As New ADODB.Recordset Private Sub Form_Load() Combo1.AddItem "2010" Combo1.AddItem "2011" Combo1.AddItem "2012" Combo1.AddItem "2013" End Sub Private Sub Combo1_Click() If Combo1.Text = "2011" Then Call y2011 ElseIf Combo1.Text = "2012" Then Call y2012 Else MsgBox " ادخل العام الصحيح ", vbInformation, "النتيجة" Exit Sub End If End Sub Public Sub y2011() Set DB = New ADODB.Connection Set RS = New ADODB.Recordset DB.Open "provider = microsoft.jet.oledb.4.0;data source = " & App.Path & "\2011\db1.mdb" RS.Open "[Table1]", DB, adOpenStatic, adLockPessimistic Text1.Text = RS!Name1 Text2.Text = RS!y End Sub Public Sub y2012() Set DB = New ADODB.Connection Set RS = New ADODB.Recordset DB.Open "provider = microsoft.jet.oledb.4.0;data source = " & App.Path & "\2012\db1.mdb" If RS.State = adStateOpen Then RS.Close RS.Open "[Table1]", DB, adOpenStatic, adLockPessimistic Text1.Text = RS!Name1 Text2.Text = RS!y End Sub المثال في المرفقات الذي يحمل اسم 2011 هوالذي طبقناة في الاعلى والذي يحمل اسم 2012 لم نقم بشرحه لكن يقوم باختيار قاعدة البيانات يدوياَ اثناء تنفيذالبرنامج دون عمل اي اجراءت وذلك عبر CommonDialog
بالتوفيق شرح : طريقة للتنقل بين قواعدالبيانات اثناء تشغيل البرنامج - Ahmad Jawad - 29-09-12 السلام عليكم تحياتي لك أخي على هذا الشرح الرائع ،،،،، وفقك الله .. شرح : طريقة للتنقل بين قواعدالبيانات اثناء تشغيل البرنامج - a_senan - 29-09-12 اسعدني مرورك الكريم Ahmad Jawad RE: شرح : طريقة للتنقل بين قواعدالبيانات اثناء تشغيل البرنامج - أبوسعود - 14-07-17 مشكور اخي الكريم على الشرح الوافي |