Access交流中心

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

新增窗体,窗体不能清空

刘贵平  发表于:2008-05-16 12:03:20  
复制

我在做一个窗体时,新增窗体时,数据可 以保存。可是保存以后,新增窗体数据无法清空。查找很久没找到原因。清空代码如下:谁知道帮我看一看


        Set rst = CurrentDb.OpenRecordset("tblsl", dbOpenDynaset)
        '新增一行数据
        rst.AddNew
        rst("slID") = Me.slid
        rst("blid") = Me.blid
        rst("qs") = Me.qs
        rst("slr") = Me.slr
        rst("slrq") = Me.slrq
        rst("slzt") = Me.slzt

        rst("blss") = Me.blss
        rst("sllr") = Me.sllr
        rst("bz") = Me.bz
        rst.Update
        rst.Close
        Set rst = Nothing
        '刷新数据,通过重新加载子窗体实现
        If IsLoaded("usysfrmMain") Then
            DoCmd.Echo False
            Forms!usysfrmMain!frmChild.SourceObject = "frmsl_child"
            DoCmd.Echo True
            '   Forms!frmsbjc_child_add!frmsbjcmx_temp.Requery
            DoCmd.Echo False

            Exit Sub


        End If

        MsgBox "保存成功!", vbInformation, "提示"
        '清空,以便录入新记录
        Me.slid = Null
        Me.blid = Null
        Me.qs = Null
        Me.slr = Null
        Me.slrq = Null
        Me.slzt = Null
        Me.blss = Null
        Me.sllr = Null
        Me.bz = Null
       

        '生成新的明细编号
        AutoMxID
    End If
End Sub
表名称是tblsl,字段名称也是对的。

 

Top
钱玉炜 发表于:2008-05-16 16:23:45
如果是跟你说的那样控件名都对的话,那应该检查你的代码有没有执行

刘贵平 发表于:2008-05-19 09:52:54

检查了!前面的代码可以执行,就是清空代码不能执行,像前面的新增数据和如果文本框是空的话会出现提示框。全代码如下:

Private Sub saveData()
'新增报销数据子程序

    Dim rst As dao.Recordset
    '如果保存时,别的操作员新增了此编号,则生成新的编号
    If Acchelp_StrDataIsExist("tblsl", "slID", Me.slid) = True Then
        '生成新的编号
        AutoMxID
    End If

    If IsNull(Me.blid) Then
        MsgBox "请输入资产番号", vbCritical, "提示"
        Me.blid.SetFocus
        Exit Sub
    End If
    If IsNull(Me.qs) Then
        MsgBox "请输入场所", vbCritical, "提示"
        Me.qs.SetFocus
        Exit Sub
    End If

    If IsNull(Me.slr) Then
        MsgBox "请输入修理人", vbCritical, "提示"
        Me.slr.SetFocus
        Exit Sub
    End If
    If IsNull(Me.slrq) Then
        MsgBox "请输入修理日期", vbCritical, "提示"
        Me.slrq.SetFocus
        Exit Sub
    End If

    If IsNull(Me.slzt) Then
        MsgBox "请输入修理后状态", vbCritical, "提示"
        Me.slzt.SetFocus
        Exit Sub
    End If
    If IsNull(Me.blss) Then
        MsgBox "请输入不良现象", vbCritical, "提示"
        Me.blss.SetFocus
        Exit Sub
    End If
    If IsNull(Me.sllr) Then
        MsgBox "请输入修理内容", vbCritical, "提示"
        Me.sllr.SetFocus
        Exit Sub
    End If


    If MsgBox("您确认要保存吗?", vbOKCancel + vbInformation, "提示") = vbOK Then
        Me.Refresh

        Set rst = CurrentDb.OpenRecordset("tblsl", dbOpenDynaset)
        '新增一行数据
        rst.AddNew
        rst("slID") = Me.slid
        rst("blid") = Me.blid
        rst("qs") = Me.qs
        rst("slr") = Me.slr
        rst("slrq") = Me.slrq
        rst("slzt") = Me.slzt

        rst("blss") = Me.blss
        rst("sllr") = Me.sllr
        rst("bz") = Me.bz
        rst.Update
        rst.Close
        Set rst = Nothing
        '刷新数据,通过重新加载子窗体实现
        If IsLoaded("usysfrmMain") Then
            DoCmd.Echo False
            Forms!usysfrmMain!frmChild.SourceObject = "frmsl_child"
            DoCmd.Echo True
            '   Forms!frmsbjc_child_add!frmsbjcmx_temp.Requery
            DoCmd.Echo False

            Exit Sub


        End If

        MsgBox "保存成功!", vbInformation, "提示"
        '清空,以便录入新记录
        Me.slid = Null
        Me.blid = Null
        Me.qs = Null
        Me.slr = Null
        Me.slrq = Null
        Me.slzt = Null
        Me.blss = Null
        Me.sllr = Null
        Me.bz = Null
       

        '生成新的明细编号
        AutoMxID
    End If
End Sub



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