Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

关于模块函数调用的问题

chinasa  发表于:2014-04-10 10:03:56  
复制

我在窗体事件中写入:

Dim ABCD As Long
XXX = "查询名"
JTBGSCD ABCD

 

在模块中写入:

Sub JTBGSCD(ABCD As Long)  

bgjls = DCount("*", XXX)         '在这个语句出错
If bgjls = 0 Then
MsgBox "无记录"
End If

END SUB

看气力是在窗体中赋值的函数XXX = "查询名"没有传递到模块中,请问如何解决谢谢。

 

Top
zhaoyoulong 发表于:2014-04-10 10:17:30

Function JTBGSCD(XXX as string )  as long

dim  bgjls as long

bgjls = DCount("*", XXX)         '在这个语句出错
       

JTBGSCD=bgjls

END Function

在窗体事件中写入:


if JTBGSCD ("查询名")<1 then 

MsgBox "无记录"

exit sub

end if

SUB是一个过程不传值,用Function函数传值

其实以上函数没有必要写,在在窗体事件中写入:


if DCount("*", XXX) <1 then

MsgBox "无记录"

exit sub

end if



cspa 发表于:2014-04-10 10:27:44

改为:

调用处:
JTBGSCD       '你这个过程没有参数传递,只需告诉AC在此处调用哪个过程即可

   

在模块中写入:

Sub JTBGSCD()    

bgjls = DCount("*", XXX)        

If bgjls = 0 Then
MsgBox "无记录"
End If

END SUB



chinasa 发表于:2014-04-10 10:30:47
万分感谢,上面我只是临时写了个例子,我的语句不是这样的,我要的主要是Function JTBGSCD(XXX as string )  as long,已经帮我解决问题了,平时都没用过模块,属于小白型,感谢大神指点!谢谢啊~~

cspa 发表于:2014-04-10 10:36:00

如果每次用的查询XXX名称不一致,也可改为:

Dim XXX  As string

XXX = "查询名"
JTBGSCD XXX   '在这里将查询名传递过去

 

在模块中写入:

Sub JTBGSCD(ABCD As string)  '在这里用ABCD接受传递过来的XXX字符串

bgjls = DCount("*", ABCD)         '在这里ABCD变量即是查询名称XXX

If bgjls = 0 Then
MsgBox "无记录"
End If

END SUB



chinasa 发表于:2014-04-10 10:43:04
感谢CSPA,我刚要问的第二个问题,被您提前回答了,谢谢啊。

总记录:5篇  页次:1/1 9 1 :