五笔打字通主页
VB程序题:在教材例8.6中添加一组按钮,如图H.5所示,并编写事件过程。龚沛曾
图H.5
解题,代码如下:
先建立标准模块,代码是:
Type studtype
iNo As Integer
strName As String * 20
strSex As String * 1
sMark As Single
End Type
再在窗体上建立相应的按钮等控件,窗体代码如下:
Dim Student As studtype
Dim Record_No As Integer
Sub Form_Load()
Open "C:\STUDENT.DAT" For Random As #1 Len = Len(Student)
Label1.Caption = LOF(1) / Len(Student)
Close #1
If Label1.Caption <> "0" Then Command3_Click '记录不为零,就显示第一条记录
End Sub
Sub Command1_Click() '追加记录
With Student
.iNo = Val(Text1.Text)
.strName = Text2.Text
.strSex = IIf(Option1.Value, "1", "0")
.sMark = Val(Text3.Text)
End With
Open "C:\STUDENT.DAT" For Random As #1 Len = Len(Student)
Record_No = LOF(1) / Len(Student) + 1
Label1.Caption = Record_No
Text4.Text = Record_No '加这句,当场修改记录就不用手工输入了
Put #1, Record_No, Student
Close #1
End Sub
Sub Command2_Click() '显示记录
Open "C:\STUDENT.DAT" For Random As #1 Len = Len(Student)
Record_No = Val(Text4.Text)
Get #1, Record_No, Student
Text1.Text = Student.iNo
Text2.Text = Student.strName
If Student.strSex = "1" Then
Option1.Value = True
Else
Option2.Value = True
End If
Text3.Text = Student.sMark
Record_No = LOF(1) / Len(Student)
Close #1
End Sub
Private Sub Command3_Click() '第一条记录
Open "C:\STUDENT.DAT" For Random As #1 Len = Len(Student)
Record_No = 1
Get #1, Record_No, Student
Text1.Text = Student.iNo
Text2.Text = Student.strName
If Student.strSex = "1" Then
Option1.Value = True
Else
Option2.Value = True
End If
Text3.Text = Student.sMark
Text4.Text = "1"
Close #1
End Sub
Private Sub Command4_Click() '下一条记录
If Record_No = Val(Label1.Caption) Then
MsgBox "已经是最后一条记录了"
Exit Sub '已经是最后一条记录就退出。
End If
Open "C:\STUDENT.DAT" For Random As #1 Len = Len(Student)
Record_No = Record_No + 1
Get #1, Record_No, Student
Text1.Text = Student.iNo
Text2.Text = Student.strName
If Student.strSex = "1" Then
Option1.Value = True
Else
Option2.Value = True
End If
Text3.Text = Student.sMark
Text4.Text = Record_No
Close #1
End Sub
Private Sub Command5_Click() '前一条记录
If Record_No = 1 Then
MsgBox "已经是第一条记录了"
Exit Sub '已经是第一条记录就退出。
End If
Open "C:\STUDENT.DAT" For Random As #1 Len = Len(Student)
Record_No = Record_No - 1
Get #1, Record_No, Student
Text1.Text = Student.iNo
Text2.Text = Student.strName
If Student.strSex = "1" Then
Option1.Value = True
Else
Option2.Value = True
End If
Text3.Text = Student.sMark
Text4.Text = Record_No
Close #1
End Sub
Private Sub Command6_Click() '最后一条记录
Open "C:\STUDENT.DAT" For Random As #1 Len = Len(Student)
Record_No = Val(Label1.Caption)
Get #1, Record_No, Student
Text1.Text = Student.iNo
Text2.Text = Student.strName
If Student.strSex = "1" Then
Option1.Value = True
Else
Option2.Value = True
End If
Text3.Text = Student.sMark
Text4.Text = Label1.Caption
Close #1
End Sub
Sub Command7_Click() '修改记录
With Student
.iNo = Val(Text1.Text)
.strName = Text2.Text
.strSex = IIf(Option1.Value, "1", "0")
.sMark = Val(Text3.Text)
End With
Open "C:\STUDENT.DAT" For Random As #1 Len = Len(Student)
Record_No = Val(Text4.Text)
Put #1, Record_No, Student
Close #1
End Sub
Visual Basic程序设计教程(第3版) (龚沛曾等编)课后实验源码
来源:济亨网
本文链接:http://wb86.com/post/111.html