Access交流中心

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

[5分]Access+SQL开发常出现的问题

菜鸟  发表于:2013-06-26 16:49:09  
复制

Access+SQL开发常出现的问题
1.SQL的进程常出现阻塞,保留不了数据
2.保存数据有时出现卡住, 等一会又能保留
3.保存数据时系统处现停住状态,都动不了! 过了一段时间就会弹出一个错误,
 
这样的情况如有什么方法完美解决吗
 
非常感谢!

 

Top
nivenm 发表于:2013-06-26 16:57:57
菜鸟 发表于:2013-06-26 17:14:38

看这个都不知如何入手去修改程序。。有没有示例发来看看!谢谢!



菜鸟 发表于:2013-06-27 08:47:11

 On Error GoTo ErrorHandler
    Dim rst As ADODB.Recordset
    Dim fld As ADODB.Field
    Dim strExpr As String
    Dim strtrcode As String
    Dim bm As String
    Dim Savetime As Double
    '检查必填项未通过时退出
    If Not CheckRequired(Me) Then Exit Sub
    If Nz(DCount("*", "Temp_tbl_Repair_Item_Detail"), 0) = 0 Then
        MsgBox "记录为空,请输入记录!", vbCritical, "提示"
        Exit Sub
    End If

    bm = Me.ToDep.Column(1)
    Set rst = New ADODB.Recordset
    rst.Source = " SELECT * FROM [" & conTableName & "]"
    rst.Open , CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    Me(conFieldName).Value = AutoNum(conTableName, conFieldName, 6, bm)
    rst.AddNew
    For Each fld In rst.Fields
        fld.Value = Me(fld.name).Value
    Next   

 rst.Update       

 rst.Close    strExpr = SQLExpr(conTableName, conFieldName, Me(conFieldName).Value)
    DoCmd.SetWarnings False
    '更新临时表主键字段
    DoCmd.RunSQL "UPDATE Temp_tbl_Repair_Item_Detail SET " & strExpr

    If Me.Status = "完成" Then

        DoCmd.RunSQL "UPDATE Temp_tbl_Repair_Item_Detail SET Temp_tbl_Repair_Item_Detail.Check_ok = -1, Temp_tbl_Repair_Item_Detail.FinishDate = Date()" _
                   & " WHERE Temp_tbl_Repair_Item_Detail.Check_ok=0 and Temp_tbl_Repair_Item_Detail.PZCode='" & Me.PZCode & "';"

    End If
    DoCmd.RunSQL " INSERT INTO tbl_Repair_Item_Detail(PZCode,Check_ok,FinishDate,Wocode,StyleNo,Alloycode,Qty,F_weight,F_Stone,Remark)" _
               & " SELECT PZCode,Check_ok,FinishDate,Wocode,StyleNo,Alloycode,Qty,F_weight,F_Stone,Remark" _
               & " FROM Temp_tbl_Repair_Item_Detail" _
               & " WHERE (((Temp_tbl_Repair_Item_Detail.Wocode) Is Not Null))" _
               & " ORDER BY Temp_tbl_Repair_Item_Detail.ID;"

    '    DoCmd.RunSQL " INSERT INTO tbl_Repair_Item_Detail(PZCode,Check_ok,FinishDate,Wocode,StyleNo,Alloycode,Qty,F_weight,F_Stone,Remark)" _
         '               & " SELECT PZCode,Check_ok,FinishDate,Wocode,StyleNo,Alloycode,Qty,F_weight,F_Stone,Remark" _
         '               & " FROM Temp_tbl_Repair_Item_Detail" _
         '               & " WHERE (((Temp_tbl_Repair_Item_Detail.Wocode) Is Not Null))" _
         '               & " ORDER BY Temp_tbl_Repair_Item_Detail.ID;"

      '    MsgBox "数据已保存。", vbInformation, "提示"

    Call cmdNew_Click
    On Error Resume Next
    With Forms!usysfrmMain!frmChild
        .Requery
        .Form.Recorset.FindFirst strExpr
    End With

ExitHere:
    Set rst = Nothing
    Set fld = Nothing
    Exit Sub

ErrorHandler:
    If Err = 24651 Then
        Resume Next
    Else
        ErrMsgBox Me.Caption, "保存按钮_单击"
        Resume ExitHere
    End If

 

以上是运行的代码

 



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