怎么就删除不了那?在线=====

840206 2006-05-19 09:28:41
我想删除表里的内容,怎么删那?我是这么写的,不好使啊!

Dim intcount As Integer
intcount = MSFlexGrid1.Row
rs.Open "select * from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'", db, adOpenStatic, adLockReadOnly
rs.Close
Private Sub 删除_Click()
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
db.ConnectionString = "driver={SQL Server};server=DAHE-568D57C089;database=歌库;"
db.Open
rs.Open "delete from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'and 歌手名 = '" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'", db, adOpenStatic, adLockReadOnly

MsgBox "删除成功!", vbInformation, "提醒"
End Sub
...全文
204 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hr88rong 2006-05-20
  • 打赏
  • 举报
回复
Dim intcount As Integer
intcount = MSFlexGrid1.Row
rs.open "select * from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'", db, adOpenStatic, adLockReadOnly
rs.Close
Private Sub 删除_Click()
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
db.ConnectionString = "driver={SQL Server};server=DAHE-568D57C089;database=歌库;"
db.Open
db.Execute "delete from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "' and 歌手名 = '" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'"
'----->and前面要空格,还有用adLockReadOnly是只读的,也就删不了!还有你的intcount变量是窗体变量吗?还是在另一个过程里定义的?

MsgBox "删除成功!", vbInformation, "提醒"
End Sub

附上:
rs.open后的相关参数

adOpenFowardOnly。使用前向游标,你只能在记录集中向前移动。
adopenKeyset。使用Keyset游标,你可以在记录集中向前或向后移动。如果另一个用户删除或改变了一条记录,记录集中将反映这个变化。但是,如果另一个用户添加了一条新记录,新记录不会出现在记录集中。
adOpenDynamic。使用动态游标,你可以在记录集中向前或向后移动。其他用户造成的记录的任何变化都将在记录集中有所反映。
adOpenStatic。使用静态游标,你可以在记录集中向前或向后移动。但是,静态游标不会对其他用户造成的记录变化有所反映。
---------------------------------------------------------------

adLockReadOnly。指定你不能修改记录集中的记录。
adLockPessimistic。指定在编辑一个记录时,立即锁定它。
adLockOptimstic。指定只有调用记录集的Update方法时,才锁定记录。
adLockBatchOptimstic。指定记录只能成批地更新。
840206 2006-05-20
  • 打赏
  • 举报
回复
Private Sub 删除_Click()
Set db = New ADODb.Connection
Set Rs = New ADODb.Recordset
db.ConnectionString = "driver={SQL Server};server=DAHE-568D57C089;database=歌库;"
db.Open

Rs.Open "select * from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'", db, adOpenStatic, adLockReadOnly
Rs.Close
db.Execute "delete from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1)) & "' and 歌手名 = '" & Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2)) & "'"



MsgBox "删除成功!", vbInformation, "提醒"
End Sub
840206 2006-05-20
  • 打赏
  • 举报
回复
现在能删拉,但是删的是整个表里的内容!我是想删出其中的一行的内容!
feiyun0112 2006-05-20
  • 打赏
  • 举报
回复
msgbox "delete from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'and 歌手名 = '" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'"
先看sql对不
840206 2006-05-20
  • 打赏
  • 举报
回复
谢谢各位拉!搞定拉
Hassle 2006-05-19
  • 打赏
  • 举报
回复
adLockReadOnly 只读?
vbman2003 2006-05-19
  • 打赏
  • 举报
回复
用 execute的方法没错,你debug.print一下SQL语句"delete from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "' and 歌手名 = '" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'",看看对不,注意空格
饮水需思源 2006-05-19
  • 打赏
  • 举报
回复
歌手名与歌曲名显示在同一列?
db.execute "delete from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'and 歌手名 = '" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'"
840206 2006-05-19
  • 打赏
  • 举报
回复
我试了,还是不行啊,已选表里的内容没有变啊!
840206 2006-05-19
  • 打赏
  • 举报
回复
比如:
歌手名 歌曲名
阿牛 爱我久久
阿牛 桃花朵朵开
刘得华 练习
vbman2003 2006-05-19
  • 打赏
  • 举报
回复
rs.Open "delete from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'and 歌手名 = '" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'", db, adOpenStatic, adLockReadOnly
===============================
正确的写法是:
db.execute "delete from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'and 歌手名 = '" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'"
bulletCoderHope 2006-05-19
  • 打赏
  • 举报
回复
ADODC.Recordset.Delete
'或 rs.Delete这个说得很正确
of123 2006-05-19
  • 打赏
  • 举报
回复
如果你的MSHFlexGrid1 已经绑定了 ADODC 或 rs,只需:
Private Sub 删除_Click()
ADODC.Recordset.Delete
'或 rs.Delete
End Sub

否则:
Private Sub 删除_Click()
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
db.ConnectionString = "driver={SQL Server};server=DAHE-568D57C089;database=歌库;"
db.Open
db.Execute "delete from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)) & "'and 歌手名 = '" & Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1)) & "'"
'注意,歌曲名和歌手名所比较的网格单元必须正确,原来都是TextMatrix(x, 1),所以执行结果是没有记录被删掉。

MsgBox "删除成功!", vbInformation, "提醒"
End Sub
bulletCoderHope 2006-05-19
  • 打赏
  • 举报
回复
db.execute "delete from yixuan where 歌曲名 ='" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'and 歌手名 = '" & Trim(MSFlexGrid1.TextMatrix(intcount, 1)) & "'"
两个条件是相同的格子,但是对应的字段取不一样!

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧