'假设第一列显示的是主键ID Dim i As Integer Dim strFilter As String For i = 1 To vfg.SelectedRows strFilter = "OR ID=" & vfg.TextMatrix(vfg.SelectedRow(i)) Next Adodc1.Recordset.Filter = Right(strFilter, Len(strFilter) - 2) Adodc1.Recordset.Delete adAffectGroup Adodc1.Recordset.UpdateBatch
'假设你的vsflexgrid的控件名为VSFlexGrid1 '删除按纽command的控件名为:Command1 '数据控件的名称为:Adodc1 ' '对应的处理代码如下:Private Sub Command1_Click() Dim x1&, x2&, y1&, y2&, i&, idCol&, iFilter$
With VSFlexGrid1 .GetSelection x1, y1, x2, y2 '得到被选择的行列 idCol = .ColIndex("id") '假设id为你的关键字段,也可以直接赋值 For i = x1 To x2 iFilter = " and id=" & .TextMatrix(i, idCol) Next End With iFilter = Mid(iFilter, 6)
With Adodc1.Recordset .Filter = iFilter .Delete adAffectGroup .UpdateBatch End With End Sub
'假设你的vsflexgrid的控件名为VSFlexGrid1 '删除按纽command的控件名为:Command1 '数据控件的名称为:Adodc1 ' '对应的处理代码如下:Private Sub Command1_Click() Dim x1&, x2&, y1&, y2&, i&, idCol&, iFilter$
With VSFlexGrid1 .GetSelection x1, y1, x2, y2 '得到被选择的行列 idCol = .ColIndex("id") '假设id为你的关键字段,也可以直接赋值 For i = x1 To x2 iFilter = " and id=" & .TextMatrix(i, idCol) Next End With iFilter = Mid(iFilter, 6)
With Adodc1.Recordset .Filter = iFilter .Delete adAffectGroup .UpdateBatch End With End Sub
'假设你的vsflexgrid的控件名为VSFlexGrid1 '删除按纽command的控件名为:Command1 '数据控件的名称为:Adodc1 ' '对应的处理代码如下:Private Sub Command1_Click() Dim x1&, x2&, y1&, y2&, i&, idCol&, iFilter$
With VSFlexGrid1 .GetSelection x1, y1, x2, y2 '得到被选择的行列 idCol = .ColIndex("id") '假设id为你的关键字段,也可以直接赋值 For i = x1 To x2 iFilter = " and id=" & .TextMatrix(i, idCol) Next End With iFilter = Mid(iFilter, 6)
With Adodc1.Recordset .Filter = iFilter .Delete adAffectGroup .UpdateBatch End With End Sub
那你干脆用这种方法判断选择的行咯 For i = 0 to fg.Rows If fg.IsSelected(i) Then Debug.Print "Row "; i; " is selected" Next 不过这种判断方法要慢
With Adodc1.Recordset .Filter = iFilter .Delete adAffectGroup .UpdateBatch End With.Delete adAffectGroup 一句 运行出现实时错误'3219' 操作在该内容中不被允许。为何?
Dim i As Integer
Dim strFilter As String
For i = 1 To vfg.SelectedRows
strFilter = "OR ID=" & vfg.TextMatrix(vfg.SelectedRow(i))
Next
Adodc1.Recordset.Filter = Right(strFilter, Len(strFilter) - 2)
Adodc1.Recordset.Delete adAffectGroup
Adodc1.Recordset.UpdateBatch
不能执行。该如何?谢谢
为何 vfg.SelectedRows 的值总为0?我已选中多行。
谢谢.
'删除按纽command的控件名为:Command1
'数据控件的名称为:Adodc1
'
'对应的处理代码如下:Private Sub Command1_Click()
Dim x1&, x2&, y1&, y2&, i&, idCol&, iFilter$
With VSFlexGrid1
.GetSelection x1, y1, x2, y2 '得到被选择的行列
idCol = .ColIndex("id") '假设id为你的关键字段,也可以直接赋值
For i = x1 To x2
iFilter = " and id=" & .TextMatrix(i, idCol)
Next
End With
iFilter = Mid(iFilter, 6)
With Adodc1.Recordset
.Filter = iFilter
.Delete adAffectGroup
.UpdateBatch
End With
End Sub
'删除按纽command的控件名为:Command1
'数据控件的名称为:Adodc1
'
'对应的处理代码如下:Private Sub Command1_Click()
Dim x1&, x2&, y1&, y2&, i&, idCol&, iFilter$
With VSFlexGrid1
.GetSelection x1, y1, x2, y2 '得到被选择的行列
idCol = .ColIndex("id") '假设id为你的关键字段,也可以直接赋值
For i = x1 To x2
iFilter = " and id=" & .TextMatrix(i, idCol)
Next
End With
iFilter = Mid(iFilter, 6)
With Adodc1.Recordset
.Filter = iFilter
.Delete adAffectGroup
.UpdateBatch
End With
End Sub
'删除按纽command的控件名为:Command1
'数据控件的名称为:Adodc1
'
'对应的处理代码如下:Private Sub Command1_Click()
Dim x1&, x2&, y1&, y2&, i&, idCol&, iFilter$
With VSFlexGrid1
.GetSelection x1, y1, x2, y2 '得到被选择的行列
idCol = .ColIndex("id") '假设id为你的关键字段,也可以直接赋值
For i = x1 To x2
iFilter = " and id=" & .TextMatrix(i, idCol)
Next
End With
iFilter = Mid(iFilter, 6)
With Adodc1.Recordset
.Filter = iFilter
.Delete adAffectGroup
.UpdateBatch
End With
End Sub
For i = 0 to fg.Rows
If fg.IsSelected(i) Then Debug.Print "Row "; i; " is selected"
Next
不过这种判断方法要慢
.Filter = iFilter
.Delete adAffectGroup
.UpdateBatch
End With.Delete adAffectGroup 一句
运行出现实时错误'3219'
操作在该内容中不被允许。为何?