Access交流中心

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

求助:在新增或者修改完接着运行另一个程序

大海  发表于:2015-05-28 15:55:26  
复制

在论坛东拼西凑做了一个适合自己的一个东东

来源:http://www.accessoft.com/article-show.asp?id=7873

现在我想在下面的程序中添加一个程序

Private Sub cmdSave_Click()
    If sOpenArgs <> "" Then
        Dim strExpr As String
        strExpr = SQLExpr(conTableName, conFieldName, Me.OpenArgs)
        Call FormADOSave(Me, conTableName, conFieldName, strExpr)
        Forms!frmOpen!frmchild.Requery
        MsgBox "修改成功"
        DoCmd.Close acForm, Me.Name, acSaveNo
    Else
        '检查必填项未通过时退出
        If Not CheckRequired(Me) Then Exit Sub
        Call FormADOSave(Me, conTableName, conFieldName)
        Forms!frmOpen!frmchild.Requery
        MsgBox "新增成功"
        DoCmd.Close acForm, Me.Name, acSaveNo
    End If
  我想在这里再接着运行另外一个程序
End Sub


请问要如何修改代码。

点击下载此附件


 

Top
易勋 发表于:2015-05-28 16:11:53

运行什么程序???

  窗体? 查询? 宏? 其他控件的事件? 函数?



大海 发表于:2015-05-28 19:21:36

谢谢1楼的老师!

Sub Command62_Click()
    Dim rs As Recordset, y As Double, cc As String
    Set rs = New ADODB.Recordset
    rs.ActiveConnection = CurrentProject.Connection
    rs.Open "银行金额统计查询", , adOpenKeyset, adLockOptimistic
    rs.MoveFirst
    y = 0
    cc = rs!银行名称
    Do Until rs.EOF = True
        If cc <> rs!银行名称 Then
            cc = rs!银行名称
            y = 0
        End If
        rs!余额 = Nz(rs!收入) - Nz(rs!支出) + y
        rs.Update
        y = rs!余额
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    Me.银行金额统计子窗体.Requery
End Sub

我想运行这段代码,就是添加或者修改数据后我想运行一下就可以自动显示余额,不用再去点击按钮来更新余额。



煮江品茶 发表于:2015-05-29 10:45:24

call 阁下要运行的子程序名称




大海 发表于:2015-05-29 16:45:04

煮江品茶 老师您好!

call + 运行的子程序


显示:编译错误

      子过程或函数未定义



cspa 发表于:2015-05-30 05:27:28

反正你也是东拼西凑的,干脆把这段代码放在你的程序末尾不就结了

    Dim rs As Recordset, y As Double, cc As String
    Set rs = New ADODB.Recordset
    rs.ActiveConnection = CurrentProject.Connection
    rs.Open "银行金额统计查询", , adOpenKeyset, adLockOptimistic
    rs.MoveFirst
    y = 0
    cc = rs!银行名称
    Do Until rs.EOF = True
        If cc <> rs!银行名称 Then
            cc = rs!银行名称
            y = 0
        End If
        rs!余额 = Nz(rs!收入) - Nz(rs!支出) + y
        rs.Update
        y = rs!余额
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    Me.银行金额统计子窗体.Requery



易勋 发表于:2015-06-01 15:59:52

两个过程不是在同一个窗体模块中,就需要将私有的改成公有的,才能在该过程所属窗体模块之外的地方引用。并且要加上 该事件所属的窗体名称

如:Form_窗体名称.过程名称

将sub 前面的 Private(私有的) 改成     Public(公有的)   才能使用调用

 



大海 发表于:2015-06-02 22:25:58
按照6楼的老师所说的成功了。

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