Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

开发平台如何选定后批量删除除?

justinliao  发表于:2018-04-01 14:55:05  
复制


如上图,筛选后想一次性删除。如何修改下面代码?以下[PID]是唯一值

Public Sub btnDelete_Click()
    If Not Me.sfrList.Form.CurrentRecord > 0 Then Exit Sub


    Me.sfrList.SetFocus
    RunCommand acCmdSelectRecord


    Dim strMessage As String: strMessage = LoadString("Are you sure to delete?")
    If Not MsgBoxEx(strMessage, vbExclamation + vbOKCancel) = vbOK Then Exit Sub
    ADO.RunSQL "DELETE FROM [lblproductionlist] WHERE [PID]=" & SQLText(Me.sfrList![PID])
    RequeryDataObject Me.sfrList
End Sub

 

Top
仙来 发表于:2018-04-04 10:06:22
可以实现,发一个我以前做的示例供参考:http://www.accessoft.com/blog/article-show.asp?userid=30269&Id=11117

justinliao 发表于:2018-04-05 10:30:19

谢谢 仙来!这边还有一个问题:

这样多选删除是可以执行,但是删几条就会重复几条提示Are you sure to delete?”,如何做到只提示一次就OK?


 Dim i As Long

    Dim xh, n
    xh = Me.Text1
    n = Me.Text2


    If IsNull(Me.Text1) And IsNull(Me.Text2) Then MsgBox "还没有选择记录, 不能添加.": Exit Sub
 
    For i = xh To xh + n - 1
       
        Me.sfrList.Form.Recordset.MoveFirst
        Me.sfrList.Form.Recordset.Move (i - 1)
    If Not Me.sfrList.Form.CurrentRecord > 0 Then Exit Sub


    Me.sfrList.SetFocus
    RunCommand acCmdSelectRecord
    
    If MsgBoxEX("Are you sure to delete?", vbExclamation + vbOKCancel) = vbCancel Then
    Exit Sub
    Else
    ADO.RunSQL "DELETE FROM [lblzlcode] WHERE [ZLID]=" & SQLText(Me.sfrList![ZLID])
    Next
    RequeryDataObject Me.sfrList
    Me.Text1 = Null
    Me.Text2 = Null


仙来 发表于:2018-04-06 08:39:33
Dim i As Long Dim xh, n xh = Me.Text1 n = Me.Text2 If IsNull(Me.Text1) And IsNull(Me.Text2) Then MsgBox "还没有选择记录, 不能添加.": Exit Sub If MsgBoxEX("Are you sure to delete?", vbExclamation + vbOKCancel) = vbCancel Then Exit Sub Else For i = xh To xh + n - 1 Me.sfrList.Form.Recordset.MoveFirst Me.sfrList.Form.Recordset.Move (i - 1) If Not Me.sfrList.Form.CurrentRecord > 0 Then Exit Sub Me.sfrList.SetFocus RunCommand acCmdSelectRecord ADO.RunSQL "DELETE FROM [lblzlcode] WHERE [ZLID]=" & SQLText(Me.sfrList![ZLID]) Next RequeryDataObject Me.sfrList Me.Text1 = Null Me.Text2 = Null 没有测试,供参考

总记录:3篇  页次:1/1 9 1 :