تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[ تم الحل ] فتح قاعدة البيانات من خلال أداة OpenFileDialog
#1
السلام عليكم أحبابي 
ممكن مساعدة بسيطة لكود ربط قاعدة بيانات الأكسس بالفيجول من خلال أداة  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

كيف أدمج الكودين ليتم إختيار قاعدة البيانات من الكمبيوتر لدي
أقصد أني لا أريد أن تكون قاعدة البيانات ثابتة في مكان معين 
الرد
تم الشكر بواسطة:
#2
تفضل اخي الكود جاهز
ان شاء الله
فقط انشيء 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

هم يسرقون والقانون كتب لنا...
بعض اسهاماتي

الرد
تم الشكر بواسطة: بدري , elgokr , sads
#3
كما اشار اليه اخى 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

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: بدري , DK-x
#4
أشكركم جميعا على الإجابة 

ولاكن واجهتني مشكلة عند إستخدام Setting فعند تحميل قاعدة البيانات تحفظ مكان مسار القاعدة في ذاكرة البرنامج بإستخدام المتغير وعند القفل وفتح البرنامج يختار المسار الذي إخترته سابقاً تلقائياً وهذه وضيفة [b]Setting[/b]
ولاكن أريد عند تشغيل البرنامج و إختيار الملف مثلا يحتوي على بيانات قديمة مثلاً أريده أن يتحدث يحمل مباشرة داخل DataGridView أي تحديث لمكان القاعدة مباشرة دون غلق وفتح البرنامج
الرد
تم الشكر بواسطة:
#5
بعد ان تضع مسار قاعده البيانات جديد في 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
الرد
تم الشكر بواسطة: DK-x , sads , sads
#6
(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

أخي هل من توضيح أكثر لم أفهم جيداً وأين أضع الكود التي ذكرته ياريت التوضيح بمثال
الرد
تم الشكر بواسطة:
#7
سبق وقمت بذكر ان يتم وضع هذا الكود خارج نطاق اى حدث
كود :
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

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: sads , بدري
#8
(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

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

أحسنت أخي بارك الله فيك مشكور
الرد
تم الشكر بواسطة: elgokr
#9
(05-04-19, 01:32 AM)sads كتب :
أحسنت أخي بارك الله فيك مشكور


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


تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: sads


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] سؤال عن ترتيب البيانات عند الاستعلام محمد اسماعيل 6 85 منذ 9 ساعة مضت
آخر رد: محمد اسماعيل
Exclamation [سؤال] مشكلة عدم قبول النصوص الطويل في قاعدة البيانات على برنامج فيجوال بيسك 2010 الرائد 12 301 14-06-19, 03:03 PM
آخر رد: elgokr
  [ تمّ الحل ] : إختفاء الأدوات داخل الفورم عبد العزيز البسكري 7 190 10-06-19, 02:05 PM
آخر رد: sendbad100
  مشكلة في اضافة التاريخ الي قاعدة بيانات اكسس makky 8 161 05-06-19, 03:40 AM
آخر رد: heshamelkomy71
  مشكلة في اضافة التاريخ الي قاعدة بيانات اكسس makky 11 334 04-06-19, 03:12 PM
آخر رد: elgokr
  تسجيل الدخول من خلال الكوكيز ابو روضة 6 305 04-06-19, 01:20 AM
آخر رد: ابو روضة
  مشكلة في الاتصال بقاعدة البيانات والسيرفر sqlserver nooralcown 1 270 03-06-19, 12:33 PM
آخر رد: سعود
  [ تمّ الحل ] : تنسيق التاريخ بقاعدة البيانات : الأكسس عبد العزيز البسكري 16 912 03-06-19, 11:56 AM
آخر رد: سعود
  طريقة الاتصال علي جهاز من خلال ip static atefkhalf2004 1 101 31-05-19, 02:50 AM
آخر رد: sami4
  [VB.NET] تصدير البيانات من عدة جداول الى قالب وورد معد مسبقا" aljzazy 1 131 21-05-19, 02:03 PM
آخر رد: alshandodi

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم