Office中国论坛/Access中国论坛

标题: 求助:表格和窗体间的连接 [打印本页]

作者: partz    时间: 2010-6-15 19:10
标题: 求助:表格和窗体间的连接
本帖最后由 partz 于 2010-6-16 07:20 编辑

本人菜鸟,学access才几天,自己建一个表格,又建立了相应的窗体。
现在想实现:在表格查看的时候,点击ID或者其他的什么可能的位置,能自动打开窗体的相应的窗口。
比如说点击表格中ID=6的一行,窗体能打开,并且显示ID=6的内容。
谢谢!
作者: partz    时间: 2010-6-17 07:05
这个很难实现吗?还是太简单?顶~
作者: 紫风    时间: 2010-6-17 12:38
在窗体的数据表ID用鼠标双击,代码如下:

Private Sub ID_DblClick(CANCEL As Integer)
    Dim strFilter As String
    strFilter = "ID = " & Me.ID
    DoCmd.OpenForm "窗体名称", acFormDS, , strFilter
End Sub
作者: partz    时间: 2010-6-17 15:35
谢谢紫风!
是要把这个代码在vb中形成模块吗?还是形成宏?
作者: 紫风    时间: 2010-6-17 18:04
4# partz

都不用啊。你在ID的双击事件里写下这个代码就可以了。

再具体点:
在窗体的设计视图里右键点击ID,属性-双击-事件过程。
作者: partz    时间: 2010-6-17 19:39
再谢紫风,学到很多东西!
不过,我想的是从表到窗,不是从窗到表。
我按照你的方法,看了表格中的id属性,好像没法用。是不是所有的控件都是针对窗体的?
作者: 石三少    时间: 2010-6-18 10:34
鸡同鸭讲!
你的基础知识需要重新学习一遍。
作者: 紫风    时间: 2010-6-18 13:02
呵呵,表是储存数据的地方,用窗体来录入数据啊...

例如,要往某个表(tbl收据)里添加数据,做个窗体,再给个按钮保存(CmdSave),单击事件如下:
Private Sub CmdSave_Click()
    Dim STemp As String
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset

    rs.Open "tbl收据", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
            With rs
                .AddNew
                ![日期] = Me.日期
                ![收据号] = Me.收据号
                ![公司名称] = Me.公司名称
                ![收款事由] = Me.收款事由
                ![金额] = Me.金额
                .Update
            End With
        rs.Close
        Set rs = Nothing
    MsgBox "保存成功!", vbOKOnly, SoftName
End Sub
作者: partz    时间: 2010-6-18 18:49
鸡同鸭讲!
你的基础知识需要重新学习一遍。
石三少 发表于 2010-6-18 10:34

哈哈,其实我就是正在学习中~
作者: partz    时间: 2010-6-18 18:55
感谢紫风!
看来是我表达有问题。
我想做一个数据库,在表格里面可以直观地看到很多关键词,简介。因为表格中都是只能显示一行,主要的内容显示不全,所以我才想到用窗体。对我来说,窗体既是输入数据的,也是查看数据的。
我设想的是,通过表格快速浏览,找到需要的资料,然后点击ID,能够打开相应的窗体,供我详细地阅读。
我不需要报表,因为我每次查看都是没有特定标准的,只是临时性的选择。
目前看,好像无法实现,是不是我的思路不对?还是有其他的方法能够满足我的需求?
作者: 紫风    时间: 2010-6-18 23:44
本帖最后由 紫风 于 2010-6-18 23:51 编辑

OKAY,这样说吧:
你在查看以数据表显示的窗体时,想看个ID是58的记录的详细资料,就双击ID,结果就弹出个窗体,你可以编辑该记录,对不?

如果是,可参照以下方法:

你建一个窗体,在属性里“数据表视图”选择“是”,其他“窗体视图”之类的全选择“否”。
然后打开窗体看看,应该就是你要的“表格”视图了。(实际上这个还是个窗体,只是以数据表形式显示)。
又或者,如果你建了控制面板之类,按钮单击如下:
docmd.openform "窗体名称", acFormDs(窗体以数据表形式显示),  ,

然后在设计视图里,找到你要做双击事件的控件,写下鼠标双击事件代码:
Private Sub ID_DblClick(CANCEL As Integer)
    Dim strFilter As String
    strFilter = "ID = " & Me.ID
    DoCmd.OpenForm "窗体A", acFormNormal, , strFilter
End Sub
其实就是做个筛选条件。当然,前提是你已经做好这个要打开的“窗体A”。

方法还有其它,以上只是我习惯的方法,就拿出来告诉你咯。
作者: partz    时间: 2010-6-19 10:42
嘿!终于明白了!
原来可以做一个数据表的窗体,然后就搞定了!
我用的是2010版本,做这样一个窗体是很容易的,所以我也很容易就实现了我想要的功能。
从现在开始,我算是窥见门槛了~谢谢紫风!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3