标题: 相同数字如何检测 [打印本页] 作者: ycxchen 时间: 2008-10-6 07:55 标题: 相同数字如何检测 为便于管理,我在一些记录的手机号码字段用相同的数字作标记,例如,0000000000等。请问,如何用代码或函数检测手机号码里的11位数字都是相同的?作者: Henry D. Sy 时间: 2008-10-6 10:02
不明白你在说什么作者: ycxchen 时间: 2008-10-6 10:13
举个例子,有如下两条记录:
姓名 手机号码
小陈 13509980001
小王 00000000000
我想用代码或函数将手机号码里的11位数字都是相同数字的记录检测出来,即将小王的记录检测出来,如何办呢?作者: Henry D. Sy 时间: 2008-10-6 11:18
try
定义一个数组来保存经过分割出来的11个数字,然后比较。作者: ycxchen 时间: 2008-10-6 14:28
谢谢大家!4楼的办法较好,有例子吗?
对于5楼的,目的达到但不实际。因为,手机号码是00000000000的只是一个例子,我的目的是想手机号码是类似00000000000、11111111111等相同数字的如何检测。盼指教作者: andymark 时间: 2008-10-6 14:50
select * from 表 where mid(手机号码,1,5)=mid(手机号码,6,5) and mid(手机号码,1,1)=mid(手机号码,2,1) and mid(手机号码,1,1)=mid(手机号码,3,1) and mid(手机号码,1,1)=mid(手机号码,4,1) and mid(手机号码,1,1)=mid(手机号码,5,1) and mid(手机号码,1,1)=mid(手机号码,11,1)作者: Henry D. Sy 时间: 2008-10-6 23:55
Public Function CompareField(strField As String) As Boolean
Dim str, strTemp As String
Dim I As Integer
str = Mid(strField, 1, 1)
CompareField = True
For I = 1 To Len(strField)
strTemp = Mid(strField, I, 1)
If strTemp <> str Then
CompareField = False
Exit Function
End If
Next
End Function
SELECT A.姓名, A.号码
FROM A
WHERE (((CompareField([号码]))=True));
把为TRUE的筛选出来就行了。作者: Henry D. Sy 时间: 2008-10-7 00:18
如果保证都是11位,则9楼的方法可行。作者: ycxchen 时间: 2008-10-7 08:14
十分感谢各位的热心指教!真的很感谢大家!作者: ycxchen 时间: 2008-10-7 08:26
我认为7、8楼的方法较好,9楼的方法对固定的11111111111号码才有用,不灵活。作者: ycxchen 时间: 2008-10-7 19:51
7楼及8楼的办法我都应用了,但运行时RUNSQL操作需要参数,如何解决?盼指教.
[attach]32552[/attach]作者: ycxchen 时间: 2008-10-7 19:53
不好意思,13楼所说的是指但运行时提示出错,说RUNSQL操作需要参数。如何解决?盼指教.作者: Henry D. Sy 时间: 2008-10-7 20:09
RunSQL
只能是,操作查询,并不返回记录集。作者: ycxchen 时间: 2008-10-7 20:16
dddddd大哥,我想打开查询查看检测结果,哪如何修改SQL语句呢?请指点。作者: Henry D. Sy 时间: 2008-10-7 20:40
最简单的办法就是
作个查询(也就是上面我给你的查询),然后在按钮事件中打开他。
docmd.OpenQuery作者: ycxchen 时间: 2008-10-7 22:59
十分感谢dddddd大哥!两个问题请教:
1、你说“的RunSQL操作查询不返回记录集”是什么意思?能举个例子说明一下吗?
2、对14楼的问题我真的弄不明,请你帮我在我的例子中修改一下吧,先感谢了!作者: Henry D. Sy 时间: 2008-10-8 01:23
在 Visual Basic 中,RunSQL 方法执行 RunSQL 操作。
expression.RunSQL(SQLStatement, UseTransaction)
expression 必需。返回“Applies To”列表中的一个对象的表达式。
SQLStatement 必需 Variant 型。字符串表达式,表示操作查询或数据定义查询的有效 SQL 语句。它使用 INSERT INTO、DELETE、SELECT...INTO、UPDATE、CREATE TABLE、ALTER TABLE、DROP TABLE、CREATE INDEX 或 DROP INDEX 语句。如果要访问其他数据库,则应包含 IN 子句。
[ 本帖最后由 dddddd 于 2008-10-8 01:24 编辑 ]作者: Henry D. Sy 时间: 2008-10-8 01:40
1
将下面的查询保存为 A
SELECT 游客表.姓名, 游客表.地址, 游客表.手机, 游客表.固定电话
FROM 游客表
WHERE (((CompareField([手机]))=True));
2
然后,在输入下面的代码
Private Sub Command9_Click()
DoCmd.OpenQuery "A"
End Sub作者: ycxchen 时间: 2008-10-8 09:55
万分感谢dddddd,你真是大哥级的高手!作者: ycxchen 时间: 2008-10-8 10:06
19楼的解释太抽象了,举个例子说明一下好吗?作者: Henry D. Sy 时间: 2008-10-8 10:55
就是说
runsql方法只能是动作查询或数据定义查询,也就是以INSERT INTO、DELETE、SELECT...INTO、UPDATE、CREATE TABLE、ALTER TABLE、DROP TABLE、CREATE INDEX 或 DROP INDEX这些语法为语句的查询,而不能用一般的选择查询(select 。。。from 。。。。where。。。。。)
因为,runsql不会返回记录集,而选择查询需要返回记录集。
例子:
docmd.runsql "insert into ..........."作者: ycxchen 时间: 2008-10-8 11:04
万分感谢dddddd大哥!你真是一位一级的好人加高手,向您学习!