Access 中 如何把半角变为全角,请告诉我这个函数怎么写,谢谢
答案:2 悬赏:30 手机版
解决时间 2021-01-25 06:47
- 提问者网友:你挡着我发光了
- 2021-01-24 22:24
Access 中 如何把半角变为全角,请告诉我这个函数怎么写,谢谢
最佳答案
- 五星知识达人网友:举杯邀酒敬孤独
- 2021-01-24 23:56
为了防止客户在输入的时候,错误地输入了全角(半角)字符,我们要通过程序将它转换成正确的半角(全角)字符,这是给定的函数。
<%
'****************************
'*参数说明:
'* str:要转换的字符串
'* flag:标记,为0时半转全,为非0时全转半
'* 返回值类型:字符串
'****************************
function DBC2SBC(str,flag)
dim i
if len(str)<=0 then
REsponse.Write("字符串参数为空")
exit function
end if
for i=1 to len(str)
str1=asc(mid(str,i,1))
if str1>0 and str1<=125 and not flag then
dbc2sbc=dbc2sbc&chr(asc(mid(str,i,1))-23680)
else
dbc2sbc=dbc2sbc&chr(asc(mid(str,i,1))+23680)
end if
next
End function
%>
<%
'****************************
'*参数说明:
'* str:要转换的字符串
'* flag:标记,为0时半转全,为非0时全转半
'* 返回值类型:字符串
'****************************
function DBC2SBC(str,flag)
dim i
if len(str)<=0 then
REsponse.Write("字符串参数为空")
exit function
end if
for i=1 to len(str)
str1=asc(mid(str,i,1))
if str1>0 and str1<=125 and not flag then
dbc2sbc=dbc2sbc&chr(asc(mid(str,i,1))-23680)
else
dbc2sbc=dbc2sbc&chr(asc(mid(str,i,1))+23680)
end if
next
End function
%>
全部回答
- 1楼网友:雾月
- 2021-01-25 00:18
思考了一段时间 查了一点资料 写了一些想法 解决了一些问题 有了一点体会
在开发应用系统时,结合数据进行处理,应用最多的是文本框对象,特别是进行中英文的输入时,来回切换非常繁琐,所以我们可以借助自定义子类,来实现中英文输入的自动切换。其步骤如下:
通过系统菜单栏“文件/新建/类…”启动“新类”对话框,填入类名:gstextbox,并设置父类为:textbox。按“确定”键进入类设计器画面。新增一个属性,来作为对象是否启动中文输入法的控制码。
通过系统菜单栏“类/新建属性…”启动“新建属性”对话框,按上表设置属性,其中可视性设为:公共。最后设置gotfocus与lostfocus事件过程:
gotfocus event事件过程:
if this是否中文
=imestatus(1)
else
=imestatus(0)
endif
lostfocus event事件过程:
=imestatus(0)
到此,类已经定义完成,以后只要在设计表单时,通过表单控件“工具栏/查看类/添加…”把自定义类加入,并且设置“是否中文”属性即可实现中英文输入的自动切换。
15、在visual foxpro中实现autonumber
用visual foxpro设计一对多的关系数据库时,我们需要在主表建立一个主索引,在子表建立一个普通索引。在主表中添加记录时,必须保证被设置为主索引的字段没有重复的值。如果让用户来手工添加记录,有可能在被设置为主索引的字段中出现重复的值,从而导致数据库出错。在access中,有一个autonumber型的字段,由系统自动产生这些不可重复的值,避免了数据库的出错,也为用户带来了方便。
那么在visual foxpro中如何实现这个功能呢?笔者的做法是编一个添加记录的小程序,当用户添加记录时,由自编的程序插入一个新记录,并产生新记录被设置为主索引的字段的值。示例如下:
有如下二表,people.dbf(主表)结构为id n(3),name c(8),jobdbf(子表)结构为id n(3),job c(10),我们在二表之间建立一对多关系,将people.dbf的id设置为主索引,将job.dbf的id设置为普通索引。添加people.dbf记录的程序如下:
′insertpeople.prg:
calculate max(id) to maxid ′查找现有id的最大值,存入maxid
insert into people (id) values (maxid+1) ′插入新的记录,并使新记录的id=maxid+1
实际应用时,设计一个添加按钮(commandbutton1),使其caption=“添加”,在其click事件中加入代码:
′commandbutton1.click
do insertpeople
如表中记录不经常删除,这一方法比较适用。当表中的数据常常删除时,此方法有一个缺点,仍以people.dbf为例,假设people.dbf中有3条记录,id分别为1、2、3,当用户删除(delete and pack)id为2的记录后再添加记录,新添加的记录id为4,而这时的愿望是使其id为2,否则的话,为id分配的3位number空间可能不够用。此时可修改insertpeople.prg如下:
′insertpeople.prg:
select people
for i=1 to 999 ′让i在1~999之间循环
locate for (i==people.id) ′在people中查找i值是否重复
if found()=.f.
insert into people (id) values (i)
′不重复的话,用此时的i值作为新记录的id值
exit ′中断循环
endif
endfor
在一对多关系中的多方(子表)添加记录时,为了实现与主表的关联,也可以用类似的方法实现
解决了自己的问题 不知道能否给他人启发
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯