Dim FileName As String
Private Sub cmdOK_Click()
Dim MemberID As String
Dim MemberDeleted As Boolean
Dim Duplicate As Boolean
Dim Response As Integer
Dim OneMember As MemberType
If cmdOK.Caption = "Add Member" Then
If Len(txtMemberIDAdd.Text) = 6 Then
MemberID = txtMemberIDAdd.Text
Duplicate = CheckDuplicateMemberID(MemberID)
If Not Duplicate Then
If (txtSurname.Text <> "") And (txtFirstname.Text <> "") And _
(lstCategory.Text <> "") Then
OneMember.MemberID = txtMemberIDAdd.Text
OneMember.Surname = txtSurname.Text
OneMember.Firstname = txtFirstname.Text
If lstCategory.Text = "Senior" Then
OneMember.Category = "S"
Else
OneMember.Category = "J"
End If
OneMember.Deleted = "N"
Call AddMember(OneMember)
txtMemberIDAdd.Text = ""
txtSurname.Text = ""
txtFirstname.Text = ""
Else
MsgBox ("You have not filled in all details of the member")
End If
Else
MsgBox "Membership Number. " & MemberID & " has been used. Enter", _
"a diffrentone"
txtMemberIDAdd.SetFocus
End If
Else
MsgBox ("You must enter a membership number within 6 characters")
txtMemberIDAdd.SetFocus
End If
Else
MemberID = txtMemberIDDelete.Text
If MemberID = "" Then
MsgBox ("You haven't entered a membership number")
Else
Response = MsgBox("Confirm you want to delete this number?", _
vbYesNo)
If Response = 6 Then
MemberDeleted = DeleteMember(MemberID)
txtMemberIDDelete.Text = ""
If Not MemberDeleted Then
MsgBox "Member not deleted. Membership number " _
& MemberID & "does not exist"
End If
End If
End If
End If
End Sub
Private Sub Form_Load()
FileName = App.Path & "\Members.dat"
End Sub
Private Sub optAdd_Click()
fraDelete.Visible = False
fraAdd.Visible = True
cmdOK.Caption = "Add Member"
End Sub
Private Sub optDelete_Click()
fraAdd.Visible = False
fraDelete.Visible = True
cmdOK.Caption = "Delete Member"
End Sub
Private Function CheckDuplicateMemberID(ByVal MemberID As String) As _
Boolean
Dim Found As Boolean
Dim OneMember As MemberType
Found = False
Open FileName For Random As #1 Len = Len(OneMember)
Do While (Not EOF(1)) And (Found = False)
Get #1, , OneMember
If MemberID = OneMember.MemberID Then
Found = True
End If
Loop
CheckDuplicateMemberID = Found
Close #1
End Function
Private Function FindDeletedMember() As Integer
Dim Found As Boolean
Dim RecordNumber As Integer
Dim OneMemebr As MemberType
Found = False
RecordNumber = 0
Open FileName For Random As #1 Len = Len(OneMember)
Do While (Not EOF(1)) And (Found = False)
RecordNumber = RecordNumber + 1
Get #1, RecordNumber, OneMember
If OneMember.Deleted = "Y" Then
Found = True
End If
Loop
If Found Then
FindDeletedMember = RecordNumber
Else
FindDeletedMember = 0
End If
Close #1
End Function
Private Sub AddMember(ByRef OneMember As MemberType)
Dim NumberOfRecords As Integer
Dim DeleteRecordNumber As Integer
DeleteRecordNumber = FindDeletedMember
Open FileName For Random As #1 Len = Len(OneMember)
If DeletedRecordFound <> 0 Then
Put #1, DeletedRecordNumber, OneMember
Else
NumberOfRecords = LOF(1) / Len(OneMember)
Put #1, NumberOfRecords + 1, OneMember
End If
Close #1
End Sub
Private Function DeleteMember(ByVal MemberID As String) As Boolean
Dim OneMember As MemberType
Dim RecordNumber As Integer
Dim Found As Boolean
RecordNumber = 0
Found = False
Open FileName For Random As #1 Len = Len(OneMember)
Do While (Not EOF(1)) And (Not Found)
RecordNumber = RecordNumber + 1
Get #1, RecordNumber, OneMemebr
If OneMember.MemberID = MemberID Then
If OneMember.Deleted = "Y" Then
MsgBox "This number dosent exist"
Else
OneMember.Deleted = "Y"
Found = True
End If
End If
Loop
If Not Found Then
DeleteMember = False
Else
DeleteMember = True
End If
Put #1, RecordNumber, OneMemebr
Close #1
Call cmdDisplayMember_Click
End Function