Office中国论坛/Access中国论坛

标题: 怎樣編程實現這樣的效果 [打印本页]

作者: HG    时间: 2002-9-13 00:36
标题: 怎樣編程實現這樣的效果

這樣的效果該怎麼來實現哪?datasheet可以實現這麼多層嗎?[em14][em14]
作者: gnoy    时间: 2002-9-13 01:01
典型的1对多关联
作者: HG    时间: 2002-9-13 01:23
老大,是典型的一對多關係,但怎麼用datasheet來實現,這麼多層,才是問題的要害呀?
作者: herdsboy    时间: 2002-9-13 18:40
关系定义好了,打开数据表不就这样了吗
作者: HG    时间: 2002-9-13 19:35
天,您是讓用戶來直接對基表進行讀寫嗎?多恐怖。
現在的問題是,第一先輸入第一層的主鍵,然後依次過濾數據,來產生這樣的效果,譔怎麼做?
謝謝!
作者: freemanager    时间: 2002-9-13 22:28
可以用TreeView,模样稍有不同,效果比这还要俊俏一些:)
作者: HG    时间: 2002-9-13 22:59
freemanager老師:我不會用任何控件,所以才想笨方法嗎?
在ACCESS中一項數據設計服務,可以實現這樣的效果。是DATESHAPE
但是必須用MSdatashape作為數據提供者,但我收遍了自已的計算機也找不到這個。
shape的語言如下:
shape
{ master SQL statement}
append (
{<child SQL statement>}
relate <master expr> to <child expr>
)
我仔細研究過這個功能,是可以達到我這樣的效果的,但是現在連聯接串都無法建立。
因為找不到msdatashape提供者。怎麼辦呀?
作者: freemanager    时间: 2002-9-14 01:53
你这可真是叫骑驴找驴:)
    有空学点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语句,构造出层次型的记录集。在层次型记录集中,单个字段能够指向整个子记录集。 
    至于怎么用它来实现你要求的效果你自己去试验吧。



作者: HG    时间: 2002-9-14 21:22
耶塞,師!
現在就去實現都怪微軟不好!什麼時時候給小女孩改了名,都不公布一下,
害的,讓我再去找歷史。八個牙魯,撕啦撕啦撕,喲西,花姑娘的干活...,喲西...
作者: HG    时间: 2002-9-17 18:37
datashape,對數據庫操作影響性能好像很大,速度上明顯減慢。
請問多重嵌套子查詢對性能的影響有多大,好像也很大,速棄上明顯減慢。
請問有哪些方法來提高性能哪?




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