注冊 登錄
Office中國論壇/Access中國論壇 返回首頁

tanhong的個人空間 http://m.mzhfr.cn/?49992 [收藏] [復(fù)制] [分享] [RSS]

日志

數(shù)據(jù)添加方法概述(三)

熱度 2已有 3215 次閱讀2009-3-2 18:57 |個人分類:ACCESS作品|

三、 實現(xiàn)非綁定的數(shù)據(jù)添加方法。

1.0       數(shù)據(jù)非綁定:是指數(shù)據(jù)不與窗體及窗體中數(shù)據(jù)輸入控件綁定。

2.0       數(shù)據(jù)非綁定優(yōu)點(diǎn)與不足。

21  優(yōu)點(diǎn)是:對于數(shù)據(jù)操作較靈活,可以實現(xiàn)同時對個數(shù)據(jù)源進(jìn)行操作;

22  不足是:相對全綁定以及非綁定數(shù)據(jù)操作有一定難度,需要一定的ACCESS基礎(chǔ),了解并掌握SQL語句及VBA編程。

 

3.0       例一:通過打開追加查詢添加數(shù)據(jù)。

31  新建一個追加查詢(實例:添加客戶記錄查詢),建立追加查詢方法大家參看有關(guān)資料,在此不做講解。大家可以在SQL編輯窗口中加入如下SQL語句,保存查詢即可。

 Insert INTO 客戶 ( 公司名稱, 聯(lián)系人名字, 電話號碼 )   VALUES (Forms!非綁定—(查詢)!公司名稱, Forms!非綁定—(查詢)!聯(lián)系人名字, Forms!非綁定—(查詢)!電話號碼);

Insert INTO 是追加查詢關(guān)鍵字

客戶 ( 公司名稱, 聯(lián)系人名字, 電話號碼 ) 是指實例中“客戶表”中對應(yīng)各字段

VALUES 預(yù)追加值關(guān)鍵字

Forms!非綁定—(查詢)!公司名稱:窗體集合!窗體名!控件名

32  在窗體添加記錄按鈕單擊事件中添加如下所示代碼(參看非綁定一)。

按鈕代碼:主要功能是通過OpenQuery 方法打開追加查詢實現(xiàn)數(shù)據(jù)添加。

DoCmd.SetWarnings False               關(guān)閉系統(tǒng)信息的顯示

     DoCmd.OpenQuery "添加客戶記錄查詢"

     DoCmd.SetWarnings True

4.0       例二、例三:通過RunSQL或者Execute方法執(zhí)行SQL語句添加數(shù)據(jù)。

41 追加數(shù)據(jù)查詢SQL語句

       

         Insert INTO 客戶(公司名稱,聯(lián)系人名字,電話號碼) VALUES ('" & Me.公司名稱 & "','" & Me.聯(lián)系人名字 & "','" & Me.電話號碼 & "')

42 RunSQL方法運(yùn)行SQL語句(參看非綁定二)。在添加記錄按鈕單擊事件加入如下代碼

Dim strSQL As String

       strSQL = "Insert INTO 客戶(公司名稱,聯(lián)系人名字,電話號碼) "

       strSQL = strSQL & "VALUES('" & Me.公司名稱 & "','" & Me.聯(lián)系人名字 & "','" & Me.電話號碼 & "')"

   

       DoCmd.SetWarnings False     關(guān)閉系統(tǒng)信息的顯示

       DoCmd.RunSQL strSQL

       DoCmd.SetWarnings True

43 Execute方法運(yùn)行SQL語句(參看非綁定三)。在添加記錄按鈕單擊事件加入如下代碼

Dim strSQL As String

       strSQL = "Insert INTO 客戶(公司名稱,聯(lián)系人名字,電話號碼) "

       strSQL = strSQL & "VALUES('" & Me.公司名稱 & "','" & Me.聯(lián)系人名字 & "','" & Me.電話號碼 & "')"

   

       CurrentDb().Execute strSQL

5.0       例四:利用DAO數(shù)據(jù)庫對象添加數(shù)據(jù)方法。

51  引用DAO 3.6 對象。如要用DAO對象來存取數(shù)據(jù)時,必須先引用DAO,否則使用DAO對象存取數(shù)據(jù)時會產(chǎn)生錯誤。

52在添加記錄按鈕單擊事件加入如下代碼。

   Dim Rs As DAO.Recordset                '申明RsDAO記錄集對象

   Set Rs = CurrentDb.OpenRecordset("客戶")   '設(shè)Rs記錄集為"客戶"表中所有數(shù)據(jù)

 

   With Rs

       .AddNew                      '開始新增新?lián)?/SPAN>

       !公司名稱 = Me.公司名稱

       !聯(lián)系人名字 = Me.聯(lián)系人名字

       !電話號碼 = Me.電話號碼

       .Update                       '更新數(shù)據(jù)

       .Close                        '關(guān)閉當(dāng)前記錄集

   End With

   Set Rs = Nothing

說明:Recordset 是記錄集對象。我們在進(jìn)行數(shù)據(jù)存取時,必須將所有表都載入內(nèi)存,勢必影響數(shù)據(jù)處理的效率。通過Recordset記錄集對象,只會將所需的數(shù)據(jù)載入到Recordset對象中,然后針對這個記錄集操作就可以了,不僅提高數(shù)據(jù)處理效率,而且記錄集對象并不會影響數(shù)據(jù)庫的大小,存取完數(shù)據(jù)后關(guān)閉該記錄集并釋放內(nèi)存即可。

6.0       例五:利用ADO數(shù)據(jù)庫對象添加數(shù)據(jù)方法。

61  引用ADO 2.1 對象。如要用ADO對象來存取數(shù)據(jù)時,必須選引用ADO,否則使用ADO對象存取數(shù)據(jù)時會產(chǎn)生錯誤。

 

62在添加記錄按鈕單擊事件加入如下代碼。

Dim Rs As ADODB.Recordset    '申明ADO記錄集對象

        Dim StrName As String

  

        Set Rs = New ADODB.Recordset '實例化記錄對象

        StrName = "客戶"

  

        With Rs

               .Open StrName, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

               .AddNew                     '開始新增數(shù)據(jù)

               !公司名稱 = Me![公司名稱]

               !聯(lián)系人名字 = Me![聯(lián)系人名字]

               !電話號碼 = Me![電話號碼]

               .Update                    '更新數(shù)據(jù)

               .Close                     '關(guān)閉當(dāng)前數(shù)據(jù)集

        End With

        Set Rs = Nothing  '釋放空間

 

說明:對于ADO申明,我們可以采用如上代碼來申明對象,再實例化;也可以按如下代碼,即在申明時加入New 關(guān)鍵字直接申明并實例化ADO對象。

Dim Rs As New ADODB.Recordset    '申明ADO記錄集對象

關(guān)于數(shù)據(jù)添加方法分享到此。因為本文只是為了與大家分享本人在實踐中,掌握的ACCESS中添加數(shù)據(jù)的一些基本方法,對于其它觸及內(nèi)容并未做深入剖析,大家可以參看有關(guān)的資料,或是在實踐中不斷摸索并總結(jié),并舉一反三。如果本文對你有一點(diǎn)點(diǎn)幫助,那是我最為開心的事情。  

本文相關(guān)實例請到ACCESSHOME論壇下載,也可與本人聯(lián)系與交流。

 

 

 (江羽 2009.2.28

剛表態(tài)過的朋友 (0 人)

發(fā)表評論 評論 (3 個評論)

回復(fù) rcylbx 2009-3-4 21:16
謝謝分享
回復(fù) sygudeng 2009-3-27 14:28
高手啊
回復(fù) chinaesc 2017-3-12 13:16
找不到實例啊,給個鏈接

facelist doodle 涂鴉板

您需要登錄后才可以評論 登錄 | 注冊

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-13 08:47 , Processed in 0.075622 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部