Office中国论坛/Access中国论坛

标题: 窗体中查询按扭如何定义为文本类型 [打印本页]

作者: comcndai    时间: 2010-11-6 11:42
标题: 窗体中查询按扭如何定义为文本类型
因为表中的值需要输入数字和字母的组合,所以定义为文本类型。

在窗体中添加了一个文本框和一个查询的按扭。
但是现在数据类型不匹配,无法查找,怎么定义为文本类型呢?
怎么写?新手刚学ACCESS,查了帮助,百度都找不到,请教高手~:Smilies13:
非常感谢~~
具体代码如下:


Private Sub cmd查询_Click()
    Me.Form.Requery
On Error GoTo Err_cmd查询_Click

    Dim strWhere As String  '定义字符串类型   (这一句怎么定义成文本类型?)
   
    strWhere = "" '设定初始值-空字符串
'判断【InputID】条件是否有输入的值
    If Not IsNull(Me.InputID) Then
        '有输入
        strWhere = strWhere & "([ID] = " & Me.InputID & ")"
    End If
作者: li08hua    时间: 2010-11-6 13:08
String 本来就是“字符型数据”,也就是你说的“文本类型”。不然,你把“String”改为“Variant”试试?不然就把文件传上来!
作者: comcndai    时间: 2010-11-6 14:19
感谢您的回答!
已上传附件,因为在主表 Main中,字段ID必须为数字+字母,所以这里选的文本。
但是在窗体点查询的时候,就出现了错误。
如果我把表中MAIN字段ID改为数字型,就没有问题了。
但是我必须使用文本型的,怎么改了,非常感谢!

[attach]44036[/attach]

作者: li08hua    时间: 2010-11-6 14:40
你的子窗体“筛选”值等于“([ID] = 222)”错了,既然ID项是文本,那他的值就应该用引号"",你把222改为"222"。
作者: comcndai    时间: 2010-11-6 16:16
本帖最后由 comcndai 于 2010-11-6 16:16 编辑

哪里有什么子窗体ID=222了?
能否截个图上传看看。另外我的子窗体根本就没有使用筛选,是直接读取整个MAIN表啊。。
谢谢回答。

作者: li08hua    时间: 2010-11-7 01:20
你自己看看图吧,
你可能是用了别人的mdb自己改了用,不然你自己设的值都不知道(看代码是刘小军的作品)?这样不好。
看别人的实例当然也是一种学习方法,但不能什么都拿来用,不然,实在不是什么好事!
我简单帮你改了一下(包括代码部分),你自己看看为什么会这样![attach]44039[/attach]

作者: comcndai    时间: 2010-11-8 15:10
非常感谢您的帮助。
现在可以输10位以上的数字查询了,这个后来发现是因为数字长整型的只支持到10位数字。
strWhere = strWhere & "([ID] = " & Me.InputID & ")"
改成
strWhere = strWhere & "([ID] like " & Me.InputID & ") "这个就好了,为什么用这个模糊查询就可以,用=就不行了。
另外这个主程序是我写的,并不是拿的别人的程序上修改的,您说的那个ID=222的,我不知道是怎么回事,的确是有,我查了现在的文件也有,但是值不一样,我删除了也没影响,不知道怎么回来了。

上面输入10位以上数字是解决了,但是出现了新的问题了
无法输入字母和数字的组合查询,因为驾驶证号码有的最后一位是字母的,现在都已经文本型了,为啥还不行呢。表里面设置的也是文本型。
您可以在您改过的那份附件试试,输入字母查询就会报错。
再次感谢您的帮助。





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3