منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : [ تم الحل ] فتح قاعدة البيانات من خلال أداة OpenFileDialog
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم أحبابي 
ممكن مساعدة بسيطة لكود ربط قاعدة بيانات الأكسس بالفيجول من خلال أداة  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

كيف أدمج الكودين ليتم إختيار قاعدة البيانات من الكمبيوتر لدي
أقصد أني لا أريد أن تكون قاعدة البيانات ثابتة في مكان معين 
تفضل اخي الكود جاهز
ان شاء الله
فقط انشيء Setting جديد واجعل اسمه File
كود :
Dim con As New OleDbConnection("provider=Microsoft.Ace.OLEDB.12.0;" & "data source=" & My.Settings.File)
وثم
كود :
       Dim OpenFileDialog1 As New OpenFileDialog
       OpenFileDialog1.Filter = "TEXT FILE | *.accdb"
       If OpenFileDialog1.ShowDialog = DialogResult.OK Then
           My.Settings.File = OpenFileDialog1.FileName
   My.Settings.Save
   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

تحياتى لك
وتمنياتى لك التوفيق

أحسنت أخي بارك الله فيك مشكور
(05-04-19, 01:32 AM)sads كتب : [ -> ]
أحسنت أخي بارك الله فيك مشكور


لى ولك وللجميع بامر الله


تحياتى لك
وتمنياتى لك التوفيق