這樣的效果該怎麼來實現哪?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语句,构造出层次型的记录集。在层次型记录集中,单个字段能够指向整个子记录集。
至于怎么用它来实现你要求的效果你自己去试验吧。