使用 RecordSource 屬性可以指定窗體或報(bào)表的數(shù)據(jù)源。String 型,可讀寫(xiě)。
expression.RecordSource
expression 必需。返回“應(yīng)用于”列表中的一個(gè)對(duì)象的表達(dá)式。
RecordSource 屬性設(shè)置可以是表名稱(chēng)、查詢(xún)名稱(chēng)或者 SQL 語(yǔ)句。例如,可以使用以下設(shè)置:
設(shè)置示例 |
說(shuō)明 |
雇員 |
一個(gè)將“雇員”表指定為數(shù)據(jù)源的表名稱(chēng)。 |
SELECT 訂單!訂購(gòu)日期 FROM 訂單; |
該 SQL 語(yǔ)句指定“訂單”表中的“訂購(gòu)日期”字段作為數(shù)據(jù)源。將控件的 ControlSource 屬性設(shè)為“訂購(gòu)日期”,就可以將窗體或報(bào)表中的控件綁定到“訂單”表的“訂購(gòu)日期”字段。 |
注釋 使用窗體或報(bào)表的屬性表、宏或者 Visual Basic 可以對(duì) RecordSource 屬性進(jìn)行設(shè)置。
在 Visual Basic 中,使用字符串表達(dá)式可以對(duì)該屬性進(jìn)行設(shè)置。
注釋 如果對(duì)打開(kāi)的窗體或報(bào)表的記錄源進(jìn)行了更改,則會(huì)自動(dòng)對(duì)基礎(chǔ)數(shù)據(jù)進(jìn)行重新查詢(xún)。如果窗體的 Recordset 屬性在運(yùn)行時(shí)設(shè)置,則會(huì)更新窗體的 RecordSource 屬性。
創(chuàng)建窗體或報(bào)表之后,更改 RecordSource 屬性便可以對(duì)其數(shù)據(jù)源進(jìn)行更改。使用 RecordSource 屬性還可以創(chuàng)建可重復(fù)使用的窗體或者報(bào)表。例如,可以先創(chuàng)建一個(gè)包含標(biāo)準(zhǔn)設(shè)計(jì)的窗體,然后復(fù)制該窗體,修改其 RecordSource 屬性,便可以顯示來(lái)自不同表、查詢(xún)或者 SQL 語(yǔ)句的數(shù)據(jù)。
對(duì)窗體記錄源的記錄數(shù)目進(jìn)行限制,可以提高系統(tǒng)或者應(yīng)用程序的性能,特別是當(dāng)應(yīng)用程序在網(wǎng)絡(luò)上運(yùn)行時(shí)效果更加明顯。例如,可以將窗體的 RecordSource 屬性設(shè)為返回單個(gè)記錄的 SQL 語(yǔ)句,并可以按照用戶選擇的條件來(lái)更改窗體的記錄源。
下面的示例將窗體的 RecordSource 屬性設(shè)為“客戶”表:
Forms!frmCustomers.RecordSource = "Customers"
下一個(gè)示例根據(jù) cmboCompanyName 組合框控件中選定的公司名稱(chēng),將窗體的記錄源更改為“客戶”表中的單個(gè)記錄。該組合框的內(nèi)容由一條語(yǔ)句決定,該 SQL 語(yǔ)句返回的是客戶 ID(在綁定列中)和公司名稱(chēng)。“客戶ID”的數(shù)據(jù)類(lèi)型為“文本”型。
Sub cmboCompanyName_AfterUpdate()
Dim strNewRecord As String
strNewRecord = "SELECT * FROM Customers " _
& " WHERE CustomerID = '" _
& Me!cmboCompanyName.Value & "'"
Me.RecordSource = strNewRecord
End Sub