设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[ADO/DAO] 求助:如何用代码设置每个文本字段的IMEMode?

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-20 10:10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在网上搜到一片帖子www.office-cn.net/Article/Class5/Class9/200502/770.html ,说用DAO设置field.properties("IMEMODE")=2遍历所有文本字段就可以关掉Ime:
    For Each myFld In myT.Fields
         If myFld.Properties("type") = dbText And Right(myT.Name, 4) Like "_???" Then
            myFld.Properties("ImeMode") = 2
            debug.print myFld.Name, myFld.Properties("ImeMode")           
            '1 开
            '2 关
            '0 随系统设置
        End If
    Next

问题是field的properties里面根本就没有ImeMode这一项,所以上述设置根本不起作用啊?(设置完马上debug.print,只能回显一个空值。)

请问老大这是为什么,如何实现?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2008-8-20 12:05:56 | 只看该作者
顶起来到高手看到为止!![:47]
3#
发表于 2008-8-20 14:37:17 | 只看该作者
估计楼主VBA没有引用DAO
4#
 楼主| 发表于 2008-8-20 15:02:51 | 只看该作者
原帖由 liwen 于 2008-8-20 14:37 发表
估计楼主VBA没有引用DAO

不引用连执行都执行不了啊

不过我听你的刚才把引用换了一下,从DAO3.6换成DAO3.51
奇怪的事情发生了
对个别表里面的字段产生作用了(IMEMODE变成了OFF)!
但是还有大部分表没有发生作用
不知道为什么,正在研究

Thanks anyway
5#
 楼主| 发表于 2008-8-20 15:19:02 | 只看该作者
奇怪了,同一个数据库的两张表,各有一些文本字段
循环到第一张表顺利将每一个字段的.properties("IMEMODE")设为2 (Off),到第二张表就报错说“run-time error '3270' Property not found”!
难道同是TEXT 也会有些有IMEMODE属性,有些没有?晕死
看来问题复杂了,期待高高手
for each myfield in mytable.fields
if myfield.properties("Type")=dbText then myfield.properties("ImeMode")=2
next myfield
6#
 楼主| 发表于 2008-8-20 15:56:06 | 只看该作者

呼唤专家:为什么文本字段的properties会不同?

我用以下这段程序分别过两个表中的文本字段,惊奇地发现了他们的不同:
For Each myFld In mydb.TableDefs("BSC_BRI").Fields
    For i = 0 To myFld.Properties.Count - 1
    Debug.Print i, myFld.Properties(i).Name
    Next i
Next myFld
在可以设置的表里,每个文本字段有27个属性,其中第25个是IMEMODE:
0            Value
1            Attributes
2            CollatingOrder
3            Type
4            Name
5            OrdinalPosition
6            Size
...
17           FieldSize
18           OriginalValue
19           VisibleValue
20           ColumnWidth
21           ColumnOrder
22           ColumnHidden
23           DisplayControl
24           IMEMode
25           IMESentenceMode
26           UnicodeCompression
在不可以设置IMEMODE的表里,每个文本字段有20个属性,其中没有IMEMODE:
0            Value
1            Attributes
2            CollatingOrder
3            Type
4            Name
...
17           FieldSize
18           OriginalValue
19           VisibleValue
为什么会这样?为什么呢~~~~~~~~~[:44]
7#
发表于 2008-8-20 16:03:35 | 只看该作者
上传实例才好分析
8#
 楼主| 发表于 2008-8-21 11:47:08 | 只看该作者

感谢斑竹耐心

附件中有两个表,每个表均由一些文本字段构成。在模块中有两个子程序,分别DISPLAY这些文本字段的属性和修改其中的"IMEMode"属性。
BSC_BRI表中的文本字段均有27个属性,其中含有"IMEMode"属性。
PCMS_CRE表中的文本字段均只有20个属性,其中不含有"IMEMode"属性。
因此修改IME程序对第一个表有效,对第二个表报错。
我的问题是:同是文本字段,为何在不同的表中属性的数量都不同呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
发表于 2008-8-21 15:30:04 | 只看该作者
这两个表不是从一个库里来的吗?还真有这种情况。
那个不含“IMEMode"属性的表,我只是将字段类型重新确认了一下就正常了。
10#
 楼主| 发表于 2008-8-21 16:51:35 | 只看该作者
第二个表是我用Docmd.runsql "Create Table XXX A1 Text(50), A2 Text(50),..."这么生成出来的。
“那个不含“IMEMode"属性的表,我只是将字段类型重新确认了一下就正常了。”
我明白了,谢谢斑竹!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-6 08:40 , Processed in 0.110453 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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