Office中国论坛/Access中国论坛

标题: 我学ACCESS11——这种窗体是怎么做的。 [打印本页]

作者: 简    时间: 2004-4-23 05:48
标题: 我学ACCESS11——这种窗体是怎么做的。

在本站下载的一个管理系统,在这个窗体中,其左边部分是怎么做呢?

我看不到它的源代码。:(

[attach]4373[/attach]
作者: Ajoe    时间: 2004-4-23 06:01
这个是用了控件TreeView做成的,看看李寻欢的教程吧:
http://www.accfans.net/bbs/Announce/Announce.asp?BoardID=301&ID=3077
作者: 简    时间: 2004-4-23 07:07
多谢Ajoe,不知该怎么谢谢你了。
作者: 简    时间: 2004-4-24 05:40
为了做这种窗体,我跑马观花把VBA翻了一下,试着写代码如下:

Option Compare Database

Private Sub ActiveX控件0_Updated(Code As Integer)
Private Sub Form_Load()
Set nodx = TreeView1.Nodes.Add(, , "单位", "单位")  '建立单位为父节点
Set nodx = TreeView1.Nodes.Add("单位", tvwChild, "child01", "成都")
Set nodx = TreeView1.Nodes.Add("单位", tvwChild, "child02", "上海")
End Sub

但运行来出现错误提示:运行时出现“424”,要求对象。

这该怎么写呢?还请大伙儿教教我,我不胜感激了。

作者: 简    时间: 2004-4-24 08:44
我也不知道代码问题在哪里,百思不解中,最后干脆发扬拿来主义,取其精华为我所用,将别人类似的例子代码修改为自己想要的,最后得到的结果如图左,点击展开就成图中的显示。

我对这样的显示不满意。我不要折叠展开,希望直接显示如图右所示。同时外协字要比它下面的字大,有颜色,富顺上海等字与它对齐,然后线应该如何设置呢?

一句话:我想要图中右面的显示,不要图中间的显示。


[attach]4407[/attach]

[此贴子已经被作者于2004-4-24 0:45:56编辑过]


作者: 简    时间: 2004-4-24 17:22

还有,我想把单位表里的内容与该treeView相连,也就是说,左边的目录框部分内容来自于单位表里。如果单位表里添加了内容,这个目录框也就自动添加。不然以后又有其它单位的,我又要改数据库的结构,添加结点,好麻烦啊。

比如说,现在单位表里又增添了“天津”,那么在目录框里,也自动添加上“窗体”。

该怎么做呢?

[attach]4409[/attach]
作者: 简    时间: 2004-4-25 05:55
学习ACCESS因为VBA及宏而受到了学ACCESS以来的最大打击。没有VBA基础,那么多控件,属性什么什么的,看不懂啊,就更别说编程了。

像这个TREEVIEW,我查了很多资料,还是不懂,我想解决的问题,还是不能解决。


郁闷极了~~~~:(
作者: 简    时间: 2004-4-25 18:59
如我图所示,这又该怎么做呢?

[attach]4428[/attach]
[此贴子已经被作者于2004-4-25 11:02:01编辑过]


作者: 简    时间: 2004-4-26 04:48
我把示例文件上传了来,请大家帮我看看,代码该怎么修改呢?

[attach]4431[/attach]
[此贴子已经被作者于2004-4-25 21:05:26编辑过]


作者: 简    时间: 2004-4-27 20:51
TreeView在ACCESS的帮助说明里没有呢?
我想查它选项的具体说明呢。从网上资料上得知TreeView的格式是:

object.Add(relative, relationship, key, text, image, selectedimage)

我想了解relative, relationship到底有哪些选择。我从网上下载的相关例子来看,这两项,有人用"a",有人用'R",有人用“R1",也有用“L”的。我不知R、A、R1、L等,是代表什么意思呢?
作者: Ajoe    时间: 2004-4-27 20:56
TreeView我还没有开始认真地学,你比我先学一步了,我不能帮你。
不过我可以帮你“顶”(帖子)。
作者: 木鱼    时间: 2004-4-28 01:14
以下是引用简在2004-4-27 12:50:47的发言:
TreeView在ACCESS的帮助说明里没有呢?
我想查它选项的具体说明呢。从网上资料上得知TreeView的格式是:

object.Add(relative, relationship, key, text, image, selectedimage)

我想了解relative, relationship到底有哪些选择。我从网上下载的相关例子来看,这两项,有人用"a",有人用'R",有人用“R1",也有用“L”的。我不知R、A、R1、L等,是代表什么意思呢?


那个都没有什么关系
只是作为一个唯一标志符
也就是能唯一标志这个节点的,随便什么都可以
只要不重复就行
作者: 简    时间: 2004-4-28 02:37
那么再请问问:TreeView在ACCESS的帮助说明里有没有呢?

作者: hxj_nn    时间: 2004-4-28 04:59
顶!!!ACCESS的“帮助”实在是不敢恭维!
作者: Ajoe    时间: 2004-4-28 05:07
TreeView是控件,ACCESS没有详细的说明文件。
作者: 简    时间: 2004-4-28 06:04
以下是引用Ajoe在2004-4-27 12:56:14的发言:
TreeView我还没有开始认真地学,你比我先学一步了,我不能帮你。
不过我可以帮你“顶”(帖子)。


其实我学这个ACCESS,跳跃性很大,我手里的教材,内容简单得不能再简单了,我根据自己工作中的情况,边做边学,库中需要什么,我就看什么,像表,查询等,我就学得不太深入,很多控件,属性,我就一问三不知了。:(

在此也谢谢你和大伙儿的帮助,真的希望自己,在你们的帮助下,慢慢的进步,更加快乐的学习ACCESS。

[此贴子已经被作者于2004-4-27 22:06:08编辑过]


作者: 木鱼    时间: 2004-4-28 06:50
标题: 今天研究了一下,有点所得,呵呵
以下是引用简在2004-4-22 21:48:07的发言:
在本站下载的一个管理系统,在这个窗体中,其左边部分是怎么做呢?

我看不到它的源代码。:(

左边的可以这样做
效果如图所示
代码如下

Private Sub FORM_Load()
   
    'tvwTest是Treeview的名称
    tvwTest.Nodes.Add , , "A", "外协", 0, 0
    tvwTest.Nodes.Add "A", 2, "B", "富顺", 0, 0
    tvwTest.Nodes.Add "B", 2, "C", "重庆", 0, 0
    tvwTest.Nodes.Add "C", 2, "D", "上海", 0, 0
    tvwTest.Nodes.Add "D", 2, "E", "成都", 0, 0
    tvwTest.Nodes.Add "E", 2, "F", "北京", 0, 0
    tvwTest.Nodes.Add "F", 2, "G", "其他", 0, 0
   
   
End Sub





至于如何点击节点
让右边的表格同步
我再研究一下
应该不难的

[此贴子已经被作者于2004-4-27 22:54:07编辑过]


作者: 简    时间: 2004-4-28 07:57
木鱼木鱼,你发现没有,你那代码不具通用性。如果在单位项里又增添或删除了许多单位,那我不是又要手动修改代码吗?

我的想法是,把右边部分,即单位字段的内容,做成节点,通过指针遍历,从而自动把新添加的单位加入左边的目录里,这样就不用修改代码了。
作者: 木鱼    时间: 2004-4-28 17:03
以下是引用简在2004-4-27 23:56:32的发言:
木鱼木鱼,你发现没有,你那代码不具通用性。如果在单位项里又增添或删除了许多单位,那我不是又要手动修改代码吗?

我的想法是,把右边部分,即单位字段的内容,做成节点,通过指针遍历,从而自动把新添加的单位加入左边的目录里,这样就不用修改代码了。


我知道亚,不过你不要着急嘛,要一步一步来实现亚
我也是初学Access的
以前对Excel的VBA有研究
不过对Access下的没有弄过
馒头要一口一口啃亚
呵呵


作者: 木鱼    时间: 2004-4-28 17:07
两边同步的代码
简单一点的,仅供参考亚
嘿嘿Tableinfo 是右边那个表的名称
Private Sub    tvwTest_NodeClick(   ByVal   Node  As Object )
          Me.TableInfo.Form.FilterOn =True
           Select Case    Node.Key
           Case  "B"
              Me  . TableInfo . Form. Filter  = "[单位]='富顺'"
           Case  "C"
              Me  . TableInfo . Form. Filter  = "[单位] ='重庆'"
           Case  "D"
              Me  . TableInfo . Form. Filter  = "[单位] ='上海   '"

           Case  "E"
              Me  . TableInfo . Form. Filter  = "[单位] ='成都'  "
           Case  "F"
              Me  . TableInfo . Form. Filter  = "[单位] ='北京'  "
            End Select
      End Sub
作者: hamletl    时间: 2004-4-28 17:20
蛮复杂的。
作者: 简    时间: 2004-4-29 02:56
木鱼啊木鱼,你都把单位的值赋给单位了,还用这个分支选择。要是单位二十多个,都这样写吗?
作者: 简    时间: 2004-4-30 04:28

看了那么多例子,分析了那么些代码,自己套用了来,还是不得行。现把我的例子上传上来,请版主和大伙儿给我讲讲,分析一下原因。

在调试时,在这一行上,即: Set sySubRecSet = syDB.OpenRecordset(syRecSet("strRecSet"))出错。我不知道OpenRecordset的语法格式,只是从字面上推测,应该是打开记录集并进行设置,是吗?

这段代码:  Set syRecSet = syDB.OpenRecordset("SELECT * FROM Tab外协详细信息")
我是套用原代码修改的,它是什么意思呢?当我把它也改为Set sySubRecSet = syDB.OpenRecordset(syRecSet("strRecSet"))时,在With语句里也通不过,

不知用with语句时,有什么要求和限制呢?

[attach]4499[/attach]
作者: 简    时间: 2004-5-1 04:23
我真的想解决这个问题,为什么没有人回答呢~~~~
郁闷……
作者: 一根筋    时间: 2004-5-2 12:58
呵呵,我计划把当前一个工作完成后,花时间学习Treeview。但又有个业余培训要考试,看来只有再做安排。
但本帖是学习节点控件的经典好帖,楼主几乎把初学节点者所关心的问题都涉及了。但愿下回我开始学时能很快找到本帖。。。呵呵




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