
رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )
تصدير البيانات من قاعدة البيانات إلى ملف Excel
1-قم بفتح مشروع قاعدة البيانات الذى قمت بإنشاءة ثم اذهب إلى شريط القوائم واضغط Project واختر Add Refrence

2-تظهر لك نافذة Add Refrence قم بالضغط على COM ثم قم باختيار Microsoft Office 12.0 Object Library وهذا يعتمد على إصدار أوفيس الذى تستخدمة يعنى ممكن يكون Microsoft Office 11.0 Object Library إذا كنت تستخدم Office 2003 ..الخ

3-قم بإضافة أى زر جديد إلى المشروع

4-بافتراض أن DataSet الذى قمت بإنشاءها هى DataSet1 وأن الجدول المطلوب عرضة هو Customers يكون كود الزر كالتالى
كود:
Dim excel As New Microsoft.Office.Interop.Excel.ApplicationClass
Dim Book As Microsoft.Office.Interop.Excel.Workbook
Dim Sheet As Microsoft.Office.Interop.Excel.Worksheet
Book = excel.Workbooks.Add()
Sheet = Book.ActiveSheet()
Dim dt As System.Data.DataTable = DataSet1.Customers
Dim dc As System.Data.DataColumn
Dim dr As System.Data.DataRow
Dim colIndex As Integer = 0
Dim rowIndex As Integer = 0
For Each dc In dt.Columns
colIndex = colIndex + 1
excel.Cells(1, colIndex) = dc.ColumnName
Next
For Each dr In dt.Rows
rowIndex = rowIndex + 1
colIndex = 0
For Each dc In dt.Columns
colIndex = colIndex + 1
excel.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
Next
Next
Sheet.Columns.AutoFit()
Dim strFileName As String = "C:\taher.xls"
Dim blnFileOpen As Boolean = False
Try
Dim fileTemp As System.IO.FileStream = System.IO.File.OpenWrite(strFileName)
fileTemp.Close()
Catch ex As Exception
blnFileOpen = False
End Try
If System.IO.File.Exists(strFileName) Then
System.IO.File.Delete(strFileName)
End If
Book.SaveAs(strFileName)
excel.Workbooks.Open(strFileName)
excel.Visible = True5
-قم بالضغط على F5 لتجربة البرنامج وقم بالضغط على الزر الذى قمت بإنشاءة سيفتح الملف ويتم حفظة تلقائيا فى المسار \:C باسم taher.xls ويمكنك تغييرة بسهولة

ملحوظة مهمة
- يجب تغيير DataSet1 إلى نفس اسم DataSet الذى لديك داخل المشروع
- تغيير إسم الجدول Customers فى الكود
كود:
Dim dt As System.Data.DataTable = DataSet1.Customers
بإزالة Customers ووضع اسم الجدول الذى لديك داخل DataSet
- إذا كان لديك أكثر من جدول داخل DataSet يتم تغيير الكود السابق إلى
كود:
Dim dt As System.Data.DataTable = DataSet1.Tables(0)
تصلح هذة الطريقة سواء مع كافة قواعد البيانات لأنها غير معتمدة على نوع قاعدة البيانات ولكن تعتمد على DataSet
سأقوم بشرح الكود وضرب عدد من الأمثلة فى موضوع منفصل بمشيئة الله
و بهذا أنتهى درس اليوم و يتبع بأذن الله ........