VERSION 5.00
Begin VB.Form frmMembers 
   Caption         =   "Smiley's Snooker - Club Memberships"
   ClientHeight    =   4440
   ClientLeft      =   120
   ClientTop       =   420
   ClientWidth     =   11025
   LinkTopic       =   "Form1"
   ScaleHeight     =   4440
   ScaleWidth      =   11025
   StartUpPosition =   2  'CenterScreen
   Begin VB.CommandButton cmdPrintMembers 
      Caption         =   "Print Membership List"
      Enabled         =   0   'False
      Height          =   855
      Left            =   1800
      TabIndex        =   17
      Top             =   3480
      Width           =   1335
   End
   Begin VB.CommandButton cmdDisplayMembers 
      Caption         =   "Display Members"
      Height          =   855
      Left            =   240
      TabIndex        =   16
      Top             =   3480
      Width           =   1335
   End
   Begin VB.ListBox lstMembers 
      BeginProperty Font 
         Name            =   "Courier"
         Size            =   9.75
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   3180
      Left            =   240
      Sorted          =   -1  'True
      TabIndex        =   15
      Top             =   240
      Width           =   6855
   End
   Begin VB.CommandButton cmdOK 
      Caption         =   "Add Member"
      Height          =   495
      Left            =   7440
      TabIndex        =   14
      Top             =   3120
      Width           =   1215
   End
   Begin VB.Frame fraDelete 
      Height          =   735
      Left            =   4560
      TabIndex        =   11
      Top             =   3600
      Visible         =   0   'False
      Width           =   4215
      Begin VB.TextBox txtMemberIDDelete 
         Height          =   375
         Left            =   1800
         TabIndex        =   13
         Top             =   240
         Width           =   2295
      End
      Begin VB.Label Label4 
         Caption         =   "Membership Number:"
         Height          =   375
         Left            =   120
         TabIndex        =   12
         Top             =   240
         Width           =   1575
      End
   End
   Begin VB.Frame fraAdd 
      Height          =   2295
      Left            =   4560
      TabIndex        =   2
      Top             =   3600
      Width           =   4215
      Begin VB.ListBox lstCategory 
         Height          =   450
         ItemData        =   "frmMembers.frx":0000
         Left            =   1800
         List            =   "frmMembers.frx":000A
         TabIndex        =   10
         Top             =   1680
         Width           =   2295
      End
      Begin VB.TextBox txtMemberIDAdd 
         Height          =   375
         Left            =   1800
         TabIndex        =   9
         Top             =   1200
         Width           =   2295
      End
      Begin VB.TextBox txtFirstname 
         Height          =   375
         Left            =   1800
         TabIndex        =   8
         Top             =   720
         Width           =   2295
      End
      Begin VB.TextBox txtSurname 
         Height          =   375
         Left            =   1800
         TabIndex        =   7
         Top             =   240
         Width           =   2295
      End
      Begin VB.Label Label3 
         Caption         =   "Membership Category:"
         Height          =   375
         Left            =   120
         TabIndex        =   6
         Top             =   1680
         Width           =   1575
      End
      Begin VB.Label Label2 
         Caption         =   "Membership Number:"
         Height          =   375
         Left            =   120
         TabIndex        =   5
         Top             =   1200
         Width           =   1575
      End
      Begin VB.Label Label1 
         Caption         =   "First Name:"
         Height          =   375
         Left            =   120
         TabIndex        =   4
         Top             =   720
         Width           =   1575
      End
      Begin VB.Label Label10 
         Caption         =   "Surname:"
         Height          =   375
         Left            =   120
         TabIndex        =   3
         Top             =   240
         Width           =   1575
      End
   End
   Begin VB.OptionButton optAdd 
      Caption         =   "Add Member"
      Height          =   495
      Left            =   8880
      TabIndex        =   1
      Top             =   3480
      Value           =   -1  'True
      Width           =   1215
   End
   Begin VB.OptionButton optDelete 
      Caption         =   "Delete Member"
      Height          =   495
      Left            =   8880
      TabIndex        =   0
      Top             =   2880
      Width           =   1575
   End
End
Attribute VB_Name = "frmMembers"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Dim FileName As String

Private Sub cmdDisplayMembers_Click()
    Dim FullName As String
    Dim Category As String
    Dim MemberID As String
    Dim OneMember As MemberType
    lstMembers.Clear
    Open FileName For Random As #1 Len = Len(OneMember)
    Do While Not EOF(1)
    Get #1, , OneMember
    If OneMember.Deleted = "N" Then
    FullName = Left(UCase(OneMember.Surname) & " " & _
    OneMember.Firstname, 24)
    MemberID = OneMember.MemberID
    If OneMember.Category = "S" Then
    
        Category = "Senior"
    Else
        Category = "Junior"
    End If
    lstMembers.AddItem FullName & MemberID & " " & Category
    End If
Loop
Close #1
cmdPrintMembers.Enabled = True

    
End Sub

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 diffrent one"
                                                                            
    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 Sub AddMember(ByRef OneMember As MemberType)
    
    Dim NumberOfRecords As Integer
    Dim DeleteRecordNumber As Integer
    Open FileName For Random As #1 Len = Len(OneMember)
    NumberOfRecords = LOF(1) / Len(OneMember)
    Put #1, NumberOfRecords + 1, OneMember
    
    Close #1
    Call cmdDisplayMembers_Click
    
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, OneMember
    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, OneMember
    Close #1
    
Call cmdDisplayMembers_Click
End Function
