TextBox中的最大字符长度问题

kongming 2000-06-10 11:24:00
在ACCESS97数据库中一字段长度为20,设该字段的绑定控件Text1.MaxLength=20,
则可以录入20个中文字符,在Update时就会报错,我知道这是Unicode编码的原因,
怎样才能让Text1中录入字符数超过10个中文字符或20个英文字符时就会阻止用户
继续输入呢?以前用KeyPress事件和StrConv函数基本解决,但如果用户使用粘贴
功能就不行了,我不想将粘贴功能屏蔽掉,这个问题困惑我好久了,有什么好的解决方法吗?

...全文
722 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yepo 2000-06-21
  • 打赏
  • 举报
回复
不好意思,网站好象有点问题!
yepo 2000-06-21
  • 打赏
  • 举报
回复
在写表的时候判断字节长度。
注意不能用len() 和lenb() ,lenb()永远等于len()的两倍。
自己做个function读取实际字节长度,
function hzlen(s as string)
hzlen=0
for i=1 to len(s)
if asc(mid(s,i,1))<0 then
hzlen=hzlen+2
else
hzlen=hzlen+1
end if
next

zigzag 2000-06-19
  • 打赏
  • 举报
回复
可以换个角度考虑,使数据库字段的长度为输入框限制的长度的2倍。即可以将字段长度设为40,文本框最大长度为20字符。没什么不可以,没必要专牛角尖。
okok 2000-06-12
  • 打赏
  • 举报
回复
You may use that function LEN() and LENB(),transact your Text OCX.
forest 2000-06-12
  • 打赏
  • 举报
回复
出错的原因在于你的字段长度不够。请注意:20个中文字符需要的存储长度为40!
解决办法很简单:把字段长度改为40即可。
Un1 2000-06-12
  • 打赏
  • 举报
回复
拦截此错误!
bokei 2000-06-11
  • 打赏
  • 举报
回复
用MaskEdit不就行了?
VB自带的,没有就自己找一个吧。
mafangsan 2000-06-11
  • 打赏
  • 举报
回复
你不要在KeyPress事件中编程,你用Change 事件试试,因为粘贴
时不会执行KeyPress事件过程中的代码,但Change 事件还是会发生。
kongming 2000-06-11
  • 打赏
  • 举报
回复
to mafangsan:
能说具体点吗?以前试过CHANGE事件,但在UNICODE转换过程中,TEXTBOX内显示的是???
Chen_Lin 2000-06-11
  • 打赏
  • 举报
回复
Validate不行吗?

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧