共用方式為


CDaoRecordView 類別

在控制項中顯示資料庫記錄的檢視。

語法

class AFX_NOVTABLE CDaoRecordView : public CFormView

成員

受保護的建構函式

名稱 描述
CDaoRecordView::CDaoRecordView 建構 CDaoRecordView 物件。

公用方法

名稱 描述
CDaoRecordView::IsOnFirstRecord 如果目前記錄是相關聯記錄集中的第一筆記錄,則傳回非零。
CDaoRecordView::IsOnLastRecord 如果目前記錄是相關聯記錄集中的最後一筆記錄,則傳回非零。
CDaoRecordView::OnGetRecordset 傳回衍生自 CDaoRecordset 之類別物件的指標。 ClassWizard 會為您覆寫此函式,並視需要建立記錄集。
CDaoRecordView::OnMove 如果目前記錄已變更,請在資料來源上更新它,然後移至指定的記錄(下一筆、上一筆、第一筆或最後一筆)。

備註

檢視是直接連接到 CDaoRecordset 物件的表單檢視。 檢視會從對話方塊範本資源建立,並在對話方塊範本的控制項中顯示物件的欄位 CDaoRecordset 。 物件 CDaoRecordView 會使用對話方塊資料交換 (DDX) 和 DAO 記錄欄位交換 (DFX),將表單上的控制項與記錄集欄位之間的資料移動自動化。 CDaoRecordView 也提供預設實作,以移至目前在檢視中的記錄,以移至第一筆、下一筆、上一筆或最後一筆記錄,以及更新記錄的介面。

注意

DAO 資料庫類別與以 Open Database 連線ivity (ODBC) 為基礎的 MFC 資料庫類別不同。 所有 DAO 資料庫類別名稱都有 「CDao」 前置詞。 您仍然可以使用 DAO 類別存取 ODBC 資料來源;DAO 類別通常會提供優越的功能,因為它們使用 Microsoft Jet 資料庫引擎。

建立記錄檢視的最常見方式是使用應用程式精靈。 應用程式精靈會建立記錄檢視類別和其相關聯的記錄集類別,作為基本架構入門應用程式的一部分。

如果您只需要單一表單,應用程式精靈方法會比較容易。 ClassWizard 可讓您決定稍後在開發程式中使用記錄檢視。 如果您未使用 [應用程式精靈] 建立記錄檢視類別,您可以稍後使用 ClassWizard 建立記錄檢視類別。 使用 ClassWizard 個別建立記錄檢視和記錄集,然後連接它們是最有彈性的方法,因為它可讓您更控制命名記錄集類別及其 。H/。CPP 檔案。 此方法也可讓您在同一個記錄集類別上有多個記錄檢視。

為了讓終端使用者輕鬆地從記錄移至記錄檢視中的記錄,應用程式精靈會建立功能表(以及選擇性工具列)資源,以移至第一筆、下一筆、上一筆或最後一筆記錄。 如果您使用 ClassWizard 建立記錄檢視類別,則必須使用功能表和點陣圖編輯器自行建立這些資源。

如需從記錄移至記錄的預設實作相關資訊,請參閱 IsOnFirstRecord 和使用記錄檢視 一文 ,這兩者都 CRecordView 適用于 和 CDaoRecordViewIsOnLastRecord

CDaoRecordView 會追蹤記錄集中使用者的位置,讓記錄檢視可以更新使用者介面。 當使用者移至記錄集的任一端時,記錄檢視會停用使用者介面物件,例如功能表項目或工具列按鈕,以便以相同方向進一步移動。

如需宣告和使用記錄檢視和記錄集類別的詳細資訊,請參閱記錄檢視一文中的<設計和建立記錄 檢視> 。 如需記錄檢視的運作方式和使用方式的詳細資訊,請參閱使用記錄檢視 一文 。 上述所有文章都 CRecordView 適用于 和 CDaoRecordView

繼承階層架構

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

CDaoRecordView

需求

標頭: afxdao.h

CDaoRecordView::CDaoRecordView

當您建立衍生自 CDaoRecordView 的類型物件時,請呼叫任一形式的建構函式來初始化檢視物件,並識別檢視所依據的對話資源。

explicit CDaoRecordView(LPCTSTR lpszTemplateName);
explicit CDaoRecordView(UINT nIDTemplate);

參數

lpszTemplateName
包含以 Null 結尾的字串,該字串是對話範本資源的名稱。

nIDTemplate
包含對話方塊範本資源的識別碼。

備註

您可以依名稱來識別資源(將字串當做引數傳遞至建構函式)或其識別碼(傳遞不帶正負號的整數作為引數)。 建議使用資源識別碼。

注意

衍生類別必須提供自己的建構函式。 在衍生類別的建構函式中,呼叫具有資源名稱或識別碼作為引數的建構 CDaoRecordView::CDaoRecordView 函式。

CDaoRecordView::OnInitialUpdate 會呼叫 CWnd::UpdateData ,其會呼叫 CWnd::DoDataExchange 。 這個初始呼叫會將 DoDataExchangeCDaoRecordView 控制項連線到 CDaoRecordset ClassWizard 所建立的欄位資料成員。 在您呼叫基類 CFormView::OnInitialUpdate 成員函式之前,無法使用這些資料成員。

注意

如果您使用 ClassWizard,精靈會在類別宣告中定義值 enumCDaoRecordView::IDD ,並在建構函式的成員初始化清單中使用它。

CMyDaoRecordView::CMyDaoRecordView()
    : CDaoRecordView(CMyDaoRecordView::IDD)
{
   m_pSet = NULL;
   // TODO: add construction code here
}

CDaoRecordView::IsOnFirstRecord

呼叫這個成員函式,以判斷目前記錄是否為與此記錄檢視相關聯之 recordset 物件中的第一筆記錄。

BOOL IsOnFirstRecord();

傳回值

如果目前記錄是記錄集中的第一筆記錄,則為非零;否則為 0。

備註

此函式適用于撰寫由 ClassWizard 所撰寫之預設命令更新處理常式的您自己的實作。

如果使用者移至第一筆記錄,架構會停用任何使用者介面物件(例如功能表項目或工具列按鈕),您必須移至第一筆或上一筆記錄。

CDaoRecordView::IsOnLastRecord

呼叫這個成員函式,以判斷目前記錄是否為與此記錄檢視相關聯之 recordset 物件中的最後一筆記錄。

BOOL IsOnLastRecord();

傳回值

如果目前記錄是記錄集中的最後一筆記錄,則為非零;否則為 0。

備註

此函式適用于撰寫 ClassWizard 寫入的預設命令更新處理常式自有實作,以支援使用者介面,以便從記錄移至記錄。

警告

此函式的結果很可靠,不同之處在于檢視在使用者移過記錄集之前,可能無法偵測到記錄集的結尾。 使用者可能必須移至最後一筆記錄,記錄檢視才能告知它必須停用任何使用者介面物件,才能移至下一筆或最後一筆記錄。 如果使用者移動超過最後一筆記錄,然後移回最後一筆記錄(或之前),記錄檢視可以追蹤使用者在記錄集中的位置,並正確地停用使用者介面物件。

CDaoRecordView::OnGetRecordset

傳回與記錄檢視相關聯之衍生物件的指標 CDaoRecordset

virtual CDaoRecordset* OnGetRecordset() = 0;

傳回值

如果成功建立物件,則為 CDaoRecordset 衍生物件的指標,否則為 Null 指標。

備註

您必須覆寫這個成員函式,以建構或取得記錄集物件,並傳回它的指標。 如果您使用 ClassWizard 宣告記錄檢視類別,精靈會為您撰寫預設覆寫。 ClassWizard 的預設實作會在有記錄檢視時傳回儲存在記錄檢視中的記錄集指標。 如果沒有,它會建構您使用 ClassWizard 指定之類型的 recordset 物件,並呼叫其 Open 成員函式來開啟資料表或執行查詢,然後傳回物件的指標。

如需詳細資訊和範例,請參閱記錄檢視:使用記錄檢視 一文

CDaoRecordView::OnMove

呼叫這個成員函式以移至記錄集中的不同記錄,並在記錄檢視的控制項中顯示其欄位。

virtual BOOL OnMove(UINT nIDMoveCommand);

參數

nIDMoveCommand
下列其中一個標準命令識別碼值:

  • ID_RECORD_FIRST移至記錄集中的第一筆記錄。

  • ID_RECORD_LAST移至記錄集中的最後一筆記錄。

  • ID_RECORD_NEXT移至記錄集中的下一筆記錄。

  • ID_RECORD_PREV移至記錄集中的上一筆記錄。

傳回值

如果移動成功,則為非零;否則,如果移動要求遭到拒絕,則為 0。

備註

預設實作會呼叫與記錄檢視相關聯之物件的適當 Move 成員函式 CDaoRecordset

根據預設, OnMove 如果使用者在記錄檢視中變更了目前的記錄,則會更新資料來源上的目前記錄。

[應用程式精靈] 會建立具有 [第一筆記錄]、[上次記錄]、[下一筆記錄] 和 [上一筆記錄] 功能表項目的功能表資源。 如果您選取 [初始工具列] 選項,[應用程式精靈] 也會建立一個工具列,其中包含對應至這些命令的按鈕。

如果您移動超過記錄集中的最後一筆記錄,記錄檢視會繼續顯示最後一筆記錄。 如果您往後移動超過第一筆記錄,記錄檢視會繼續顯示第一筆記錄。

警告

如果記錄集沒有記錄,則呼叫 OnMove 會擲回例外狀況。 在對應的移動作業之前,呼叫適當的使用者介面更新處理常式函式 、 OnUpdateRecordFirstOnUpdateRecordLastOnUpdateRecordNextOnUpdateRecordPrev ,以判斷記錄集是否有任何記錄。

另請參閱

CFormView 類別
階層架構圖表
CDaoRecordset 類別
CDaoTableDef 類別
CDaoQueryDef 類別
CDaoDatabase 類別
CDaoWorkspace 類別
CFormView 類別