设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3557|回复: 7
打印 上一主题 下一主题

[Access本身] 如何做一个公用的代码?

[复制链接]
跳转到指定楼层
1#
发表于 2009-2-18 15:39:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在一个窗体中,本来有一个"数据计算"按钮,代码中有很多的语句,同时,窗体里还有好多文本框用来输入数据的,如何让每一个文本框的数据输入完后都能自动进行"数据计算"呢?也就是如何将原来"数据计算"按钮中的代码做成一个公用的代码?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-2-18 15:48:10 | 只看该作者
那就用数组算了
3#
发表于 2009-2-18 16:07:28 | 只看该作者
表述不明
4#
发表于 2009-2-18 20:15:45 | 只看该作者
做个标准模块,然后在文本框事件中调用
5#
发表于 2009-2-18 21:05:01 | 只看该作者
Option Compare Database
Option Explicit


Private Sub Command6_Click()
    reCalMyResult
End Sub

Private Sub Text0_Change()
    reCalMyResult
End Sub

Private Sub Text2_Change()
    reCalMyResult
End Sub

Private Sub Text4_Change()
    reCalMyResult
End Sub


Private Sub reCalMyResult()
    Debug.Print Me.Text0.Value + Me.Text2.Value + Me.Text4.Value
End Sub



以下摘自 Microsoft Access 2003 Help


调用 Sub 以及 Function 过程
从其它过程调用一个 Sub 过程时,必须键入过程名称以及任何需要的参数值。而 Call 语句并不需要,不过若使用它,则任何参数必须以括号括起来。
可以使用 Sub 过程去组织其它的过程,因此可以较容易了解并调试它们。在下面的示例中,Sub 过程 Main 传递参数值 56 去调用 Sub 过程 MultiBeep。运行 MultiBeep 后,控件返回 Main,然后 Main 调用 Sub 过程 MessageMessage 显示一个信息框;当按“确定”键时,控件会返回 Main,接着 Main 退出执行。

Sub Main()
    MultiBeep 56
    Message
End Sub

Sub MultiBeep(numbeeps)
    For counter = 1 To numbeeps
        Beep
    Next counter
End Sub

Sub Message()
    MsgBox "Time to take a break!"
End Sub


调用具有多个参数的 Sub 过程
下面的示例展示了调用具有多个参数的 Sub 过程的两种不同方法。当第二次调用 HouseCalc 时,因为使用 Call 语句所以需要利用括号将参数括起来。

Sub Main()
    HouseCalc 99800, 43100
    Call HouseCalc(380950, 49500)
End Sub

Sub HouseCalc(price As Single, wage As Single)
    If 2.5 * wage <= 0.8 * price Then
        MsgBox "You cannot afford this house."
    Else
        MsgBox "This house is affordable."
    End If
End Sub


在调用 Function 过程时使用括号

为了使用函数的返回值,必须指定函数给变量,并且用括号将参数封闭起来;如下示例所示:

Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3")

如果不在意函数的返回值,可以用调用 Sub 过程的方式来调用函数。如下面示例所示,可以省略括号,列出参数并且不要将函数指定给变量:

MsgBox "Task Completed!", 0, "Task Box"

小心 在上述例子中若包含括号,则语句会导致一个语法错误。

传递命名参数

SubFunction 过程中的语句可以利用命名参数来传递值给被调用的过程。可以将命名参数以任何顺串行出。命名参数的组成是由参数名称紧接着冒号(:=)以及等号,然后指定一个值给参数。

下面的示例使用命名参数来调用不具返回值的 MsgBox 函数。

MsgBox Title:="Task Box", Prompt:="Task Completed!"

下面的示例使用命名参数调用 MsgBox 函数。将返回值指定给变量 answer3

answer3 = MsgBox(Title:="Question 3", _Prompt:="Are you happy with your salary?", Buttons:=4)



写 Sub 过程
Sub 过程是一系列由 Sub End Sub 语句所包含起来的 Visual Basic 语句,它们会执行动作却不能返回一个值。Sub 过程可有参数,例如常数变量、或是表达式等来调用它。如果一个 Sub 过程没有参数,则它的 Sub 语句必须包含一个空的圆括号。

下面 Sub 过程中,每一行都有注释来解释它的作用:

'声明过程命名为 GetInfo
'该 Sub 过程没有参数
Sub GetInfo()
'声明字符串变量命名为 answer
Dim answer As String
'指定 InputBox 函数的返回值给 answer
answer = InputBox(Prompt:="What is your name?")
    '条件 If...Then...Else 语句
    If answer = Empty Then
        '调用 MsgBox 函数
        MsgBox Prompt:="You did not enter a name."
    Else
        'MsgBox 函数与 answer 变量连接。
        MsgBox Prompt:="Your name is " & answer
    '结束 If...Then...Else 语句
    End If
'结束 Sub 过程
End Sub




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

.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/BList/OtherDatabase .
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 .
6#
 楼主| 发表于 2009-2-19 08:52:58 | 只看该作者
本帖最后由 hzwyj 于 2009-2-19 08:58 编辑

谢谢ACMAIN_CHM 的指点,已搞好.再问一下,如果这个窗体中有好几个子窗体,想每个子窗体都能都能调用这个模块,那是不是每个子窗体都要写同样的代码呢?能不能放在"公用模块"中啊
7#
发表于 2009-2-19 09:38:52 | 只看该作者
标准模块包含与任何其他对象都无关的常规过程,以及可以从数据库任何位置运行的经常使用的过程。





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

.
ACMAIN - Access论坛回贴准则(个人).
.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/BList/OtherDatabase .
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 .

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
 楼主| 发表于 2009-2-19 14:01:58 | 只看该作者
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-6 17:24 , Processed in 0.106899 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表