设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1390|回复: 7
打印 上一主题 下一主题

ACCESS没有响应,不知是什回事,太弱了

[复制链接]
跳转到指定楼层
1#
发表于 2003-4-5 09:45:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当我输入超过60条记录时运行月结存就会程序没 有响应。少于的话就有(我用删货品信息表记录来测试),请指教如何解决?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-4-5 16:46:00 | 只看该作者
我觉得是你的算法问题.
3#
发表于 2003-4-5 18:54:00 | 只看该作者
同意,我也犯过同样的错误,查询造成死循环,修正约束条件以后就很快了。Access不算弱,先从流程方面解决。
4#
 楼主| 发表于 2003-4-6 22:04:00 | 只看该作者
50条与60条同是同样的记录,50条可以运行,为什么60条却没有响应呢?

点击这里给我发消息

5#
发表于 2003-4-6 22:39:00 | 只看该作者
你需要提供例程或部分代码,大家才能一起分析与解决问题。
6#
 楼主| 发表于 2003-4-6 23:42:00 | 只看该作者
Option Compare Database
Option Explicit
Dim cn As Connection
Dim rs As New ADODB.Recordset
Dim sql As String


Private Sub 命令0_Click()
Dim ZRKSL, ZRKJE, ZCKSL, ZCKJE, CYJC As Single
    Dim QCSL, QCJE, JQDJ, SYJCE As Single
   
    Select Case 查询选项
    Case 1
        DoCmd.OpenQuery "货品当月入库查询"
    Case 2
        DoCmd.OpenQuery "货品当月出库查询"
    Case 3
        DoCmd.RunMacro "上月结存查询"
        Set cn = CurrentProject.Connection
        sql = "select * from 上月结存临时表 "
        rs.Open sql, cn, 3, 3, 1
        If rs.RecordCount > 0 Then
            Do While Not rs.EOF
                ZRKSL = Nz(DLookup("入库数量", "货品上月总入库查询", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
                ZCKSL = Nz(DLookup("出库数量", "货品上月总出库查询", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
               
                ZRKJE = Nz(DLookup("总额", "货品上月总入库查询", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
                ZCKJE = Nz(DLookup("总额", "货品上月总出库查询", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
                rs.Fields("结存时间") = Date
                rs.Fields("当月入库") = DLookup("入库数量", "货品上月入库查询", "货品编码='" & rs.Fields("货品编码") & "'")
                rs.Fields("当月出库") = DLookup("出库数量", "货品上月出库查询", "货品编码='" & rs.Fields("货品编码") & "'")
                rs.Fields("结存数") = Nz(rs.Fields("期初数"), 0) + Nz(ZRKSL, 0) - Nz(ZCKSL, 0)
                rs.Fields("上月结存额") = Nz(rs.Fields("期初金额"), 0) + Nz(ZRKJE, 0) - Nz(ZCKJE, 0)
                rs.Update
                rs.MoveNext
            Loop
            rs.Close
        End If
        
        DoCmd.RunMacro "结存查询"
        sql = "select * from 结存临时表 "
        rs.Open sql, cn, 3, 3, 1
        If rs.RecordCount > 0 Then
            Do While Not rs.EOF
                ZRKSL = Nz(DLookup("入库数量", "货品总入库查询", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
                ZRKJE = Nz(DLookup("总额", "货品总入库查询", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
                ZCKSL = Nz(DLookup("出库数量", "货品总出库查询", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
                ZCKJE = Nz(DLookup("总额", "货品总出库查询", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
                CYJC = Nz(DLookup("结存数", "上月结存临时表", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
                QCSL = Nz(DLookup("期初数量", "货品信息", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
                QCJE = Nz(DLookup("期初金额", "货品信息", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
               If QCSL + ZRKSL - ZCKSL <> 0 Then
                JQDJ = IIf((QCSL + ZRKSL - ZCKSL) = 0, 0, (QCJE + ZRKJE - ZCKJE) / (QCSL + ZRKSL - ZCKSL))
                Else
                JQDJ = 0
                End If
               SYJCE = Nz(DLookup("上月结存额", "上月结存临时表", "货品编码='" & rs.Fields("货品编码") & "'"), 0)
                rs.Fields("结存时间") = Date
                rs.Fields("单价") = JQDJ
                rs.Fields("上月结存") = CYJC
                rs.Fields("当月入库") = DLookup("入库数量", "货品当月入库查询", "货品编码='" & rs.Fields("货品编码") & "'")
                rs.Fields("当月出库") = DLookup("出库数量", "货品当月出库查询", "货品编码='" & rs.Fields("货品编码") & "'")
                rs.Fields("当月结存") = Nz(rs.Fields("期初数"), 0) + Nz(ZRKSL, 0) - Nz(ZCKSL, 0)
                rs.Fields("当月结存额") = Nz(QCJE + ZRKJE - ZCKJE, 0)
                rs.Fields("上月结存额") = Nz(SYJCE, 0)
                rs.Fields("当月入库额") = Nz(ZRKJE, 0)
                rs.Fields("当月出库额") = Nz(ZCKJE, 0)
                rs.Update
                rs.MoveNext
                DoEvents
            Loop
            
            rs.Close
            Set cn = Nothing
        End If
        DoCmd.OpenReport "结存统计表", acViewPreview
        
        
    End Select
    DoCmd.Maximize
End Sub
Private Sub 退同_Click()
On Error GoTo Err_退同_Cli
7#
 楼主| 发表于 2003-4-6 23:44:00 | 只看该作者
上面是代码,就是引起没有响应的查询,但50以下查询记录是没问题的,
8#
 楼主| 发表于 2003-4-7 01:21:00 | 只看该作者
加上DOEVENTS解决,不过还有更好的方法吗,因为实在是慢,好慢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-22 13:39 , Processed in 0.097506 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表