设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1564|回复: 10
打印 上一主题 下一主题

[模块/函数] 尺寸转换和计算公式报

[复制链接]
跳转到指定楼层
1#
发表于 2009-7-29 12:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点计算按钮报错
见附档

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-7-29 12:53:45 | 只看该作者
把:
Private Sub Command54_Click()
Me.PO1.Form.AllowEdits = True
  DoCmd.GoToControl "PO1"
  DoCmd.GoToRecord , , acFirst
  For i = 1 To [PO1]!Text40
    [PO1]!MO2_KG = [PO1]!Thick * [PO1]!Width / 1000 * [PO1]!Length / 1000 * [PO1]!MO2_Sheet * 7.85
   
   DoCmd.GoToRecord , , acNext
    'DoCmd.GoToRecord , , acNext
  Next i
'其中“Text40”为[PO1]的一个控件,该控件的控件来源:=Count(*)
End Sub
改为:
Private Sub Command54_Click()
Me.PO1.Form.AllowEdits = True
  DoCmd.GoToControl "PO1"
  DoCmd.GoToRecord , , acFirst
  For i = 1 To [PO1]!Text40 - 1
    [PO1]!MO2_KG = [PO1]!Thick * [PO1]!Width / 1000 * [PO1]!Length / 1000 * [PO1]!MO2_Sheet * 7.85
   
   DoCmd.GoToRecord , , acNext
    'DoCmd.GoToRecord , , acNext
  Next i
'其中“Text40”为[PO1]的一个控件,该控件的控件来源:=Count(*)
End Sub

因为你的子表不允许添加记录!
3#
发表于 2009-7-29 12:57:16 | 只看该作者
另外:
[PO1]!MO2_KG = [PO1]!Thick * [PO1]!Width / 1000 * [PO1]!Length / 1000 * [PO1]!MO2_Sheet * 7.85
公式中还有参与计算的(值)类型错误,
4#
 楼主| 发表于 2009-7-29 13:39:40 | 只看该作者
总是有这样提示是怎么回事呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2009-7-29 14:11:57 | 只看该作者
问题出在mm(str)的参数中
6#
 楼主| 发表于 2009-7-29 14:15:17 | 只看该作者
能帮改改吗?
7#
发表于 2009-7-29 14:16:20 | 只看该作者
窗体的〔转换厚〕〔转换宽〕〔转换长〕控件来源?
8#
发表于 2009-7-29 14:19:36 | 只看该作者
修改模块为:
Public Function MM(ByVal STR As String)
    Dim AA, BB, CC, DD, EE
    Dim QQ
    If IsNull(STR) = True Or Len(STR) = 0 Then Exit Function
    If Asc(Right(STR, 1)) = 34 Or Right(STR, 1) = "'" Then
        If Asc(Right(STR, 1)) = 34 Then
            QQ = 25.4
        ElseIf Right(STR, 1) = "'" Then
            QQ = 304
        End If
        AA = Left(STR, Len(STR) - 1)
        BB = InStr(1, AA, "-")
        If BB > 0 Then
            CC = Left(AA, BB - 1)
            DD = Mid(AA, BB + 1, 1)
            EE = Mid(AA, BB + 3, 1)
            MM = Format((CC + DD / EE) * QQ, "0.00")
        Else
            BB = InStr(1, AA, "/")
            If BB > 0 Then
                DD = Mid(AA, BB - 1, 1)
                EE = Mid(AA, BB + 1, 1)
                MM = Format((DD / EE) * QQ, "0.00")
            Else
                MM = Format(AA * QQ, "0.00")
            End If
        End If
    ElseIf Right(STR, 2) = "mm" Then
        MM = Format(Left(STR, Len(STR) - 2), "0.00")
    Else
        MM = STR
    End If
End Function
9#
 楼主| 发表于 2009-7-29 14:37:58 | 只看该作者
本帖最后由 菜鸟求助 于 2009-7-29 14:39 编辑

多谢高手,问题基本解决。
但我点计算时,只计算第一笔,后面记录不计算了。
10#
 楼主| 发表于 2009-7-29 14:46:27 | 只看该作者
如何只计算现在的记录呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-20 04:39 , Processed in 0.104715 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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