随机文件的应用,利用VBA代码,建立一个准数据库随机文件-sub文件

大家好,我们今日继续讲解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 随机文件如何写入数据?

推荐阅读