如何使ACCESS对大小写敏感?(100分奉送)

qiashzhou 2005-03-09 01:22:00
如题:
我用"Select * from Table1 where field1 = 'a'"这条语句会把field1='A'的记录搜索出来.
怎么样可以让它对大小写敏感呢,如果可以直接可以设置Access的某个属性而不修改sql语句更好.
用like语句好像不行,我需要精确匹配.

论坛里搜了一下没什么结果,有个Ms sql 4的说可以修改注册表,access不知道是不是同样处理.
...全文
377 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiashzhou 2005-03-11
  • 打赏
  • 举报
回复
用MyComp = StrComp(MyStr1, MyStr2, 0) = 0可以解决问题,非常感谢!!
changechange 2005-03-10
  • 打赏
  • 举报
回复

StrComp 函数


返回 Variant (Integer),为字符串比较的结果。

语法

StrComp(string1, string2[, compare])

StrComp 函数的语法有下面的命名参数:

部分 说明
string1 必要参数。任何有效的字符串表达式。
string2 必要参数。任何有效的字符串表达式。
Compare 可选参数。指定字符串比较的类型。如果 compare 参数是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。



设置

compare 参数设置为:

常数 值 描述
vbUseCompareOption -1 使用Option Compare语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。



返回值

StrComp 函数有下列返回值:

如果 StrComp 返回
string1 小于 string2 -1
string1 等于 string2 0
string1 大于 string2 1
string1 或 string 2为 Null Null

StrComp 函数示例
本示例使用 StrComp 函数来比较两个字符串。如果第三个参数值为 1,字符串是以文本比较的方式进行比较;如果第三个参数值为 0 或是缺省,则以二进制比较的方式进行比较。

文本比较方式会将大小写字母视为一样,但二进制比较方式则视为不同。

Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd" ' 定义变量。
MyComp = StrComp(MyStr1, MyStr2, 1) ' 返回 0。
MyComp = StrComp(MyStr1, MyStr2, 0) ' 返回 -1。
MyComp = StrComp(MyStr2, MyStr1) ' 返回 1。

qiashzhou 2005-03-10
  • 打赏
  • 举报
回复
可能我水平太差,我的理解,LIKE和instr都只是模糊查询,大小写是可以区分,但是用instr(1,field1,"AAA",0)>0会把"AAA"和"AAAA"都查出来.

strcomp函数也许可以解决问题,但是找不到详细的这个函数的介绍.

changechange 2005-03-10
  • 打赏
  • 举报
回复
关于此主题请参考:
在Jet SQL查询中,如何区分大小写?《查询》
http://access911.net/index.asp?u1=a&u2=73FAB31E14DC

你看了没有?有什么麻烦的?
qiashzhou 2005-03-10
  • 打赏
  • 举报
回复
那篇帖子我看过了,但是结论似乎是要精确区分大小写很麻烦,而且似乎很难做到.程序写完了才发现这个问题,头疼.

1楼说的方法太烦了,操作性不强.
2楼说的即使行也只能对一个字符的进行操作.

不过还是谢谢大家.实在不行可能得限制大小写在界面上的输入.

如果有好的方法请继续发言,万分感谢.
changechange 2005-03-09
  • 打赏
  • 举报
回复
关于此主题请参考:
在Jet SQL查询中,如何区分大小写?《查询》
http://access911.net/index.asp?u1=a&u2=73FAB31E14DC
cb0912cn 2005-03-09
  • 打赏
  • 举报
回复
sql="Select * from Table1 where field1 = " & chr(asc(a))
不知道可以区分不?
bugouku 2005-03-09
  • 打赏
  • 举报
回复
好像不可以。
可不可以先查出来,再在程序里面过滤一下呢?!

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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