Office中国论坛/Access中国论坛

标题: 公共函数定义和调用的问题 [打印本页]

作者: olive_fy    时间: 2009-2-9 15:20
标题: 公共函数定义和调用的问题
我在模块中定义了一个函数,如下:
Public Function GetFlt(CtrlName As Control, FLDName As String) As String
GetFlt = FLDName & "='" & CtrlName.Value & "' and "
End Function
保存的模块名字是 GetFLt
然后在过程中调用,我的用法是:
dim str as string
str=getflt(pro,"pro")
运行时提示错误:"缺少变量和过程,不是模块"
请教各位,哪里错了?
谢谢!
作者: ACMAIN_CHM    时间: 2009-2-9 15:43
str=getflt(pro,"pro")

检查一下 pro是什么?



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

.

.
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 .
作者: koutx    时间: 2009-2-9 15:49
上周好象有个极相近的例子,搜一下
作者: olive_fy    时间: 2009-2-9 16:03
2# ACMAIN_CHM

pro是控件名称

koutx:
上周的例子就是我的,不过上周的函数没有放模块里面,已经调试通过了,现在放模块里不好调用.
作者: 轻风    时间: 2009-2-9 16:18
把你的模块名改成其他名字试试。
作者: tz-chf    时间: 2009-2-9 16:18
本帖最后由 tz-chf 于 2009-2-9 16:20 编辑

Public Function GetFlt(CtrlName As String, FLDName As String) As String

str=getflt("控件名","pro")

好象没必要写函数
作者: 轻风    时间: 2009-2-9 16:25
是啊,就一公式还写函数,多余。
作者: koutx    时间: 2009-2-9 16:25
本帖最后由 koutx 于 2009-2-9 16:39 编辑

1、模块中
Function strB(c As Object, f As String) As String
strB = f & " = '" & c & "'"
'或strB = f & " = '" & c.Value & "'"

End Function
2、窗体的Combo8中
Private Sub Combo8_AfterUpdate()
Dim f As String
f = "姓名"
MsgBox strB(Me.Combo8, f)
End Sub
作者: koutx    时间: 2009-2-9 16:30
附件[attach]34947[/attach]
作者: olive_fy    时间: 2009-2-9 16:47
本帖最后由 olive_fy 于 2009-2-9 16:50 编辑



谢谢各位!
我把模块的名字换的和函数名不一样就好了.
奇怪的问题!
作者: koutx    时间: 2009-2-9 16:55
10# olive_fy
其实公用函数是为了解决在众多过程中多次写同样的重复代码的问题,否则没必要呀。
作者: Henry D. Sy    时间: 2009-2-9 20:12
函数名与模块名不可相同




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