VB照书抄仍然出现错误424...

来源:百度知道 编辑:UC知道 时间:2024/06/04 17:27:15
在进行随机文件时出现的问题
代码如下

新建模块
Type RecordType
EmName As String * 10
Unit As String * 15
Age As Integer
Salary As Single
End Type

新建窗口Form1,Command1控件

Private Sub Form_Load()
Dim recordvar As RecordType
Dim recordNum As Integer
End Sub

Private Sub Command1_Click()
Open "Employee.dat" For Random As #1 Len = 31
recordvar.EmName = InputBox$("Name")
recordvar.Unit = InputBox$("Unit")
recordvar.Age = InputBox$("Age")
recordvar.Salary = InputBox$("Salary")
recordNum = recordNum + 1
Put #1, , recordvar
End Sub

启动后显示正常.按下Command1出现InputBox.
第一项是输入EmName,输入3个汉字后点击确定,提示错误424调试时提示问题出现在Command1_Click的 Open "Employee.dat" For Random As #1 Len = 31 这一句.
错误424好像是对象未建立,这里指的是Employee.dat未建立吗?书上写Open语句同时有打开/新建文件的意思啊~
上面的代码完全是书上抄来的 全国2级计算机考试2008年 高等教育出版社出版 第375 376页...

希望高手指

Dim recordvar As RecordType
Dim recordNum As Integer
以上2句代码放错位置,应该放在窗体代码的最前处,你最好使用显式变量声明,具体做法,在VB编程的窗口,选工具菜单下的选项,然后在编辑器中对要求变量声明前打钩,这样窗体建立时,窗体代码的顶端就有Option Explicit

Option Explicit
Dim recordvar As RecordType
Dim recordNum As Integer
Private Sub Command1_Click()
Open "Employee.dat" For Random As #1 Len = 31
recordvar.EmName = InputBox$("Name")
recordvar.Unit = InputBox$("Unit")
recordvar.Age = InputBox$("Age")
recordvar.Salary = InputBox$("Salary")
recordNum = recordNum + 1
Put #1, , recordvar
End Sub

Dim recordvar As RecordType
Dim recordNum As Integer

这个不要写在form load中,写到通用区,试试!!