السلام عليكم أحبابي
ممكن مساعدة بسيطة لكود ربط قاعدة بيانات الأكسس بالفيجول من خلال أداة OpenFileDialog
لدي هذا كود الإتصال في مكان التعريفات بأعلى الأكواد
Dim con As New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;" & "data source=" & Application.StartupPath & "\ABC.accdb")
ولدي كود فتح OpenFileDialog
OpenFileDialog1.Filter = "TEXT FILE | *.accdb"
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
TextBox23.Text = OpenFileDialog1.FileName
End If
كيف أدمج الكودين ليتم إختيار قاعدة البيانات من الكمبيوتر لدي
أقصد أني لا أريد أن تكون قاعدة البيانات ثابتة في مكان معين
كما اشار اليه اخى DK-x
ولكن للتوضيح هذا السطر
كود :
Dim con As New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;" & "data source=" & My.Settings.File)
يضع خارج اى نظاق الحدث حسب طريقتك لكتابة كود الاتصال
وتاتى فى زر اختيار قاعدة البيانات فى حدث الزر واكتب
كود :
Dim OpenFileDialog1 As New OpenFileDialog
OpenFileDialog1.Filter = "DB Access FILE | *.accdb"
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
My.Settings.File = OpenFileDialog1.FileName
My.Settings.Save
End If
تحياتى لك
وتمنياتى لك التوفيق
أشكركم جميعا على الإجابة
ولاكن واجهتني مشكلة عند إستخدام Setting فعند تحميل قاعدة البيانات تحفظ مكان مسار القاعدة في ذاكرة البرنامج بإستخدام المتغير وعند القفل وفتح البرنامج يختار المسار الذي إخترته سابقاً تلقائياً وهذه وضيفة [b]Setting[/b]
ولاكن أريد عند تشغيل البرنامج و إختيار الملف مثلا يحتوي على بيانات قديمة مثلاً أريده أن يتحدث يحمل مباشرة داخل DataGridView أي تحديث لمكان القاعدة مباشرة دون غلق وفتح البرنامج
بعد ان تضع مسار قاعده البيانات جديد في Setting لا بد من عمل Save مثل
My.Settings.File = OpenFileDialog1.FileName
My.Settings.Save
ثم تغيير DataSource الموجود في الاتصال con عن طريق ConnectionStringBuilder مثل
Dim b As New OleDbConnectionStringBuilder(con.ConnectionString)
b.DataSource = OpenFileDialog1.FileName
con.ConnectionString = b.ConnectionString
وفي النهايه تقوم باعاده استدعاء تعبئه DataGridView
(05-04-19, 12:49 AM)بدري كتب : [ -> ]بعد ان تضع مسار قاعده البيانات جديد في Setting لا بد من عمل Save مثل
My.Settings.File = OpenFileDialog1.FileName
My.Settings.Save
ثم تغيير DataSource الموجود في الاتصال con عن طريق ConnectionStringBuilder مثل
Dim b As New OleDbConnectionStringBuilder(con.ConnectionString)
b.DataSource = OpenFileDialog1.FileName
con.ConnectionString = b.ConnectionString
وفي النهايه تقوم باعاده استدعاء تعبئه DataGridView
أخي هل من توضيح أكثر لم أفهم جيداً وأين أضع الكود التي ذكرته ياريت التوضيح بمثال
سبق وقمت بذكر ان يتم وضع هذا الكود خارج نطاق اى حدث
كود :
Dim con As New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;" & "data source=" & My.Settings.File)
وسيبقي كما هو مذكور بالاعلى
ولكن فى كود الزر لاختيار قاعدة البيانات ستقوم بتعديل بسيط فقط
ليصبح الكود بهذا الشكل
كود :
Dim OpenFileDialog1 As New OpenFileDialog
OpenFileDialog1.Filter = "DB Access FILE | *.accdb"
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
My.Settings.File = OpenFileDialog1.FileName
My.Settings.Save
con = New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;" & "data source=" & OpenFileDialog1.FileName)
End If
الكود سيكون صالح ويعمل معك على المسار المختار
حتى اتمام اغلاق الفوم او اغلاق البرنامج
وبمجرد اعادة تحميل الفروم سيعود على وضع Settings
تحياتى لك
وتمنياتى لك التوفيق
(05-04-19, 01:07 AM)elgokr كتب : [ -> ]سبق وقمت بذكر ان يتم وضع هذا الكود خارج نطاق اى حدث
كود :
Dim con As New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;" & "data source=" & My.Settings.File)
وسيبقي كما هو مذكور بالاعلى
ولكن فى كود الزر لاختيار قاعدة البيانات ستقوم بتعديل بسيط فقط
ليصبح الكود بهذا الشكل
كود :
Dim OpenFileDialog1 As New OpenFileDialog
OpenFileDialog1.Filter = "DB Access FILE | *.accdb"
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
My.Settings.File = OpenFileDialog1.FileName
My.Settings.Save
con = New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;" & "data source=" & OpenFileDialog1.FileName)
End If
الكود سيكون صالح ويعمل معك على المسار المختار
حتى اتمام اغلاق الفوم او اغلاق البرنامج
وبمجرد اعادة تحميل الفروم سيعود على وضع Settings
تحياتى لك
وتمنياتى لك التوفيق
أحسنت أخي بارك الله فيك مشكور