我DataGridView1和Excel连接好了,想删除其中的某一行,下面是代码。遇到的问题是,点删除button后,DataGridview上显示删掉了,可是Excel数据表里还是原来数据。。并没有被删除。。大家能帮帮忙吗?谢谢了!Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim loginconn As New OleDb.OleDbConnection
Dim strsql As String
Dim fName As String
fName = "c:\SCOR\1 Top Level\Top Level.xls"
loginconn.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fName & ";Extended Properties=Excel 8.0")
strsql = "delete * from [sheet1$] where No ='" & TextBox1.Text.Trim & "'"
Dim cmdlogin As New OleDb.OleDbCommand(strsql, loginconn)
loginconn.Open()
cmdlogin.ExecuteScalar()
Dim loginread As OleDb.OleDbDataReader = cmdlogin.ExecuteScalar
Dim delrow As DataGridViewRow
For Each delrow In DataGridView1.SelectedRows
DataGridView1.Rows.Remove(delrow)
Next
MsgBox("delete record successfully!", MsgBoxStyle.Information, "delete record")
End Sub
Dim loginconn As New OleDb.OleDbConnection
Dim strsql As String
Dim fName As String
fName = "c:\SCOR\1 Top Level\Top Level.xls"
loginconn.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fName & ";Extended Properties=Excel 8.0")
strsql = "delete * from [sheet1$] where No ='" & TextBox1.Text.Trim & "'"
Dim cmdlogin As New OleDb.OleDbCommand(strsql, loginconn)
loginconn.Open()
cmdlogin.ExecuteScalar()
Dim loginread As OleDb.OleDbDataReader = cmdlogin.ExecuteScalar
Dim delrow As DataGridViewRow
For Each delrow In DataGridView1.SelectedRows
DataGridView1.Rows.Remove(delrow)
Next
MsgBox("delete record successfully!", MsgBoxStyle.Information, "delete record")
End Sub
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
"delete * from [sheet1$] where No ='" & TextBox1.Text.Trim & "'"你的TextBox1 绑定显示的当前选定单元格的数据是吗?那么如果有多列的时候,你选定的还是NO这一列吗?
loginconn.Open
loginconn.Execute strsql
谢谢大家的帮忙!
For Each delrow In DataGridView1.SelectedRows
strsql = "delete * from [sheet1$] where No ='" & delrow.cells(NoCol) & "'"
Dim cmdlogin As New OleDb.OleDbCommand(strsql, loginconn)
loginconn.Open()
cmdlogin.ExecuteScalar() DataGridView1.Rows.Remove(delrow)
Next
NoCol是你对应NO的列
能帮帮忙吗?
Private Sub Command1_Click()
Dim xApp As Excel.Application
Dim xWB As Excel.Workbook
Set xApp = New Excel.Application
Set xWB = xApp.Workbooks.Open("c:\SCOR\1 Top Level\Top Level.xls")
xWB.Worksheets("Sheet1").Rows("3:3").Delete xlUp
xWB.Save
xWB.Close
Set xWB = Nothing
xApp.Quit
Set xApp = Nothing
End Sub
我把xlup删掉后运行,可以删除行,但是不是点哪个删除哪个。它是自己按顺序删除的。
另外能解释下3:3是什么意思吗?十分感谢!
因为你调试运行的时候,操作的是debug目录下的xls文件.所以你C盘下的文件是没有修改的
tiger,可能是我没表达清楚。我说的意思是,点哪行就删哪行,怎么有那个点的事件?呵
只是删除的方式不同而已。
还有,我试了下用Access,用sql的delete语句做。可以删除。可就是用Excel总不行。总是错误:不可识别的数据库格式
这能算做是VB的一个缺陷吗?
估计你的 Office 版本高了,保存的文件格式与 ConnectionString 指定格式不一致。开发语言是工具,不具备人工智能,缺陷在你自己身上。
呵,感谢大家的指导。恩tiger说的对。还是要自己找方法咯~
(分已经不重要了吧。。能给的分就这么点。。)