帮我看下为什么出错啊!!

fskjb01 2008-07-19 10:20:56
下面的程序是按照书上打的,没有打错,但不知道为何会提示424错误,找不到对象呢(红字部分),本人刚学VB请各位指导一下啊!!!

标准模块的代码:
Type recordtype
emname As String * 10
unit As String * 15
age As Integer
salary As Single
End Type

'顺序写入
Sub file_write()
Dim aspect As String
Do
recordvar.emname = InputBox$("姓名:")
recordvar.unit = InputBox("所在单位:")
recordvar.age = InputBox("年龄:")
recordvar.salary = InputBox("工资:")
recordnumber = recordnumber + 1
Put #1, recordnumber, recordvar
aspect = InputBox("more(Y/N)")
Loop Until UCase(aspect) = "N"
End Sub
'顺序读出
Sub file_read1()
Dim i As Integer
Cls
FontSize = 12
For i = 1 To recordnumber
Get #1, i, recordvar
Print recordvar.emname, recordvar.unit
Print recordvar.age, recordvar.salary, Loc(1)
Next i
End Sub
'随机读出
Sub file_read2()
Dim getmorerecords As Boolean
Dim recordnum As Integer
getmorerecords = True
Cls
FontSize = 12
Do
recordnum = InputBox("enter record number for part you want to see(0 to end):")
If recordnum > 0 And recornum <= recornumber Then
Get #1, recordnum, recordvar
Print recordvar.emname; ""; recordvar.unit; "";
Print recordvar.age; ""; recordvar.salary; ""; Loc(1)
MsgBox "单击“确定”按钮继续"
ElseIf recordnum = 0 Then
getmorerecords = False
Else
MsgBox "输入的数字超出范围"
End If
Loop While getmorerecords
End Sub

窗体模块的代码:
Option Explicit
Dim recordvar As recordtype
Dim position As Integer
Dim recordnumber As Integer


Private Sub Form_Click()
Dim newline As String, resp As Integer
Dim msg As String, p As Integer
Open "c:\123\employee.dat" For Random As #1 Len = Len(recordvar)
recordnumber = LOF(1) / Len(recordvar)
newline = Chr(13) + Chr(10)
msg = "1.建立文件"
msg = msg + newline + "2.顺序方式读记录"
msg = msg + newline + "3.通过记录号读文件"
msg = msg + newline + "4.删除记录"
msg = msg + newline + "0.退出程序"
msg = msg + newline + newline + "请输入数字选择"
begin:
resp = InputBox(msg)
Select Case resp
Case 0
Close #1
End
Case 1
file_write
Case 2
file_read1
MsgBox "单击确定继续"
Case 3
file_read2
Case 4
'deleterec
End Select
GoTo begin
End Sub
...全文
75 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
捧剑者 2008-07-19
  • 打赏
  • 举报
回复
呵呵
fskjb01 2008-07-19
  • 打赏
  • 举报
回复
哎,,,终于搞明白拉,原来那几个通用过程要放在窗体模块里....晕!!!
fskjb01 2008-07-19
  • 打赏
  • 举报
回复
谢谢楼上的解答问题解决了,不过问题真是一罗罗啊
Sub file_read1()
Dim i As Integer
Cls <<<<-----子过程函数未定义
FontSize = 12
For i = 1 To recordnumber
Get #1, i, recordvar
Print recordvar.emname, recordvar.unit <<<<----编译错误,没有适当对象
Print recordvar.age, recordvar.salary, Loc(1)
Next i
End Sub
明寿 2008-07-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Modest 的回复:]
把窗体中的Dim recordvar As recordtype 更改为Public recordvar As recordtype,然后放在模块的中。
[/Quote]
迈克揉索芙特 2008-07-19
  • 打赏
  • 举报
回复
把窗体中的Dim recordvar As recordtype 更改为Public recordvar As recordtype,然后放在模块的中。
fskjb01 2008-07-19
  • 打赏
  • 举报
回复
自定义类型的名称
迈克揉索芙特 2008-07-19
  • 打赏
  • 举报
回复
recordvar是什么?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧