设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 275|回复: 9
打印 上一主题 下一主题

怎樣編程實現這樣的效果

[复制链接]
跳转到指定楼层
1#
发表于 2002-9-13 00:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

這樣的效果該怎麼來實現哪?datasheet可以實現這麼多層嗎?[em14][em14]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-9-13 01:01:00 | 只看该作者
典型的1对多关联
3#
 楼主| 发表于 2002-9-13 01:23:00 | 只看该作者
老大,是典型的一對多關係,但怎麼用datasheet來實現,這麼多層,才是問題的要害呀?
4#
发表于 2002-9-13 18:40:00 | 只看该作者
关系定义好了,打开数据表不就这样了吗
5#
 楼主| 发表于 2002-9-13 19:35:00 | 只看该作者
天,您是讓用戶來直接對基表進行讀寫嗎?多恐怖。
現在的問題是,第一先輸入第一層的主鍵,然後依次過濾數據,來產生這樣的效果,譔怎麼做?
謝謝!
6#
发表于 2002-9-13 22:28:00 | 只看该作者
可以用TreeView,模样稍有不同,效果比这还要俊俏一些:)
7#
 楼主| 发表于 2002-9-13 22:59:00 | 只看该作者
freemanager老師:我不會用任何控件,所以才想笨方法嗎?
在ACCESS中一項數據設計服務,可以實現這樣的效果。是DATESHAPE
但是必須用MSdatashape作為數據提供者,但我收遍了自已的計算機也找不到這個。
shape的語言如下:
shape
{ master SQL statement}
append (
{<child SQL statement>}
relate <master expr> to <child expr>
)
我仔細研究過這個功能,是可以達到我這樣的效果的,但是現在連聯接串都無法建立。
因為找不到msdatashape提供者。怎麼辦呀?
8#
发表于 2002-9-14 01:53:00 | 只看该作者
你这可真是叫骑驴找驴:)
    有空学点ADO的基本理论吧:封装在ADO中的数据驱动如下:
"MSDASQL"  Microsoft OLE DB Provider for ODBC Data Provider
"SQLOLEDB" Microsoft OLE DB Provider for SQL Server Data Provider
"MSDataShape" Microsoft Data Shaping Service for OLE DB Service Provider
(內建)  Microsoft Cursor Service for OLE DB Service Provider(Service Componet)
   说明:若不指明使用何种Provider,ADO使用默认的MSDASQL,即Microsoft OLE DB Provider for ODBC。

下面是一小段利用DATAShape的例句(摘自俺的老笔记,出处我忘了):

Dim con As ADODB.Connection
Dim rstPubs As ADODB.Recordset
Dim rstTitles As ADODB.Recordset
Dim sShape As String

Set con = New ADODB.Connection
Set rstPubs = New ADODB.Recordset
    con.Provider = "MSDataShape"   '这就是你要的
    con.Open "Data Provider=Microsoft.Jet.OLEDB.4.0;" _
       & "Data Source=Biblio.mdb;"
    sShape = "SHAPE {SELECT Name, PubID " _
      & " FROM Publishers} " _
      & " APPEND ({SELECT Title, PubID " _
      & " FROM Titles} " _
      & " As PubTitles " _
      & " RELATE PubID TO PubID) "
   rstPubs.Open sShape, con
Do Until (rstPubs.EOF)
Debug.Print rstPubs!Name
Set rstTitles = rstPubs("ubTitles").Value
Do Until (rstTitles.EOF)
Debug.Print " " & rstTitles!Title
rstTitles.MoveNext
Loop
rstPubs.MoveNext
Loop
rstPubs.Close
con.Close
Set rstPubs = Nothing
Set con = Nothing
    Biblio.mdb是安装VB的时候装入的例子库。这里用到了其中的两个表:Publishers、Titles。以相同字段PubID做成一对多联接。还可以照此例嵌套更多的子表(SQL语句)。
    DataShape最大的特点是允许你聚合多个SQL语句,构造出层次型的记录集。在层次型记录集中,单个字段能够指向整个子记录集。 
    至于怎么用它来实现你要求的效果你自己去试验吧。


9#
 楼主| 发表于 2002-9-14 21:22:00 | 只看该作者
耶塞,師!
現在就去實現都怪微軟不好!什麼時時候給小女孩改了名,都不公布一下,
害的,讓我再去找歷史。八個牙魯,撕啦撕啦撕,喲西,花姑娘的干活...,喲西...
10#
 楼主| 发表于 2002-9-17 18:37:00 | 只看该作者
datashape,對數據庫操作影響性能好像很大,速度上明顯減慢。
請問多重嵌套子查詢對性能的影響有多大,好像也很大,速棄上明顯減慢。
請問有哪些方法來提高性能哪?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 18:31 , Processed in 0.108860 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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