随机文件有什么特点呢?原来,在随机文件里,所有记录都是等长度的,并且每条记录都有相同数目的固定大小区域。区域的长度必须在文件写入数据之前就确定。如果写入某区域的字符串长度小于该区域的大小,那么VBA就会自动在该字符串后面加空格来添补区域。如果写入的文本比区域长度长的话,超出的字符就不会被写入。说到这里,你是不是看到了数据库的影子呢?数据库便是这样,有很多朋友问到数据库的干系问题,在这套\"大众VBA代码办理方案\"大众中虽然会有所涉及,但不会很多,在之后,会专门出一本关于数据库的书。
再次归纳一下,随机文件是指储存的记录可以随机访问的文件,这意味着随机文件里的任何记录都可以读取,而不必读取它之前的每条记录。这是同顺序文件的最为显著的差异。
为什么要自定义一种数据类型呢?由于在操作随机文件时常常会用到这类自定义的数据类型,或者说你在建立数据库时会事先定义数据的类型,当你再次访问这类数据时要定义一个与之匹配的变量与数据类型相同等为好。

在VBA中,许可你在模块的上面利用Type…End Type语句定义一个非标准的数据类型。这种非标准数据类型也常常成为用户自定义的数据类型。用户自定义数据类型可以包括各种数据类型(字符串,整型,日期等等)的内容。当你在利用随机访问的文件时,该变量使你可以轻易地访问个别记录。
下面我们将实例解释一下如何自定义一个数据类型:
Option Explicit
Type MyDictionary
myen As String 10
mysp As String 20
End Type
Sub Mytype()
Dim myrecord As MyDictionary '声明一个MyDictionary类型的变量
myrecord.myen = InputBox(\"大众请输入一个数据\"大众, \公众记录信息\"大众)
myrecord.mysp = InputBox(\"大众请输入另一个数据\"大众, \公众记录信息\"大众)
MsgBox \公众数据1:\"大众 & myrecord.myen & vbLf & \公众数据2:\公众 & myrecord.mysp, vbOKOnly, \"大众基本信息\"大众
MsgBox \公众数据1的长度:\"大众 & Len(myrecord.myen) & vbLf & \"大众数据2的长度:\"大众 & Len(myrecord.mysp), vbOKOnly, \"大众基本信息\公众
End Sub
代码截图:
上面的例子中,用户定义的名为MyDictionary的类型包括两个声明为String(字符串)的项目,并且有特定的大小。成员myen可以接管最多10个字符,第二个项目mysp的大小不能超过20个字符。
在运行过程中,哀求输入两个字符,然后用对话框显示你的输入,末了为了验证字符的长度,再次显示一下你录入字符的长度。下面我们看一下运行的结果:
上面的对话框显然是超过了10个字符。第二个对话框:
这次我录入的字符是小于20个字符的数据。
我们看弹出的结果:
可以看出数据1被截取了,再看长度:
数据1的长度是10,数据2的长度是20,和我们的定义是完备同等的。这便是自定义数据的神奇之处。
今日内容回向:
1 什么是自定义数据?
2 什么是随机文件?谈到随机文件,你会想到什么常用文件呢?