الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في تعديل كود تصدير البيانات إلى أكسس

بدأه mujaini في 24 مايو 2009 · 7 رد · 1,030 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم..

هذا الكود لعملية تصدير البيانات إلى ملف أكسس وهو يقوم بتصدير البيانات بناءاً على القيمة المحدد من الكومبو بوكس .أريد التعديل في الكود لتتم عملية لتصدير بناءاً على

عناصر الليست بوكس كلها.

		If opt1.Checked = True Then
			Dim sql As String = "select [code],[sch_name],[emp_name],[employment],[emp_file],[email],[emp_phone] from [e_tab]where[employment] = '" & emp_file.Text & "' order by emp_name"
			Dim ds As New DataSet
			Dim adpater As New OleDbDataAdapter(sql, db)
			adpater.Fill(ds, "e_tab")
			'_______________________________________________________________________
			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 = ds.Tables(0)
			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:\EXPORT_TO_EXCEL.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 = True
		End If
#2

وينكم أخواني ..

#3

السلام عليكــم ورحمـة الله وبركاتــه ،،

المشكله الان فى جمله الاستعلام انى عايز اضيف اكثر من قيمه اليها تمام ... قول تمام

طيب اجنا ممكن نعمل لوب على اليست بوكس ونجلب كل الايتم المختاره فيها ثم نعطيها الى جمله الاستعلام


Dim strSQLStatement As String = String.Empty
'------------------------------------------------
If DemoCheckedListBox.CheckedItems.Count > 0 Then
Dim intItem As Integer

For intItem = 0 To DemoCheckedListBox.CheckedItems.Count - 1
StrSql += "'" & DemoCheckedListBox.CheckedItems(intItem).ToString & "',"
Next

'Remove last char
StrSql = StrSql.Remove(StrSql.Length - 1)
strSQLStatement = "Select * From [e_tab] Where [employment] In '" + StrSql + "' order by emp_name"
'
'Export to Excel
Else
MessageBox.Show("Please ,Select your item(s)")
End If
Dim StrSql As String = String.Empty

على فكره ممكن تجلب كل البيانات مره وحده وتستحدم الفيلتر على الداتا تابول وبعدين تورد الى الاكسيل من خلال فلتر الداتا تابل علشان مش كل مره يروح يجيب البيانات من قاعده البيانات ويرجع شغلانه متعبه جدا على الداتا ادبتر :happy:

وان شاء الله احد الاخوه يعطيك حل افضل بأذن الله

#4

تسلم ع الرد..ولكن.

الخاصية CHECKEDITTEMS غير متاحة لLISTBOX .وأستبدلتها بITTEMS .

ولكن تظهر لي الرسالة التالية.

In operator without () in query expression '[employment] In '' معلم اسلامية',' معلمة جغرافيا',' معلمة فنون تشكيلية'''.

هذا هو الكود :

Dim StrSql As String = String.Empty

Dim strSQLStatement As String = String.Empty

'------------------------------------------------

If DemoCheckedListBox.Items.Count > 0 Then

Dim intItem As Integer

Dim excel As New Microsoft.Office.Interop.Excel.ApplicationClass

For intItem = 0 To DemoCheckedListBox.Items.Count - 1

StrSql += "'" & DemoCheckedListBox.Items(intItem).ToString & "',"

Next

'Remove last char

StrSql = StrSql.Remove(StrSql.Length - 1)

strSQLStatement = "Select * From [e_tab] Where [employment] In '" + StrSql + "' order by emp_name"

Dim DS As New DataSet

Dim ADAPTER As New OleDbDataAdapter(strSQLStatement, db)

ADAPTER.Fill(DS, "E_TAB")

الخطأ يظهر في السطر الأخير.

أرجو التوضيح.

تحياتي..

#5

السلام عليكــم ورحمـة الله وبركاتــه ،،


DemoListBox.SelectionMode = MultiSimple
تمام
اولا من شاشه الخصائص لاداه ليست بوكس اجعل الخاصيه

وده الكود تم تعديله


Dim strSQLStatement As String = String.Empty
'------------------------------------------------
If DemoListBox.SelectedItems.Count > 0 Then
Dim intItem As Integer

For intItem = 0 To DemoListBox.SelectedItems.Count - 1
StrSql += "'" & DemoListBox.SelectedItems(intItem).ToString & "',"
Next

'Remove last char
StrSql = StrSql.Remove(StrSql.Length - 1)
strSQLStatement = "Select * From [e_tab] Where [employment] In " + "(" + StrSql + ")" + " order by emp_name"

'Export to Excel

Else
MessageBox.Show("Please ,Select your item(s)")
End If
  Dim StrSql As String = String.Empty

وبالتوفيق

#6

تسلم ياطيب. بس ممكن توضيح لهذا الكود

For intItem = 0 To DemoListBox.SelectedItems.Count - 1

وبالتحديد .COUNT-1

فيه شي ثاني التصدير لايتم إلا إذا حددت عناصر القائمة(بتضليلها).

تحياتي

#7
mujaini كتب:
For intItem = 0 To DemoListBox.SelectedItems.Count - 1

وبالتحديد .COUNT-1

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

mujaini كتب:
وبالتحديد .COUNT-1

ده لان الارقام فى الكمبيوتر تبدء من صفر مش من واحد علشان كده لازم نقلل واحد

mujaini كتب:
فيه شي ثاني التصدير لايتم إلا إذا حددت عناصر القائمة(بتضليلها).

:happy:

لو عايز كل اليست ممكن تستخدم الجمله ديه

For intItem = 0 To DemoListBox.items.Count - 1
#8

ألف شكر أخي العزيز..وبارك الله فيك

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…