PDA

View Full Version : سوال: انتقال اطلاعات اکسل به اکسس



vahidmasoudi1391
چهارشنبه 09 اردیبهشت 1394, 09:19 صبح
سلام
من چطور می توانم انتقال اطلاعات اکسل به اکسس را از طریق برنامه انجام دهم
متشکرم

zix_zixi
پنج شنبه 10 اردیبهشت 1394, 03:30 صبح
به این شکل

Dim conn As OleDbConnection
Dim dtr As OleDbDataReader
Dim dta As OleDbDataAdapter
Dim cmd As OleDbCommand
Dim dts As DataSet
Dim excel As String
Dim OpenFileDialog As New OpenFileDialog


OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocume nts
OpenFileDialog.Filter = "All Files (*.*)|*.*|Excel files (*.xlsx)|*.xlsx|CSV Files (*.csv)|*.csv|XLS Files (*.xls)|*xls"


If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then


Dim fi As New IO.FileInfo(OpenFileDialog.FileName)
Dim FileName As String = OpenFileDialog.FileName


excel = fi.FullName
conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel + ";Extended Properties=Excel 12.0;")
dta = New OleDbDataAdapter("Select * From [Sheet1$]", conn)
dts = New DataSet
dta.Fill(dts, "[Sheet1$]")
DataGridView1.DataSource = dts
DataGridView1.DataMember = "[Sheet1$]"
conn.Close()


البته در شرابطی که فایل هات آفیس 2007 یا همون XlsX یا accdb باشند
تا اینجا شما اطلاعات اکسل رو به یک گرید ویو منتقل کردید
در قدم بعد می بایست این اطلاعات رو در اکسس ذخیره کنید

vahidmasoudi1391
پنج شنبه 10 اردیبهشت 1394, 04:29 صبح
سلام دوست عزیز
من قبلا این کار را کرده بودم و تا دیتا گرید آورده بودم حالا در انتقال از دیتا گرید به اکسس مشکل دارم
الان پستی که شما گداشتید فقط به اکسل به دیتا گرید می آیید
متشکرم

zix_zixi
شنبه 12 اردیبهشت 1394, 10:23 صبح
خب این قسمتش که دیگه راحته
شما میای یه حلقه میذاری و اطلاعات رو یکی یکی ذخیره میکنی
مثلا for a=0 to datagridview1.rowcount-1
بعد اطلاعات سطر هات رو درون چند متغییر (بسته به تعداد Column های گرید ویو) بریز
بعد با دستور Insert متغیرهات رو در دیتا بیس ذخیره کن

شما فرض کن 2 ستون نام و معدل داری

Public cn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=db.accdb;Persist Security Info=False;")
Dim cmd As New OleDb.OleDbCommand("insert into test(pname,avg) values(@v1,@v2)", cn)

cn.Open()
For i = 0 To DataGridView1.RowCount - 1
cmd.Parameters.AddWithValue("@v1", Datagridview1.rows(i).cells(0).value)
cmd.Parameters.AddWithValue("@v2", datagridview1.rows(i).cells(1).value)
cmd.ExecuteNonQuery()
Next
cn.close()

vahidmasoudi1391
پنج شنبه 17 اردیبهشت 1394, 20:53 عصر
سلام
من این کار را انجام دادم ولی خطا می دهد
با تشکر