隨機文件的應用,利用VBA代碼,建立一個準數據庫隨機文件

大家好,我們今日繼續講解VBA代碼解決方案的第135講內容:隨機文件的應用,建立一個準數據庫的隨機文件。VBA到這裡文件的講解進入一個十分精華的部分,我要通過這幾講的內容讓大家看到一個實際的準數據庫的操作。今天就講如何建立一個類似於數據的隨機文件。我們先來看看第127講講過的內容:要從一個文件讀取數據,必須先使用Open語句打開該文件。

語法:Open pathname For mode [Access access][lock] As [#]filenumber [Len=reclength]

其中共有6個參數:

① Pathname是你要打開的文件名稱,可以包括驅動器和文件夾名稱

② Mode是個決定文件如何打開的關鍵字。順序文件可以以下列模式之一來打開:Input, Output 或Append。使用Input讀文件,Output寫文件,將覆蓋任何存在的文件,以及Append來寫入文件,同時附加上任何已經存在的信息。

③ Access是決定決定文件讀寫的關鍵字,Access可以是:Shared(共享),Lock Read(鎖定讀),Lock Write(鎖定寫)或Lock Read Write(鎖定讀寫)。

④ Lock決定了哪些文件的操作是允許其它過程進行的。例如,Read, Write 或者 Read Write。

⑤ Filenumber是從1到511的數字,該數字用來指向順序操作中的文件。一個唯一的文件號碼。

⑥ reclength明確順序文件裡總字符數,或者是隨機文件裡記錄大小。

我們來看這六個參數中的第6個參數指出,如果是隨機文件要以記錄的大小打開此文件,這一點要特別注意。

我們先看下面的代碼截圖:

隨機文件的應用,利用VBA代碼,建立一個準數據庫隨機文件

我們看下面的代碼:

Option Explicit

Type MyDictionary

myen As String * 10

mysp As String * 20

End Type

Sub MytypeDictionary()

Dim d As MyDictionary

Dim RecNr As Long

Dim myrecord As String

Dim totalRec As Long

RecNr = 1

Open "E:\nz\work\文章\MytypeDictionary.txt" For Random As #1 Len = Len(d) '打開文件作隨機訪問

Do

myrecord = InputBox("Enter an type word", "我的型號字典")

d.myen = myrecord

If myrecord = "" Then Exit Do '如取消則退出循環

myrecord = InputBox("Enter the describe for " _

& d.myen, ":")

If myrecord = "" Then Exit Do

d.mysp = myrecord

Put #1, RecNr, d ' 寫入記錄

RecNr = RecNr + 1 ' 計數器增加

Loop Until myrecord = "" '詢問型號直到取消

totalRec = LOF(1) / Len(d)

MsgBox "文件共有 " & totalRec & "條記錄."

Close #1 ' 關閉文件

End Sub

在上述過程中要建立一個我自己的型號字典的小型數據,只不過這個數據庫是TXT的,

過程MytypeDictionary開始時,聲明四個變量,變量d聲明為用戶定義的類型myDictionary。該類型在前面就用Type語句聲明瞭。在給變量RecNr賦予了初始值之後,VBA打開文件E:\nz\work\文章\MytypeDictionary.txt,並且將其作為文件編碼1隨機訪問。指令Len(d)告訴VB每條記錄的大小為10+20=30個字符。

接下來VB執行Do…Until循環裡面的語句,直到你取消。循環裡的第一條語句提示你輸入一個type,並且將其賦予變量myrecord,然後該值被傳遞給用戶定義d的第一個成員(d.myen)。

一旦你停止輸入數據,VB就會退出Do循環,並且執行程序裡的最後的語句計算和顯示文件裡的記錄總數。最後一條語句將文件關閉。如果你輸入了type並點擊確定,那麼下個對話框就會提示你輸入對type的描述語。當然,如果你決定現在就退出的話,VB就會跳出循環並且繼續剩下的語句。如果一切正常,你輸入了type的描述語,那麼VB就會將它賦予變量myrecord並且傳遞給用戶自定義變量d的第二個成員(d.mysp),接下來,VB使用下述語句將整條記錄寫入到文件裡:

Put #1, recNr, d

寫入第一條記錄後,VB會給記錄計數器增加1,然後重複循環裡的語句。過程MytypeDictionary允許你在你的字典裡輸入任意多條記錄。當你退出提出詞語時,過程使用LOF和Len函數來計算文件裡的總記錄數。VB在顯示信息後關閉該文本文件。

創建隨機文件僅僅是個開始,接下來的下一講中我們將講解如何使用一個開啟的隨機文件的 記錄。

下面我們看看運行的結果:

隨機文件的應用,利用VBA代碼,建立一個準數據庫隨機文件

隨機文件的應用,利用VBA代碼,建立一個準數據庫隨機文件

同理我們再錄入:"機械2" 和"設備2上用的B類設備"

這時我們的數據庫會是什麼樣子呢?打開文件吧:

隨機文件的應用,利用VBA代碼,建立一個準數據庫隨機文件

今日內容迴向:

1 隨機文件的打開和順序文件的打開有什麼不同?

2 隨機文件如何寫入數據?


分享到:


相關文章: