Access交流中心

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

子窗体不能刷新

benhum  发表于:2013-06-27 12:54:58  
复制

Function DelRecord(tbl As String, frmqur As String, frmchd As String)
'--------删除记录-----表名----------查询窗体---------子窗体
If MsgBox("确实要删除系统编号为“" & Forms(frmqur)(frmchd)!系统编号 & "”的记录吗?", vbYesNo, "系统提示") = vbYes Then
    DoCmd.RunSQL "delete * from " & tbl & " where 系统编号=" & Forms(frmqur)(frmchd)!系统编号   

    Forms(frmqur)(frmchd).Requery

End If

End Function

 

上述函数删除记录后(表中已删除了记录),但子窗体有时不能刷新,不知为什么?

Forms(frmqur)(frmchd).Requery

刷新子窗体这样写对吗。

求正解。

 

 

Top
cspa 发表于:2013-06-27 13:35:09
Forms![主窗体名]![子窗体名].Form.Requery

benhum 发表于:2013-06-27 16:53:09

谢谢cspa的热心解答。

但是结果还是一样,第一次删除记录,子窗体不会刷新,当删除第二条记录时,子窗体刷新正常。第三次删除时不能刷新,第四次删除又正常刷新,如此规律。不得其解。

 

不知是否与用到工具栏控件toolbar有关(函数是点击toolbar触发的)?

 

如果用

Forms(frmqur)(frmchd).SourceObject = "表." & tbl

子窗体就能正常刷新数据,但子窗体的列宽会改变。

各位版主与高手,能否指点一下。

 

 



cspa 发表于:2013-06-27 18:10:27

看你这个语句Forms(frmqur)(frmchd).SourceObject = "表." & tbl,你的主子窗体好像都是基于表的。如果是这样可用“系统编号”作为关联字段建立主子表关系,并选择级联删除,这样当你删除主表数据时,子表相关数据自动删除并刷新,不用再写VBA语句了。

如方便也可将例子传上来看看,可能更方便确定问题。



沈军 发表于:2013-06-29 14:41:00

这也不行那也不行,就直接重新加载子窗体

me.子窗体控件名称.SourceObject="子窗体名称"


可以将列调整到你需要的宽度后,按一下CTRL+S保存,下次打开时就会显示你保存后的宽度,但编译后的MDE/ACCDE是不能保存的





沈军 发表于:2013-06-29 14:43:38

可以将列调整到你需要的宽度后,按一下CTRL+S保存,下次打开时就会显示你保存后的宽度,但编译后的MDE/ACCDE是不能保存的




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