首頁 辦公利器Access-資料庫 【Access VBA】 多倉庫 Recordset 循環讀取資料的用法

【Access VBA】 多倉庫 Recordset 循環讀取資料的用法

by PartyLin
已發布 最後更新日期 0 評論

需求:多倉庫使用,

在建立產品資料時依照倉庫數量個別建立各倉庫別的資料

SUB 循環讀取紀錄()

Dim strSQL As String
    '定義資料集物件RecordSet的物件變數
        Dim rst As ADODB.Recordset
        '建立資料集物件RecordSet
        Set rst = New ADODB.Recordset
        '查詢資料與法
        Strsql = "select 編號 from 基本資料_倉庫_銷貨類型 where 倉庫顯示=true "
        '開啟資料集物件,以連接至UNI資料庫
        rst.Open strSQL, CurrentProject.Connection
        編號= me.表單上的產品編號
If Not (rst.BOF And rst.EOF) Then
    rst.MoveFirst
   Do
        '在此取出資料
        strSQL = "INSERT INTO 產品_庫存 " & _
                 " (細項編號,倉庫,更新日期) " & _
                 "VALUES (" & _
                 "'" & 編號 & "'," & _
                 "'" & rst.Fields("編號") & "'," & _
                 "'" & Now() & "'" & _
                 ")"
    CurrentDb.Execute (strSQL)
        '
        rst.MoveNext
        Loop Until rst.EOF

End If
        DoCmd.Close
        '關閉資料集物件Recordset
        rst.Close
        '釋放資料集物件Recordset所佔用的資源
        Set rst = Nothing
    END SUB

Set Rs = Server.CreateObject(“ADODB.Recordset”)

Rs.Open Source, ActiveConnection, CursorType, LockType, Options

引數

Source 選擇性引數:

此 Variant 是為一個有效的 Command 物件變數名稱、SQL 陳述式、資料表名稱、已存的過程呼叫,或是一個儲存的 Recordset 的檔名。

ActiveConnection 選擇性引數:

不是 Variant 得到一個有效的 Connection 物件變數名稱,就是 String 包含 ConnectionString 引數。

CursorType 選擇性引數:

此 CursorTypeEnum 值決定提供者在開啟 Recordset 時應使用的指標型別。其可以是下列其中一種常數。

常數說明

adOpenForwardOnly:開啟一個順向資料指標。(預設)

AdOpenKeyset:開啟一個索引鍵集 (keyset-type) 資料指標。

AdOpenDynamic:開啟一個動態資料指標。

AdOpenStatic:開啟一個靜態資料指標。

LockType 選擇性引數:

此 LockTypeEnum 值決定提供者在開啟 Recordset 時應使用何種鎖定 (同時性)。其可以是下列其中一種常數。

常數說明

adLockReadOnly:只讀,資料無法變更。(預設)

AdLockPessimistic:鎖定,提供者會進行必要的動作以確保能順利編輯資料錄,其方法通常是在編輯時立即在資料來源處鎖定資料錄。

AdLockOptimistic:鎖定,提供者使用性鎖定,當您呼叫 Update 方法時,僅鎖定資料錄。

AdLockBatchOptimistic:批次更新,此為批次更新模式所需,與實時更新模式相反。

Options 選擇性引數:

一個 Long 值,表示提供者在 Source 自變數代表 Command 物件以外的東西時應如何評估它,否則 Recordset 應從前次儲存的檔案還原。它可以是下列其中一種常數。

常數說明

adCmdText:提供者會將 Source 評估為指令的文字定義。

AdCmdTable:ADO 會產生一個 SQL 查詢,從 Source 中指定的資料表傳回所有資料列。

AdCmdTableDirect:提供者會從 Source 中指定的資料表傳回所有資料列。

AdCmdStoredProc:提供者會將 Source 評估為一個預存程式。

AdCmdUnknown:Source 自變數中未知的指令型別。

AdCommandFile:保留的 (已儲存的) Recordset 會從 Source 中指定的檔案還原。

AdExecuteAsync:Source 作非同步執行。

AdFetchAsync:表示在 CacheSize 屬性中指定的初始數量被抓取後,剩下的資料列就會被非同步地抓取。

應用函式

RecordSet.BOF 判斷指標是否超過最前面
RecordSet.EOF 判斷指標是否超過最後面
RecordSet.MoveFirst 將資料錄指標移至第一筆
RecordSet.MoveLast 將資料錄指標移至最後一筆
RecordSet.MoveNext 將資料指標往後移一筆
RecordSet.MovePrevious 將資料指標往前移一筆
RecordSet.Fields.Count 傳回Recordset中的欄位數
RecordSet(i).Name 傳回Recordset中第i個欄位的名稱
RecordSet.RecordCount 傳回Recordset中資料錄的筆數
RecordSet(“欄位名稱”) 傳回指定欄位名稱的資料內容
RecordSet(i) 傳回RecordSet中的第i個欄位資料
RecordSet.Fields(i).DefinedSize 傳回RecordSet中的第i個欄位資料域位長度
RecordSet.Fields(i).Type 傳回RecordSet中的第i個欄位資料域位資料型別
RecordSet.BookMark 傳回設定的書籤以儲存現在紀錄的位置。RecordSet.AbsolutePostition 將指標移至RecordSet中的某一筆資料上
RecordSet.PageSize 設定每頁顯示的資料筆數
RecordSet.PageCount 傳回分頁後的總頁數
RecordSet.AbsolutePage 傳回目前所在的頁數
RecordSet.AddNew 新增資料至資料表中
RecordSet.Update 更新目前這筆資料
RecordSet.Delete 刪除目前這筆資料
RecordSet.Find 尋找資料值
RecordSet.GetRows 可將Recordset中的資料儲存至陣列中
RecordSet.Sort 可將Recordset中的資料排序

發表留言

本網站放置cookies,務求為您提供最佳的網上瀏覽體驗。 同意 閱讀更多

%d 位部落客按了讚: