设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2324|回复: 19
打印 上一主题 下一主题

[窗体] 这样的共用窗体事件代码如何写?

[复制链接]
跳转到指定楼层
1#
发表于 2006-5-31 16:43:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
这样的共用窗体事件代码如何写?


有窗体A、B、C三个,其数据源分别是表A1、B2、C3。在各自的窗体中调用一个共用的窗体D,我想用D中的List4改变调用它的窗体的有关数据。为此我在D事件中写代码:


Private Sub List4_Click()


       Forms!A![工作单位] = List4


       Forms!B![工作单位] = List4


       Forms!C![工作单位] = List4


End Sub


当调用时,总出错,但在D事件中只写调用窗体(当前窗体)的代码,如当前窗体为B,事件代码


Private Sub List4_Click()


       Forms!B![工作单位] = List4


    End Sub


就可以。否则出错。我不想每个窗体都单独建立调用窗体,试图在D事件代码中改为


    Private Sub List4_Click()


       Select Case  当前窗体判断条件


        Case  判断条件


Forms!A![工作单位] = List4


           Case  判断条件


Forms!B![工作单位] = List4


           Case  判断条件


Forms!C![工作单位] = List4


     END Select


End Sub


但不会写Select Case……Case……END Select中的当前窗体判断条件.。请高人指点。另外想问下是否还有更好的解决办法?


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

20#
发表于 2006-6-2 08:39:00 | 只看该作者
不错!
19#
发表于 2006-6-2 07:39:00 | 只看该作者

本帖子中包含更多资源

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

x
18#
发表于 2006-6-2 06:46:00 | 只看该作者
付谦,你曾经的问题:

为何查询中的字段值在报表中不显示?

你已经解决了,可我还不清楚,请你详细解答一下,谢谢!
17#
 楼主| 发表于 2006-6-2 06:28:00 | 只看该作者
等待高手,急

本帖子中包含更多资源

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

x
16#
 楼主| 发表于 2006-6-1 07:00:00 | 只看该作者
以下是引用wu8313在2006-5-31 19:45:00的发言:


使用这个判断窗体是否加载的函数,来判断a b c哪个窗体被加载。

Function IsLoaded(ByVal strFormName As String) As Boolean
' 如果指定窗体在窗体视图或数据表视图中打开,返回 True。
   
    Const conObjStateClosed = 0
    Const conDesignView = 0
   
    If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
        If Forms(strFormName).CurrentView <> conDesignView Then
            IsLoaded = True
        End If
    End If
   
End Function

===================================

list4单击事件代码如下:

If IsLoaded("a") = True Then Forms!A!工作单位 = List4

If IsLoaded("b") = True Then Forms!B!工作单位 = List4

If IsLoaded("c") = True Then Forms!c!工作单位 = List4

DoCmd.Close===================


   [em09][em09]    如果ABC是子窗体,list4单击事件代码怎样改动?我试改为


If IsLoaded("Forms!K!a") = True Then Forms!K!A!工作单位 = List4    'K为主窗体

   窗体中的工作单位变不了。另外,我将模块加入我的数据库,因窗体多,打开数据库时晃动很大。这二个问题如何解决?请帮忙到底!

[此贴子已经被作者于2006-5-31 23:13:09编辑过]

15#
 楼主| 发表于 2006-6-1 05:00:00 | 只看该作者
佩服,真是高手,感谢了!
14#
发表于 2006-6-1 03:45:00 | 只看该作者
使用这个判断窗体是否加载的函数,来判断a b c哪个窗体被加载。

Function IsLoaded(ByVal strFormName As String) As Boolean
' 如果指定窗体在窗体视图或数据表视图中打开,返回 True。
   
    Const conObjStateClosed = 0
    Const conDesignView = 0
   
    If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
        If Forms(strFormName).CurrentView <> conDesignView Then
            IsLoaded = True
        End If
    End If
   
End Function

===================================

list4单击事件代码如下:

If IsLoaded("a") = True Then Forms!A!工作单位 = List4

If IsLoaded("b") = True Then Forms!B!工作单位 = List4

If IsLoaded("c") = True Then Forms!c!工作单位 = List4

DoCmd.Close===================




[此贴子已经被作者于2006-5-31 19:48:42编辑过]

本帖子中包含更多资源

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

x
13#
 楼主| 发表于 2006-6-1 03:04:00 | 只看该作者
急!看了10来次,没见人解决.
12#
发表于 2006-5-31 21:41:00 | 只看该作者
和我的问题一样,等结果
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 04:28 , Processed in 0.090255 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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