设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

数值格式问题,FORMAT不能用!

[复制链接]
跳转到指定楼层
1#
发表于 2003-11-12 10:30:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
列表框.rowsource=select num1 , num2 , sum(num3) as num_sum from Table group by num1,num2

我想将num_sum输出的格式为:#,###.00,但是用FORMAT就报错,用ROUND就可以
列表框.rowsource=select num1 , num2 , FORMAT(sum(num3),"#,###.00") as num_sum from Table group by num1,num2
我应该怎么做才得到输出格式为#,###.00的num_sumd,查了帮助和旧贴都找不到答案.
我是用WIN2000+SP4+OFFICEXP+SQL2000
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-11-12 20:16:00 | 只看该作者
SQL SERVER的format string同access里的不同。请到SQL服务器的联机手册当中查找答案。
3#
 楼主| 发表于 2003-11-12 21:32:00 | 只看该作者
查过了,FORMAT_STRING,但不明白怎么用。阿罗站长可以举个例子吗?
4#
发表于 2003-11-12 22:03:00 | 只看该作者
按照本题实际情况,round函数可以使用了。否则就用cast或者convert或者str函数(都是sql服务器那边的函数)来格式化,在联机手册中有关这三个函数都有详细的例子,你也可以看看那round函数同access里比较有什么不同。其他的掩码问题,就要使用数据库对象的扩展属性,比如可以在adp创建表的时候定义掩码。一般来讲,具体显示方式最好都在客户端进行。例如你可以将某个显示字段在adp里面定义具体显示方式,这些任务不应该大量在服务器那里进行。
5#
 楼主| 发表于 2003-11-12 22:38:00 | 只看该作者
我现在是想格式化列表框中的某一列数值啊,哪只能格在数据源做吧?
6#
发表于 2003-11-14 07:21:00 | 只看该作者
是的。如果是复杂的掩码例如身份证、带分割符的包含国家和地区代码的电话号码等要在SQL服务器端处理,就需要使用表定义的扩展属性,BOL中也有详细说明。我没有碰到过这类问题,一般最多碰到的就是数字-字符串转换及日期处理,这个用SQL的函数已经足够了。(例如你的具体情况就是如此)

另外一个替代方法可以使用recordset取得纪录以后在客户端逐条处理要格式化的数据,组成一个很长的字符串, 再给listbox显示,如果确有必要的话。这个我在国外一些编程例子中看见过。不过他是在SQL服务器那边,遍历一个cursor来组成一个nvarchar(8000)送回带分割符‘;’的字符串让access的listbox显示,当然你也可以取得纪录集在客户端作同样的处理。要根据具体情况权衡一下。这种情况下,listbox的行来源类型就是值列表。

客户端处理代码示例
private sub populateListbox()
dim rst as new adodb.recordset, listSource as string
set rst = currentproject.connection.execute ("SELECT id, PhoneNum FROM tblTest")
listSource = ""
While not rst.eof
         listSource =listSource & rst(0) & ", " & Format(rst(1), "000-0000")  & "; "
         rst.movenext
Wend
listbox1.rowsource = listSource
End Sub


[此贴子已经被作者于2003-11-13 23:22:07编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-9 04:17 , Processed in 0.084360 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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