Access交流中心

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

命令或操作“DeleteRecord”当前不可用关乎版本?

乔峰  发表于:2012-11-20 20:33:56  
复制

红尘如烟,麥田,竹笛,十段,金宇   请各位高手出手吧.  谢谢了.

Dim selH As Integer
Dim selT As Integer

Dim i As Integer

selT = Me.子窗体.Form.SelTop
selH = Me.子窗体.Form.SelHeight

For i = 0 To selH - 1
Me.子窗体.Form.SelTop = selT + i
If Me.子窗体.Form.NewRecord <> True Then
  DoCmd.RunCommand acCmdDeleteRecord

 出现 "命令或操作“DeleteRecord”当前不可用"        关乎版本?

End If
  Me.子窗体.Form.Recalc     '立即更新控件上的数据
Next
Exit_cmdCls_Click:
Exit Sub

Err_cmdCls_Click:
Debug.Print Err.Description
Resume Exit_cmdCls_Click

 

Top
乔峰 发表于:2012-11-21 01:18:37
已经解决问题, 不是焦点问题, 而是把主窗体上的子窗体删除, 重新添加 子窗体/子报表控件, 再把子窗体/子报表控件的数据源连接到子窗体, 一切OK .

煮江品茶 发表于:2012-11-21 09:09:56

不用写那么多代码,如此即可:

ssql=me.子窗体.form.RecordSource
strwh="true and " & me.子窗体.form.filter
ssql="delete * from (" & ssql & ") where " & strwh
docmd.runsql ssql

 



乔峰 发表于:2012-11-24 21:52:01
ssql=me.子窗体.form.RecordSource
strwh="true and " & me.子窗体.form.filter
ssql="delete * from (" & ssql & ") where " & strwh
docmd.runsql ssql


这个代码虽然不是我要的,不过还是要谢谢你,以后多指教.

我的子窗体是 数据表形式, 没有自动编号, 也没有特殊的条件, 而是用鼠标把几条不想要的记录描黑(选择) 然后删除而已, 而且可能和前几条完全一样.

当然也不是我在一楼说的 "  把主窗体上的子窗体删除, 重新添加 子窗体/子报表控件, 再把子窗体/子报表控件的数据源连接到子窗体" 就能解决问题.

应该是把 子窗体 作为主窗体的一个控件(大家都知道,我后来才知道的, 然后在主窗体 代码中 

加入如下代码

Private Sub frm子窗体_Enter()
End Sub

Private Sub frm子窗体_Exit(Cancel As Integer)
selT = Me.frm子窗体.Form.SelTop
selH = Me.frm子窗体.Form.SelHeight
End Sub

并在主窗体设计状态下, 在 子窗体整个 控件 的 事件中 

进入        [事件过程]

退出        [事件过程]

这样指派一下, 这样就完全正常了, 实际上   主窗体  承认这个 子窗体控件 了,(有了合法身份,当然就有焦点了)  呵呵幽默一下.





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