Access交流中心

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

[5分]我的这个平台上修改按钮总是出错?

殷小宝  发表于:2012-02-26 13:30:40  
复制

点击平台上的修改窗体,首先弹出下列错误提示框:

点击确定出现了下列窗体:

窗体代码是:

Private Sub Form_Load()
    On Error GoTo Err_Form_Load:
    Me.linHeader.Width = Me.WindowWidth
    Me.frmsfchild.Form.AllowAdditions = True
    Me.frmsfchild.Form.AllowEdits = True
    Me.frmsfchild.Form.AllowDeletions = True
     
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM tblrpmx WHERE rpid='" & strSelectID & "'", , dbReadOnly)
    strSelectID_old = strSelectID
    If rst.RecordCount = 0 Then
        rst.Close
        Err.Raise 10001, , "未能正确加载数据"
    End If
    Me.RpID = rst!RpID
    Me.fzxm = rst!fzxm
    Me.fzxb = rst!fzxb
    Me.fage = rst!fage
    Me.rpje = rst!rpje
    Me.ldiagnose = rst!ldiagnose
    Me.dpt = rst!dpt
    Me.ldoctor = rst!ldoctor
    Me.fdate = rst!fdate
    rst.Close
    CurrentDb.Execute "DELETE FROM tblsfmz_temp"    '清空收费门诊临时表 tblrpmx_temp
    '把收费明细数据从正式表追加到临时表
    CurrentDb.Execute "INSERT INTO tblsfmz_temp SELECT * FROM tblsfmz WHERE rpid='" & Me.RpID & "'"
    Me.frmsfchild.Form.Requery                             '清空临时表必须要刷新子窗体,否则会显示"#已删除"
    
Exit_Form_Load:
    Set rst = Nothing
    Exit Sub

Err_Form_Load:
    MsgBox Err.Description, vbCritical, "错误 #" & Err
    If Err = 10001 Then DoCmd.Close acForm, Me.Name
    Resume Exit_Form_Load
End Sub
Private Sub ToolbarFrm_ButtonClick(ByVal Button As Object)

    Dim rst As DAO.Recordset

    If Not CheckRequired(Me) Then Exit Sub

    Beep
    If MsgBox("您确认要保存吗?", vbQuestion + vbYesNo, "提示") = vbNo Then
        Exit Sub
    End If

    DoCmd.SetWarnings False                 '关闭系统提示
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM tblrpmx WHERE rpid='" & Me.RpID & "'")
    rst.Edit
    rst!RpID = Me.RpID
    rst!fzxm = Me.fzxm
    rst!fzxb = Me.fzxb
    rst!fage = Me.fage
    rst!rpje = Me.rpje
    rst!ldiagnose = Me.ldiagnose
    rst!dpt = Me.dpt
    rst!ldoctor = Me.ldoctor
    rst!fdate = Me.fdate
    rst.Update
    rst.Close
    Set rst = Nothing

    '由于临时表中的rpid字段没有添加到子窗体,这里通过更新查询来完成自动录入
    DoCmd.RunSQL "UPDATE tblsfmz_temp SET rpid='" & Me.RpID & "'"
    '先从正式表中删除明细数据
    DoCmd.RunSQL "DELETE FROM tblsfmz WHERE rpid='" & Me.RpID & "'"
    '再从临时表中追加数据到正式表中,以实现明细数据的修改更新
    DoCmd.RunSQL "INSERT INTO tblsfmz SELECT * FROM tblsfmz_temp"


    DoCmd.SetWarnings True                      '恢复系统提示

    MsgBox "保存成功!", vbInformation, "提示"
    If IsLoaded("usysfrmMain") Then
        With Forms!usysfrmMain!frmChild.Form
            .Requery
            .Recordset.FindFirst "处方编号='" & Me!RpID & "'"
        End With
    End If
    DoCmd.Close acForm, Me.Name


End Sub

请问老师们,为什么总是出错,我调试了几天了,没有调试好,请老师们予以帮助与指导!

 

 

Top
殷小宝 发表于:2012-02-26 13:53:48

尤其是是这句代码好像不起作用(运行):



学习者 发表于:2012-03-01 20:25:10

你的ID值貌似数值型的,你把 WHERE rpid='" & Me.RpID & "'" 

                      改成  WHERE rpid=" & Me.RpID & ""    应该就可以了。因为'号只针对字符串的。



殷小宝 发表于:2012-03-04 15:34:39

上面虽然不对,rpid本来就是文本型,但没有回答我,急需结帖,故选楼上的为最佳答案吧.



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