Option Explicit
Dim mPerson As PersonalInfo
Dim mFileNum As Integer
Dim mRecordLen As Long
Dim mCurrentRecord As Long
Dim mLastRecord As Long
Dim ShiftTest As Integer
Private Sub cmdSave_Click()
MsgBox ("Members Saved"), vbInformation, "Douglas Lads Club"
SaveCurrentRecord
End Sub
Public Sub SaveCurrentRecord()
mPerson.MemberID = txtID.Text
mPerson.MembersName = txtName.Text
mPerson.MembersAddress = txtAddress.Text
mPerson.MembersPostalCode = txtPostal.Text
mPerson.MembersHomePhone = txtHome.Text
mPerson.MembersMobileNumber = txtMobile.Text
Put #mFileNum, mCurrentRecord, mPerson
End Sub
Public Sub ShowCurrentRecord()
Get #mFileNum, mCurrentRecord, mPerson
txtID.Text = Trim(mPerson.MemberID)
txtName.Text = Trim(mPerson.MembersName)
txtAddress.Text = Trim(mPerson.MembersAddress)
txtPostal.Text = Trim(mPerson.MembersPostalCode)
txtHome.Text = Trim(mPerson.MembersHomePhone)
txtMobile.Text = Trim(mPerson.MembersMobileNumber)
frmAddressBook.Caption = "Douglas Lads Club" + Str(mCurrentRecord) + "/" + Str(mLastRecord)
End Sub
Private Sub cmdBack_Click()
If mCurrentRecord = 1 Then
Beep
MsgBox "This is the first record !", vbExclamation, "Douglas Lads Club"
Else
SaveCurrentRecord
mCurrentRecord = mCurrentRecord - 1
ShowCurrentRecord
End If
txtID.SetFocus
End Sub
Private Sub cmdDelete_Click()
Dim DirResult
Dim TmpFileNum
Dim TmpPerson As PersonalInfo
Dim RecNum As Long
Dim TmpRecNum As Long
If MsgBox("Delete the current record?", vbYesNo + vbCritical, "Douglas Lads Club") = vbNo Then
txtID.SetFocus
Exit Sub
End If
If Dir("Data/addressbook.tmp") = "addressbook.tmpP" Then
Kill "Data/addressbook.tmp"
End If
TmpFileNum = FreeFile
Open "Data/addressbook.tmp" For Random As TmpFileNum Len = mRecordLen
RecNum = 1
TmpRecNum = 1
Do While RecNum < mLastRecord + 1
If RecNum <> mCurrentRecord Then
Get #mFileNum, RecNum, TmpPerson
Put #TmpFileNum, TmpRecNum, TmpPerson
TmpRecNum = TmpRecNum + 1
End If
RecNum = RecNum + 1
Loop
Close mFileNum
Kill "Data/addressbook.dat"
Close TmpFileNum
Name "Data/addressbook.tmp" As "Data/addressbook.dat"
mFileNum = FreeFile
Open "Data/addressbook.dat" For Random As mFileNum Len = mRecordLen
mLastRecord = mLastRecord - 1
If mLastRecord = 0 Then mLastRecord = 1
If mCurrentRecord > mLastRecord Then
mCurrentRecord = mLastRecord
End If
ShowCurrentRecord
txtID.SetFocus
End Sub
Private Sub cmdSearch_Click()
Dim NameToSearch As String
Dim Found As Integer
Dim RecNum As Long
Dim TmpPerson As PersonalInfo
NameToSearch = InputBox("Search for Member ID :", "Search Members")
If NameToSearch = "" Then
txtID.SetFocus
Exit Sub
End If
NameToSearch = UCase(NameToSearch)
Found = False
For RecNum = 1 To mLastRecord
Get #mFileNum, RecNum, TmpPerson
If NameToSearch = UCase(Trim(TmpPerson.MemberID)) Then
Found = True
Exit For
End If
Next
If Found = True Then
SaveCurrentRecord
mCurrentRecord = RecNum
ShowCurrentRecord
Else
MsgBox "The Member ID you entered could not be found!" & vbCrLf & vbCrLf & "Tip : Enter the correct Member Id Number to search!", vbInformation, "Douglas Lads Club"
End If
txtID.SetFocus
End Sub
Private Sub Form_Paint()
Shadow Me, txtID, 2, vbBlack
Shadow Me, txtName, 2, vbBlack
Shadow Me, txtAddress, 2, vbBlack
Shadow Me, txtPostal, 2, vbBlack
Shadow Me, txtHome, 2, vbBlack
Shadow Me, txtMobile, 2, vbBlack
End Sub
Private Sub Form_Unload(Cancel As Integer)
SaveCurrentRecord
End Sub
Private Sub cmdExit_Click()
SaveCurrentRecord
Unload Me
End Sub
Private Sub cmdNew_Click()
SaveCurrentRecord
mLastRecord = mLastRecord + 1
mPerson.MemberID = ""
mPerson.MembersName = ""
mPerson.MembersAddress = ""
mPerson.MembersPostalCode = ""
mPerson.MembersHomePhone = ""
mPerson.MembersMobileNumber = ""
Put #mFileNum, mLastRecord, mPerson
mCurrentRecord = mLastRecord
ShowCurrentRecord
txtID.SetFocus
End Sub
Private Sub cmdNext_Click()
If mCurrentRecord = mLastRecord Then
Beep
MsgBox "Its the last record !", vbExclamation, "Douglas Lads Club"
Else
SaveCurrentRecord
mCurrentRecord = mCurrentRecord + 1
ShowCurrentRecord
End If
txtID.SetFocus
End Sub
Private Sub Form_Load()
mRecordLen = Len(mPerson)
mFileNum = FreeFile
Open "Data/addressbook.dat" For Random As mFileNum Len = mRecordLen
mCurrentRecord = 1
mLastRecord = FileLen("Data/addressbook.dat") / mRecordLen
If mLastRecord = 0 Then
mLastRecord = 1
End If
ShowCurrentRecord
End Sub