设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 求串长度问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-9-12 13:52:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
dim a as string
a = "Abc中国def"
如何能得到字节数为10?

我要不得到长度8,要不通过lenb得到16,在C中A串的字节数是为10的,我在VBA中如何获得
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-9-12 14:59:54 | 只看该作者
作 者:朱亦文
发布日期:2004年2月24日
摘 要:在汉字显示时,一个汉字占了2个英文字母的宽度,而以Len求长度时,1个汉字返回1,1个英文字母也返回1,由于ACCESS中使用的是UniCode编码,故此LenB则会返回2,例如en("中国ACCESS")=8,LenB("中国ACCESS")=16,而实际上“中国ACCESS”在屏幕上只占了10英文字母的宽度,那么如何来求取这个数值呢?

正 文:


Public Function chkGb(strGB As String) As Integer
  Dim ByteGB() As Byte
  ByteGB = StrConv(strGB, vbFromUnicode)
  chkGb = UBound(ByteGB) + 1
End Function

文章出处:http://www.diybl.com/course/7_da ... /2007614/51293.html
3#
发表于 2009-9-12 15:00:17 | 只看该作者
首先 "a" 并不是只占一个字节。在UNICODE中字符同样也是两个字节。

所以只能你自己写一个函数进行判断了。
4#
发表于 2009-9-12 15:01:43 | 只看该作者
lenb(strconv("Abc中国def",vbFromUnicode))
5#
 楼主| 发表于 2009-9-12 15:03:32 | 只看该作者
非常感谢各位版主,非常清楚,受教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-19 18:40 , Processed in 0.097315 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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