设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 多年没来了,厚颜求教复合字段求和问题。

[复制链接]
跳转到指定楼层
1#
发表于 2008-11-18 18:28:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[:34] 各位好,我最后一次来时06年,已经这么多年了哈哈,这次遇到了一个技术难题,特来求教。
原本对我来说应该不难的问题,可我长期不从事access编程了,把基本的东西都已经忘记了,现在只能翻书来查资料了,丢人呀。

问题是:
在同一个字段内,比如字段名为肉类
填写数值 猪肉:100 牛肉:100 鸡肉:100 羊肉:100
这个数值是复制的格式统一,只是数值不同。
这个肉类字段可以不写表,直接在在窗体中用文本框表示。
然后下面是车次
将肉类字段内数值累加后自动除以车次数,车次数值为手工填写的数值。
在总计框内自动写入最后所得。
这个问题就是如何剔除汉字,仅仅要求数值计算,但是输入时候会填写汉字+数值的格式也就是牛肉: 100这样子数值。怎么才能累加运算出结果然后除以车次。

当然了除以车次这个我会,就是忘记了如何才能剔除汉字进行运算。所以特来求教各位。请指教。万分感谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2008-11-18 20:42:46 | 只看该作者
老兄,老久不见了, 现在做什么工作了?
下面这贴看看是否对你有用,是江版主的贴子
http://www.office-cn.net/forum.p ... ighlight=%2Btanhong
3#
发表于 2008-11-18 22:04:41 | 只看该作者
这个问题主要是去掉  “汉字:”
可以用 mid 和 instr 函数
纯数值字段=clng(mid(字段名,instr(字段名,":")+1))
4#
 楼主| 发表于 2008-11-19 08:13:17 | 只看该作者
[:30] 感谢各位的回答,我没看明白。
猪肉:100 牛肉:100 鸡肉:100 羊肉:100
如何去掉汉字:然后把数字进行计算得出结果然后除以车次。

熬了一个通宵,没有做出来,不是这错就是那错。一个程序就这个一步做不错来没办法交差了。
老兄都来帮帮兄弟吧。
5#
发表于 2008-11-19 08:32:45 | 只看该作者
你的例子具体是如何的,要不你把例子传上来
6#
 楼主| 发表于 2008-11-19 09:34:03 | 只看该作者
例子很简单的,给你一个窗体,地址在http://www.namipan.com/d/%e6%96% ... 9936e16d54300500200
7#
 楼主| 发表于 2008-11-19 09:57:16 | 只看该作者
整体源程序属于商业的,所以只能给你新建立一个文件,画了一个界面,这个功能部件就是,在肉类文本框内输入猪肉:100 牛肉:100 鸡肉:100 羊肉:100,这样的文本信息。

这个信息是复制的,是统一的,不会变的,只是数字会变。

车次文本框手工输入次数,比如10

点击计算,自动在合计里面计算出来结果。

这个程序不需要写表,只要进行运算就可以了。

例如:猪肉:100 牛肉:100 鸡肉:100 羊肉:100
车次:10
合计(猪肉:100+ 牛肉:100+ 鸡肉:100+ 羊肉:100)/10=合计数

就是剔除汉字和冒号以后进行累加计算然后和车次相除求合计数。在合计文本中显示结果。

难为死我了

另外回答tmtony老兄
我现在在国家军工单位服务,被国家聘用了,吃公家粮了。主要从事管理。因为工作涉密,就不多说了。
这次受命给一个储备库设计一个统计程序,我用dp和vb还有pb都写了程序,但是人家非要acc的。要求整体都是acc直接不用exe界面。。。

后来我亲自考察了一下,他们的系统是独立的专用的,只有一个数据解释器可以解析mdb数据,也可以对他的函数和运行进行模拟。access数据库反而能用,当然了数据库也必须低于03版,07压根不支持。

这个计算界面是人家要求的,要即刻完工,我都准备封装程序了,结果这个做不出来了,急死我了。熬了2天2夜了,来帮忙吧。谢谢
8#
发表于 2008-11-19 10:43:43 | 只看该作者
Public Function WWWW(a As String, c As Integer)
'使用方法:wwww("猪肉:100 牛肉:100 鸡肉:100 羊肉:100",10)
    Dim i As Integer
    Dim b As Boolean
    Dim s As String

    For i = 1 To Len(a)
        If Asc(Mid(a, i, 1)) > 47 And Asc(Mid(a, i, 1)) < 58 Then
            b = True
        Else
            b = False
        End If
        If b Then
            s = s & Mid(a, i, 1)
        Else
            s = s & "+"
        End If

    Next
    WWWW = Eval(s) / c
End Function

对楼主说的情况可以计算出来,不知道这个是不是特例。
9#
发表于 2008-11-19 10:48:02 | 只看该作者
上面的逻辑变量是多余的,下面这样就好。

Public Function WWWW(a As String, c As Integer)
'使用方法:wwww("猪肉:100 牛肉:100 鸡肉:100 羊肉:100",10)
    Dim i As Integer
    Dim s As String

    For i = 1 To Len(a)
        If Asc(Mid(a, i, 1)) > 47 And Asc(Mid(a, i, 1)) < 58 Then
            s = s & Mid(a, i, 1)
        Else
            s = s & "+"
        End If
    Next
    WWWW = Eval(s) / c
End Function
10#
 楼主| 发表于 2008-11-19 10:50:58 | 只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 20:39 , Processed in 0.108893 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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