直播中
authors 和 titleauthors 表中的 Recordset 對象通過 author ID 進行關(guān)聯(lián)。
外循環(huán)顯示每個作者的姓名、州/省別和身份。
每行所追加的 Recordset 都從 Fields 集合進行檢索并分配給 rstTitleAuthor。
內(nèi)循環(huán)顯示追加的 Recordset 中每行的四個字段。
(StayInSync 屬性是為了說明而設置為 FALSE 的,以便您可以在每次外循環(huán)中顯性地看見子集更改。但是,如果在步驟 3 中的賦值被移動到步驟 2 第一行之前,范例將會更有效,所以賦值只執(zhí)行一次。然后將 StayInSync 屬性設為 TRUE,這樣無論 rst 何時移動到新行,rstTitleAuthor 都將隱性和自動地更改為相應的子集。)
范例
Sub datashape()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rstTitleAuthor As New ADODB.Recordset
cnn.Provider = "MSDataShape"
cnn.Open "Data Provider=MSDASQL;" & _
"DSN=vfox;uid=sa;pwd=vfox;database=pubs”
‘步驟 1
rst.StayInSync = FALSE
rst.Open "SHAPE {select * from authors}
APPEND ({select * from titleauthor}
RELATE au_id TO au_id) AS chapTitleAuthor",
cnn
‘步驟 2
While Not rst.EOF
Debug.Print rst("au_fname"), rst("au_lname"),
rst("state"), rst("au_id")
‘步驟 3
Set rstTitleAuthor = rst("chapTitleAuthor").Value
‘步驟 4
While Not rstTitleAuthor.EOF
Debug.Print rstTitleAuthor(0), rstTitleAuthor(1),
rstTitleAuthor(2), rstTitleAuthor(3)
rstTitleAuthor.MoveNext
Wend
rst.MoveNext
Wend
End Sub
形狀語法格式
以下是創(chuàng)建 Shape 命令的規(guī)范語法。
必需的語法項為尖括號 (“<>”) 界定的文本字符串。
可選項由方括號 (“[ ]”) 界定。
任選其一項用豎線 (“|”) 隔開。
重復的可選項用省略號 (“...”) 表示。
Alpha 表示字母字符串。
Digit 表示數(shù)字字符串。
Unicode-digit 表示由 unicode 數(shù)字組成的字符串。
所有其他項目均為文字。
項目 定義
<shape-command>
SHAPE [<table-exp> ][[AS] <alias>]][<shape-action>]
<table-exp>
{<native-sql-statement>} |(<shape-command>) |
TABLE <quoted-name> |
<quoted-name>
<shape-action>
APPEND <aliased-field-list> | COMPUTE <aliased-field-list>
[BY <field-list> ][[AS] <alias>]]
<aliased-field-list>
<aliased-field> [, <aliased-field...]
<aliased-field>
<field-exp> [[AS] <alias>]
<field-exp>
(<relation-exp>) |<calculated-exp>
<relation_exp>
<table-exp> [[AS] <alias>] RELATE <relation-cond-list>
<relation-cond-list>
<relation-cond> [, <relation-cond>...]
<relation-cond>
<field-name> TO <child-ref>
<child-ref>
<field-name> | PARAMETER <param-ref>
<param-ref>
<number>
<field-list>
<field-name [, <field-name>]
<calculated-exp>
SUM(<qualified-field-name>) |AVG(<qualified-field-name>) |
MIN(<qualified-field-name>) |
MAX(<qualified-field-name>) |
COUNT(<alias> | <qualified-field-name>) |
STDEV(<qualified-field-name>) |
ANY(<qualified-field-name>) |
CALC(<expresion>)
<qualified-field-name>
<alias>.[<alias>...]<field-name>
<alias>
<quoted-name>
<field-name>
<quoted-name>
<quoted-name>
"<string>" | '<string>' |
[<string>] |
<name>
<name>
alpha [ alpha | digit | _ | # ...]
<number>
digit [digit...]
<string>
unicode-char [unicode-char...]
<expression>
Visual Basic for Applications 表達式,其操作數(shù)是相同行中其他非 CALC 列。