久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

利用VBA向一個已有的數(shù)據(jù)表中添加數(shù)據(jù)記錄的方法

 hjr231 2019-06-21

大家好,,今日我們繼續(xù)講解VBA數(shù)據(jù)庫解決方案的第23講:利用VBA如何向一個已有的數(shù)據(jù)表中添加記錄,。在上一講中我們講了如何把工作表的數(shù)據(jù)保存到新建的數(shù)據(jù)表中方案,這是非常好的方法,希望讀者能在實際的工作中多加利用。和《VBA代碼解決方案》一樣,,讀者可以在我的資料中感覺到很多我們實際工作中問題的影子,我曾經(jīng)不止一次的講過,VBA的實用性非常高,,好好利用,可以大大提高我們的工作效率,。

今天我們要講的是:對于一個已經(jīng)存在的數(shù)據(jù)表,我們要向其中添加記錄的方案,。其實這也是最普通的應(yīng)用了,在我們的工作中隨處可以見到。我們的代碼該如何做到呢?

實例:在上一講的講解中,我們利用VBA代碼把之前的銷售資料做了備份,如下面的截圖:

到了第三個月,我們要把第三個月的數(shù)據(jù)追加進去,下面是3月的銷售記錄:

其實,,這些都是來源于工作的實際,,也是工作中確實存在的問題,讀者在學習的時候可以把這些代碼作為一個實例來利用,下面看我們的解決方案代碼:

Sub mynzCreateDataTable_1() '將工作表的數(shù)據(jù)添加到數(shù)據(jù)表中 第23講

Dim cnADO As New ADODB.Connection

Dim rsADO As ADODB.Recordset

Dim strPath, strSQL, strTable As String

strPath = ThisWorkbook.Path & '\mydata2.accdb'

strTable = '19年銷售情況'

cnADO.Open 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' & strPath

strSQL = 'SELECT * FROM ' & strTable

Set rsADO = New ADODB.Recordset

rsADO.Open strSQL, cnADO, 1, 3

'匯報給用戶記錄數(shù)

MsgBox '添加前記錄數(shù)為:' & rsADO.RecordCount

Sheets('Sheet4').Select

'添加記錄

t = 2

Do While Cells(t, 1) <> ''

rsADO.MoveLast

rsADO.addnew

For i = 0 To rsADO.Fields.Count - 1

rsADO.Fields(i) = Sheets('Sheet4').Cells(t, i + 1)

Next i

rsADO.Update

t = t + 1

Loop

'匯報給用戶最后的記錄數(shù)

MsgBox '添加后記錄數(shù)為:' & rsADO.RecordCount

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代碼截圖:

代碼講解:

1 Dim cnADO As New ADODB.Connection

Dim rsADO As ADODB.Recordset

Dim strPath, strSQL, strTable As String

strPath = ThisWorkbook.Path & '\mydata2.accdb'

strTable = '19年銷售情況'

cnADO.Open 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' & strPath

strSQL = 'SELECT * FROM ' & strTable

Set rsADO = New ADODB.Recordset

rsADO.Open strSQL, cnADO, 1, 3

以上的代碼我用了前期綁定的方法創(chuàng)建的ADO, 并打開了數(shù)據(jù)表的集合

2 '添加記錄

t = 2

Do While Cells(t, 1) <> ''

rsADO.MoveLast

rsADO.addnew

For i = 0 To rsADO.Fields.Count - 1

rsADO.Fields(i) = Sheets('Sheet4').Cells(t, i + 1)

Next i

rsADO.Update

t = t + 1

Loop

上述代碼是把工作表中的數(shù)據(jù)添加到數(shù)據(jù)表中.

這里需要講解的是: rsADO.addnew 和 rsADO.Update 語句,這兩條語句的作用是是向記錄集中添加記錄,和寫入記錄.

.addnew 告訴記錄集,,我們要添加一行

.update 通知記錄集,,我們要把準備好的這個行寫入數(shù)據(jù)庫了.

3 為了達到人機對話的目的,我在兩處有了代碼如下:

'匯報給用戶記錄數(shù)

MsgBox '添加前記錄數(shù)為:' & rsADO.RecordCount

'匯報給用戶最后的記錄數(shù)

MsgBox '添加后記錄數(shù)為:' & rsADO.RecordCount

運行的過程如下:首先顯示添加前的記錄:

運行完成后顯示添加后的記錄數(shù):

最后看看我們運行完,添加好數(shù)據(jù)之后的數(shù)據(jù)庫截圖:

今日內(nèi)容回向:

1 如何向已經(jīng)有的數(shù)據(jù)記錄集中添加數(shù)據(jù)?

2 ADDNWE 和Update的作用是什么?

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多