Office中国论坛/Access中国论坛

标题: 有关在宏中使用requery无效的问题 [打印本页]

作者: yang_hf    时间: 2009-2-17 20:27
标题: 有关在宏中使用requery无效的问题
本帖最后由 yang_hf 于 2009-2-17 20:33 编辑

一个列表框的行来源设置成了一个表,对表新增了一条记录后,对列表框使用宏的requery命令更新显示,但不起作用.请教各位?
作者: 紫风    时间: 2009-2-17 20:53
本帖最后由 紫风 于 2009-2-17 20:57 编辑

不用宏,而在列表框的after update(更新后)用事件过程 .requery

假设列表框是“姓名”,在 属性 - 更新后 用 事件过程:

private sub 姓名_after update()

    me.姓名.requery

end sub

试一下吧
作者: Henry D. Sy    时间: 2009-2-17 20:54
没有问题呀
作者: yang_hf    时间: 2009-2-17 21:05
用事件过程,也不行.
作者: 紫风    时间: 2009-2-19 21:30
不好意思,之前没下你的例子。

这样吧,不要用 列表23,用 子窗体。
然后用ADO写保存 客户信息表 新增的数据
最后加一句 me."子窗体名".requery

这样就可以了。
作者: 紫风    时间: 2009-2-22 23:14
本帖最后由 紫风 于 2009-2-24 21:14 编辑

好吧,帮你改好了,你看一下
代码很简单:

Private Sub Cmd添加_Click()
    Dim rst As New ADODB.Recordset
    rst.Open "客户信息表", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
        With rst
            .AddNew
            ![客户编号] = Me.Text1客户编号
            ![客户名称] = Me.Text2客户名称
            ![联系人] = Me.Text3联系人
            ![电话] = Me.Text4电话
            ![传真] = Me.Text5传真
            ![手机] = Me.Text6手机
            ![地址] = Me.Text7地址
            .Update
        End With
    rst.Close
    Set rst = Nothing

    Me.frm客户信息表child.Requery
End Sub

你做一个命令按钮Cmd添加就可以了

另外,客户信息表里的 ID 和 客户编号 是不是有一个是多余的可以不要?

或者说,如果没用ADO,当你输入数据时没有保存(或按了ESC键),ID会断开不连续(如:151,152,154),这样我建议你做一个自动编号,用DMax找到最大的客户编号,然后在最大的客户编号后+1
作者: yang_hf    时间: 2009-3-1 16:25
谢谢!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3