Office中国论坛/Access中国论坛

标题: 急!为什么老是报"类型不匹配"错误? [打印本页]

作者: olive_fy    时间: 2009-2-3 14:48
标题: 急!为什么老是报"类型不匹配"错误?
我定义了个函数,如何在过程中引用,总是报"类型不匹配"错误,请大家指教!
这个函数是引用控件内容,生成过滤内容.
详见附件!
作者: Grant    时间: 2009-2-3 15:07
Function FltStr(ComboBoxName As ComboBox)
If Left(ComboBoxName.Text, 2) = "所有" Then
FltStr = ""
Else
FltStr = ComboBoxName
End If
End Function


Private Sub PN_AfterUpdate()
Debug.Print FltStr(PN)
'Me.CFDetFG.Form.filter =
'Me.CFDetFG.Form.FilterOn = True
End Sub

FLDName As Field? 值列表会有字段名称吗?
作者: ACMAIN_CHM    时间: 2009-2-3 15:38
Function FltStr(ComboBoxName As ComboBox, FLDName As String)
    If Left(ComboBoxName.Text, 2) = "?ùóD" Then
        FltStr = ""
    Else
        FltStr = FLDName & "='" & ComboBoxName.Value & "'"
    End If
End Function


Private Sub PN_AfterUpdate()
    Me.CFDetFG.Form.filter = FltStr(PN, "PN")
    Me.CFDetFG.Form.FilterOn = True
End






******************
*  一切皆有可能  *
******************


QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/SList/Access .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
作者: olive_fy    时间: 2009-2-3 15:39
Private Sub PN_AfterUpdate()
Debug.Print Fl ...
Grant 发表于 2009-2-3 15:07


我是要定义一个表中的字段类型的参数的,FLDName是字段名,要怎么表示?
作者: olive_fy    时间: 2009-2-3 16:09
3# ACMAIN_CHM

多谢帮忙,已解决!!都是引号惹的货!
作者: olive_fy    时间: 2009-2-3 16:23
3# ACMAIN_CHM

如果用and 连接两个过滤内容,用下面的格式有问题,
Me.CFDetFG.Form.filter = FltStr(PN, "PN") & "And" & FltStr(pro, "pro")

刚刚试了下,会报错"除非控件获得焦点,否则您不能引用该控件的属性或方法"什么的,我把截图传上来了.请帮忙看看!
作者: ACMAIN_CHM    时间: 2009-2-3 16:31
FltStr = FLDName & "='" & ComboBoxName.Value & "'"
能用value的情况尽量用value, 一般不用text. 注意看帮助中的注释段, 另一个建议是提问前,请先看帮助。

以下摘自 Microsoft Access 2003 Help

Text 属性
参阅应用于示例特性

使用 Text 属性可以设置或返回文本框中包含的文本,或组合框中文本框部分包含的文本。String 型,可读写。

expression.Text
expression      必需。返回“应用于”列表中的一个对象的表达式。
说明Text 属性用于设置在控件中显示的文本,也可以使用 Text 属性来读取控件的当前文本。
只能通过Visual Basic 来设置或读取该属性。

注释  若要设置或返回一个控件的 Text 属性,控件必须具有焦点,否则就会出错。要将焦点移到一个控件上,可以使用 SetFocus 方法或 GoToControl 操作。

当控件获得焦点时,Text 属性将包含控件中当前的文本数据,而 Value 属性将包含控件上一次保存的数据。当焦点移动到另一控件时,控件的数据将会更新,并且 Value 属性将设置为这一新值。在重新获得焦点之前,Text 属性设置是不可用的。如果使用“记录”菜单中的“保存记录”命令来保存控件中的数据,而不移动焦点,则 Text 属性和 Value 属性的设置将是相同的。





******************
*  一切皆有可能  *
******************

QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/SList/Access .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
作者: olive_fy    时间: 2009-2-3 16:32
本帖最后由 olive_fy 于 2009-2-3 16:35 编辑

7# ACMAIN_CHM

谢谢!下次还要看把帮助看仔细些!

另外,那个过滤连接的格式正确吗?
作者: koutx    时间: 2009-2-3 17:00
本帖最后由 koutx 于 2009-2-3 17:01 编辑

给你一个改好的样本,去比较一下就明白了。再有下载你的问题库扣了我两块银元我也得弄回来呀!真不知网站为什么连帮助解决问题的下载也要扣银子?[attach]34796[/attach]
作者: olive_fy    时间: 2009-2-3 20:50
9# koutx
谢谢,辛苦了!
这个钱也扣就是不太公平。
作者: tmtony    时间: 2009-2-3 21:15
不好意思, 刚才看了这个贴子,才知道  我犯了一个严重错误, 导致论坛分值设置错误, 原来 常规交流区/行业交流/ADP交流区 下载 是不应该扣分的, 否则给想帮助别人的人也扣了分了. 应该只有 在 技巧和源码区下载 才需扣分的
现改正过来了, 交流区只有加分,没有扣分.
给大家造成不便, 非常抱歉,同时也感谢todaynew 的建议 和 olive_fy  koutx 的发现
同时给相应的给别人帮助的 ACMAIN_CHM  加回了分值
作者: chenwm1973    时间: 2009-2-4 21:27
学习
作者: shenboo    时间: 2009-2-5 08:59
知道了
作者: jackysu78    时间: 2009-3-23 17:35
这只能怪提问题的人为什么要这样子?晕




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