设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Access本身] 如何把下面这段代码作为函数来处理?

[复制链接]
跳转到指定楼层
1#
发表于 2007-8-15 11:59:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Dim a, b, c, d, e, f, g, h, bb, j, k, l, m, n, p, q, R, s, t, u, v, w, X, Y, Z, aa, cc, DD, ee, ff As Single

           Dim pr As Currency
        Dim pr2 As Currency
        pr = Nz(DLookup(Me.工序名称, "产品表查询", "[产品编号]=" & 产品编号.Value), 0)
        pr2 = Nz(DLookup("彩绘单价", "产品表查询", "[产品编号]=" & 产品编号.Value), 0)
        a = DLookup("倍数", "样品计件参数", "[序号] = 1")    '1--2   8倍     彩样
        b = DLookup("倍数", "样品计件参数", "[序号] = 2")    '3--4   6倍     彩样
        c = DLookup("倍数", "样品计件参数", "[序号] = 3")    '5--6   5倍     彩样
        d = DLookup("倍数", "样品计件参数", "[序号] = 4")    '7--10  4倍     彩样
        e = DLookup("倍数", "样品计件参数", "[序号] = 5")    '11--30 3倍     彩样
        f = DLookup("倍数", "样品计件参数", "[序号] = 6")    '31--99 1.5倍   彩样
        g = DLookup("倍数", "样品计件参数", "[序号] = 12")   '100PC以上      彩样
        h = DLookup("倍数", "样品计件参数", "[序号] = 7")    '1--2           白样
        bb = DLookup("倍数", "样品计件参数", "[序号] = 8")     '3--4         白样
        j = DLookup("倍数", "样品计件参数", "[序号] = 9")     '5--6          白样
        k = DLookup("倍数", "样品计件参数", "[序号] = 10")    '7--10         白样
        l = DLookup("倍数", "样品计件参数", "[序号] = 27")    '11--20        白样
        m = DLookup("倍数", "样品计件参数", "[序号] = 28")    '21--30        白样
        n = DLookup("倍数", "样品计件参数", "[序号] = 29")    '31--99        白样
        p = DLookup("倍数", "样品计件参数", "[序号] = 14")    '100以上       白样

        q = DLookup("倍数", "样品计件参数", "[序号] = 22")    '1--2           白坯大线
        R = DLookup("倍数", "样品计件参数", "[序号] = 23")     '3--4          白坯大线
        s = DLookup("倍数", "样品计件参数", "[序号] = 24")     '5--6          白坯大线
        t = DLookup("倍数", "样品计件参数", "[序号] = 25")    '7--10          白坯大线
        u = DLookup("倍数", "样品计件参数", "[序号] = 26")    '11-20          白坯大线
        v = DLookup("倍数", "样品计件参数", "[序号] = 30")     '21--30        白坯大线
        w = DLookup("倍数", "样品计件参数", "[序号] = 25")    '31--99         白坯大线
        X = DLookup("倍数", "样品计件参数", "[序号] = 26")    '100以上        白坯大线
        Y = DLookup("倍数", "样品计件参数", "[序号] = 16")    '1--10          彩绘大线
        Z = DLookup("倍数", "样品计件参数", "[序号] = 17")    '11--30         彩绘大线
        aa = DLookup("倍数", "样品计件参数", "[序号] = 18")   '31--99         彩绘大线
        cc = DLookup("倍数", "样品计件参数", "[序号] = 11")   '100以上        彩绘大线
        ee = DLookup("倍数", "样品计件参数", "[序号] = 21")   '1-99           包装大线
        ff = DLookup("倍数", "样品计件参数", "[序号] = 33")   '100以上         包装大线

        Me.单价 = Nz(DLookup(Me.工序名称, "产品表查询", "[产品编号]=" & 产品编号.Value), 0)

        If [单据类型] = "CH" Then
            '==彩样室=
            If Me.样品单 = True Then
                If Me.[部门] = "8" Then
                    Me.单价 = pr2
                    If Me.订单量 >= 1 And Me.订单量 <= 2 Then                      '1---2
                        Me.单价2 = pr2 * a
                    ElseIf Me.订单量 >= 3 And Me.订单量 <= 4 Then             '3---4
                        Me.单价2 = pr2 * b
                    ElseIf Me.订单量 >= 5 And Me.订单量 <= 6 Then              '5---6
                        Me.单价2 = pr2 * c
                    ElseIf Me.订单量 >= 7 And Me.订单量 <= 10 Then            '7--10
                        Me.单价2 = pr2 * d
                    ElseIf Me.订单量 >= 11 And Me.订单量 <= 30 Then       '11---30
                        Me.单价2 = pr2 * e
                    ElseIf Me.订单量 >= 31 And Me.订单量 <= 99 Then   '31---99
                        Me.单价2 = pr2 * f
                    ElseIf Me.订单量 >= 100 Then                     '100以上
                        Me.单价2 = pr2 * g
                    End If

                ElseIf Me.部门 = "1" Then
                    If Me.订单量 >= 1 And Me.订单量 <= 2 Then
                        Me.单价2 = pr * q
                    ElseIf Me.订单量 >= 3 And Me.订单量 <= 4 Then
                        Me.单价2 = pr * R
                    ElseIf Me.订单量 >= 5 And Me.订单量 <= 6 Then
                        Me.单价2 = pr * s
                    ElseIf Me.订单量 >= 7 And Me.订单量 <= 10 Then
                        Me.单价2 = pr * t
                    ElseIf Me.订单量 >= 11 And Me.订单量 <= 20 Then
                        Me.单价2 = pr * u
                    ElseIf Me.订单量 >= 21 And Me.订单量 <= 30 Then
                        Me.单价2 = pr * v
                    ElseIf Me.订单量 >= 31 And Me.订单量 <= 99 Then
                        Me.单价2 = pr * w
                    ElseIf Me.订单量 > 100 Then
                        Me.单价2 = pr * X
                    End

                  '=白样室=

                ElseIf Me.部门 = "24" Then
                    If Me.订单量 >= 1 And Me.订单量 <= 2 Then
                        Me.单价2 = pr * h
                    ElseIf Me.订单量 >= 3 And Me.订单量 <= 4 Then
                        Me.单价2 = pr * bb
                    ElseIf Me.订单量 >= 5 And Me.订单量 <= 6 Then
                        Me.单价2 = pr * j
                    ElseIf Me.订单量 >= 7 And Me.订单量 <= 10 Then
                        Me.单价2 = pr * k
                    ElseIf Me.订单量 >= 11 And Me.订单量 <= 20 Then
                        Me.单价2 = pr * l
                    ElseIf Me.订单量 >= 21 And Me.订单量 <= 30 Then
                        Me.单价2 = pr * m
                    ElseIf Me.订单量 >= 31 And Me.订单量 <= 99 Then
                        Me.单价2 = pr * n
                    ElseIf Me.订单量 > 100 Then
                        Me.单价2 = pr * p
                    End If
                Else
                    Me.单价2 = pr
                End If
            ElseIf Me.样品单 = False Then   '生产大货
                '=彩样室===
                If Me.[部门] = "8" Then
                    If Me.订单量 >= 1 And Me.订单量 <= 99 Then
                        Me.单价2 = pr * 1.5
                    ElseIf Me.订单量 >= 100 Then
                        Me.单价2 = pr
                    End If
               
                    
                    '==白样==

                ElseIf Me.[部门] = "24" Then
                    Me.单价2 = pr * 1.5
                    '=其它部门
                Else
                    Me.单价2 = pr    '原价
                End If
            End If
        ElseIf [单据类型] = "LL1" Then
            Me.单价2 = pr
        End If

[ 本帖最后由 laiguiyou 于 2007-8-16 08:25 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-8-15 12:43:15 | 只看该作者
代表太长啦,没有说明和要求根本没法入手
3#
发表于 2007-8-15 13:24:35 | 只看该作者
为什么不用select case?
4#
发表于 2007-8-15 13:28:21 | 只看该作者
既然代码这么死,干嘛不直接建表呢。史上最牛比的程序。效率极低!
5#
发表于 2007-8-15 14:35:36 | 只看该作者
效率极低!

这话一点不错。
6#
 楼主| 发表于 2007-8-15 14:41:42 | 只看该作者
在生产中,生产大货订单,其计件单价为产品表中对应工序的单价。如果生产的是样品单,在原单价的基础上再乘于倍数。具体倍数在样品计件参数中。(因样品单的订单量很小)


在单价更新窗体里,如果是大货单价,可以直接点更新彩绘单价,更新包装单价和更新外发单价。可是更新样品单价就只能用鼠标单击单价2这样来更新,没效率,(单价为原计件单价,单价2为乘于倍数后的单价。)有没有什么方法象更新彩绘单价一样,点一下就可以了

本帖子中包含更多资源

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

x
7#
 楼主| 发表于 2007-8-15 14:45:35 | 只看该作者
请各位高手看一下,如何修改这个或有更好的方法解决这样的问题

[ 本帖最后由 laiguiyou 于 2007-8-15 16:11 编辑 ]
8#
发表于 2007-8-15 16:10:14 | 只看该作者
原帖由 eyewitnes 于 2007-8-15 13:24 发表
为什么不用select case?

这样的效率应该会提升!
9#
 楼主| 发表于 2007-8-15 16:22:20 | 只看该作者
还有没有更好的方法,做成一个单击事件
10#
 楼主| 发表于 2007-8-15 17:09:05 | 只看该作者
改用select case 好象也没什么感觉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-15 14:42 , Processed in 0.112046 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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