Access交流中心

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

窗体B引用窗体A控件值,不出现错值:

yaw  发表于:2013-12-02 16:22:29  
复制

请各位老师看看如何才能在:
A窗体中添加一个命令打开B窗体同时引用A窗体中字段为ITEM的字段值
可以通过控件来源:B![ITEM]=forms!A!item,但是我有一个问题如果我想单独打开B窗体时不显示参数:错值,只显示空窗体。即通过两种方式都可以打开B窗体。

谢谢�������ش˸���

 

Top
chinasa 发表于:2013-12-02 17:22:47

把B的控件来源去掉,在A的打开窗体事件中增加一句:Forms!B!ITEM = Forms!A!ITEM

 

Private Sub Command2_Click()
On Error GoTo Err_Command2_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "B"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
Forms!B!ITEM = Forms!A!ITEM
Exit_Command2_Click:
    Exit Sub

Err_Command2_Click:
    MsgBox Err.Description
    Resume Exit_Command2_Click
   
End Sub

 



123木头人 发表于:2013-12-02 20:30:54

思路:

首先在你打开B窗体的时候要判断A窗体有没有打开。

如果打开了:B![ITEM]=forms!A!item

否则:B![ITEM]=""

实现:

免费赠送一个判断窗体是否打开的函数:其实是ACCESS软件网里面淘来的

Public Function IsLoaded(ByVal strFormName As String) As Boolean
'判断窗体是否加载的函数
    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
把B窗体ITEM控件中的 = Form_A.ITEM清除,再在B窗体加载事件中写:

Private Sub Form_Load()
    If IsLoaded("A") Then
        Me.ITEM = Form_A.ITEM
    End If
End Sub
点击下载此附件




yaw 发表于:2013-12-03 08:39:37
木头人老师看看系统的错误提示!

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