Access交流中心

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

如何写公用模块?

不务实  发表于:2009-11-28 09:56:57  
复制

Private Sub 窗体上的按钮_Click()

If 自定 = 1 Then
    MsgBox "不符合条件"
    Exit Sub
Else   
End If

    略......(我要执行的事件)

End Sub


条件(也就是红字的那一块)很多地方用到,想拆分成公用模块,应怎么写公用模块
如:
 
窗体上的按钮代码

Private Sub 窗体上的按钮_Click()

调用公用模块

    略......(我要执行的事件)

End Sub


模块上代码(我不会定,请指教):

 

 

Top
金矢 发表于:2009-11-28 11:02:38

有问楼主:

一、条件(也就是红字的那一块)很多地方用到。是在本窗体内很多地方要用;还是在其他窗体中都要用?

二、"自定"是一个什么变量:是在何位置、以什么关键字声明的?

这两个问题必须搞清楚。



不务实 发表于:2009-11-28 14:17:53

条件是本窗体外的

自定的语句不要去管它,这儿只是假设,是个查询语句哪儿都能引用到的,



andymark 发表于:2009-11-28 14:44:06

公有Sub或FUNCTION 一般是在模块建立,并以PUBLIC 开头声明

 

在模块中:

Public Sub Test()

 

   If 自定 = 1 Then
      MsgBox "不符合条件"
      Exit Sub
     Else
   End If
  
End Sub

 

 

窗体中调用:

 

Private Sub 窗体上的按钮_Click()

   Call Test

End Sub

 

 



不务实 发表于:2009-11-28 15:35:58

窗体是能调用了,但它只终止了模块上的Exit Sub,而不是终止窗体上的事件

 

 

而我要的是符合模块上的条件,窗体上的按钮就不往下执行了呀

Private Sub 窗体上的按钮_Click()

   Call Test

 

(在这儿我的要求是达到模块上的条件不往下执行,可是你这样还是往下执行了)

 略......

End Sub



金矢 发表于:2009-11-28 20:09:17

如果在公用模块的条件语句中,代码较多的情况下,而又会在很多过程中使用之,可用自定义公用函数作如下变通:(因我不知在调用自定义函数时能否将SUB过程名作为参数传递,只好如此啦。)

 

在模块中建以下自定义函数:

Option Compare Database

Function es() As Boolean
If tj < 5 Then

 

    '以下是其他可能有的较多代码:

    '--------------

    '-------------

    '------------

     '以上是其他可能有的较多代码:


    es = False
Else

 

     '以下是其他可能有的较多代码:

    '--------------

    '-------------

    '------------

     '以上是其他可能有的较多代码:


    es = True
End If
End Function

 

在窗体Sub过程中如下编写:

Private Sub 窗体上的按钮_Click()

If es() = False Then
    Exit Sub
Else

End If

 

'以下是不终止过程时要执行的语句

'------------

'-------------

'-----------

 

End Sub



andymark 发表于:2009-11-29 09:51:12

Public Sub Test() as  Boolean

 

   If 自定 = 1 Then

      MsgBox "不符合条件"

        Test=false

       exit function        
        Else

      test=true
   End If
  
End Sub

 

 

窗体中调用:

 

Private Sub 窗体上的按钮_Click()

   if  Test=false then

       exit sub

   end if

End Sub

 



不务实 发表于:2009-11-29 10:02:05

我明白了,学了不少,就我这个例子而言,实际上窗体上代码并不可能再简化了,

在窗体上不直接用

If 自定 = 1 Then
      MsgBox "不符合条件"
      Exit Sub
     Else
   End If


而是通过模块

在窗体上引用

if  Test=false then

       exit sub

   end if

可能更可读些



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