Oracle 在Access中格式化单个列;表/查询“;列表框
我用一个基于Oracle的ADODB记录集填充了包含1列的listbox,该记录集使用Oracle 在Access中格式化单个列;表/查询“;列表框,oracle,ms-access,vba,Oracle,Ms Access,Vba,我用一个基于Oracle的ADODB记录集填充了包含1列的listbox,该记录集使用 strsql = "SELECT '£' || expected_cost as ""Cost""" lstComm.RowSourceType = "Table/Query" Set lstComm. Recordset = rs 查询返回1.58英镑,但列表框显示1.58英镑 如果我使用 strsql = "trim(TO_CHAR(round(expected_cost,2), 'L999999999
strsql = "SELECT '£' || expected_cost as ""Cost"""
lstComm.RowSourceType = "Table/Query"
Set lstComm.
Recordset = rs
查询返回1.58英镑,但列表框显示1.58英镑
如果我使用
strsql = "trim(TO_CHAR(round(expected_cost,2), 'L9999999999999.99')) as ""Cost"""
查询返回1.58英镑,但列表框显示1.58美元
是否有一种方法可以将列填充为英国货币,同时将RowSourceType保留为“表/查询”?简单回答:是
实现这一点最简单(也是最好)的方法是使用
Currency
格式类型。从那里,您只需将格式
字段从货币
更改为,##0.00;(£#,##0.00)
这很奇怪:看起来您的TO_CHAR
并没有返回字符串,而是返回货币。最终尝试在数字之前连接一个空字符串?类似于“£”+TO\u CHAR(round(预期成本,2)、“l9999999999.99”)
(我对甲骨文的习惯用法并不精通——不确定它是+
还是&
。@patrickonorez我试过选择“£”\124; TO\u CHAR(round(预期成本,2),“l999999999999.99”)这带来了#$1.58你能用一个愚蠢的常量替换这个表达式吗,比如“hello”,以确保你修改了正确的源代码吗?SQL查询是针对Oracle的,所以我不能使用Currency