VB Code:
Private Sub cmdDelete_Click() Dim lngIndex As Long Dim i As Long If Admin = False Or User = True Then MsgBox "Sorry, unfortunately only someone with Administrator Access can perform that operation. Please contact your administrator for further queries." Else If vbNo = MsgBox("Are you sure?", vbYesNo + vbQuestion, "About to Delete This address") Then Exit Sub End If 'For lngIndex = 1 To Number - 1 ' With AddressBook(lngIndex) ' .fullname = AddressBook(lngIndex + 1).fullname ' .address = AddressBook(lngIndex + 1).address ' .town = AddressBook(lngIndex + 1).town ' .postcode = AddressBook(lngIndex + 1).postcode ' .dob = AddressBook(lngIndex + 1).dob ' .house = AddressBook(lngIndex + 1).house ' .mobile = AddressBook(lngIndex + 1).mobile ' End With 'Next 'Are you still using nextrec variable for storing array index reference? If so... Call ShiftDown(nextrec - 1) Kill FileName Number = Number - 1 Open FileName For Output As #1 For i = 1 To Number ' - 1 With AddressBook(i) Write #1, .fullname Write #1, .address Write #1, .town Write #1, .postcode Write #1, .dob Write #1, .house Write #1, .mobile End With Next i Close #1 'new With AddressBook(1) Text1.Text = .fullname Text2.Text = .address Text3.Text = .town Text4.Text = .postcode Text5.Text = .dob Text6.Text = .house Text7.Text = .mobile End With End If End Sub Public Sub ShiftDown(ByVal currpos As Long) Dim i As Long If currpos < LBound(AddressBook) Or currpos > UBound(AddressBook) For i = currpos To UBound(AddressBook) - 1 'start shift at current position With AddressBook(i) .fullname = AddressBook(i + 1).fullname .address = AddressBook(i + 1).address .town = AddressBook(i + 1).town .postcode = AddressBook(i + 1).postcode .dob = AddressBook(i + 1).dob .house = AddressBook(i + 1).house .mobile = AddressBook(i + 1).mobile End With Next ReDim Preserve AddressBook(UBound(AddressBook) - 1) End Sub




Reply With Quote