I have a manually built form that looks approximately like this in Excel sheet VolunteerForm:

and the database in sheet VolunteerData linked to the form:

I managed to link the first part of the information (Col A to F in the database) but not the lower half of the form.
This is what I have done so far (note that I built the code but can't figure out how to modify them to give the result I want, since running the code gave me an error).
Here's my code:
Sub Submit_VolunteerForm()
Dim lr As Long, ws As Worksheet
Dim arr As Variant, i As Long
With Worksheets("VolunteerForm")
lr = .Cells(12, "D").End(xlUp).Row - 6
ReDim arr(1 To lr, 1 To 6)
For i = LBound(arr, 1) To UBound(arr, 1)
arr(i, 1) = .Cells(4, "D").Value ' Fixed Col = Date Form sent
arr(i, 2) = .Cells(i + 6, "E").Value ' Name
arr(i, 3) = .Cells(i + 6, "F").Value ' Dob
arr(i, 4) = .Cells(i + 6, "G").Value ' birthplace
arr(i, 5) = .Cells(i + 6, "H").Value ' address
arr(i, 6) = .Cells(i + 6, "I").Value ' phone #
Next i
End With
With Worksheets("VolunteerData")
lr = .Range("A" & .Rows.Count).End(xlUp).Row + 1
.Cells(lr, "A").Resize(UBound(arr, 1), UBound(arr, 2)) = arr
End With
With Worksheets("VolunteerData")
lr = .Range("G" & .Rows.Count).End(xlUp).Row + 1
.Cells(lr, "G").Resize(UBound(arr, 1), UBound(arr, 2)) = arr
End With
With Worksheets("VolunteerForm")
lr = .Cells(21, "D").End(xlUp).Row - 15
ReDim arr(1 To lr, 1 To 6)
For i = LBound(arr, 1) To UBound(arr, 1)
arr(i, 1) = .Cells(i + 15, "J").Value
arr(i, 2) = .Cells(i + 15, "K").Value
arr(i, 3) = .Cells(i + 15, "L").Value
arr(i, 4) = .Cells(i + 15, "M").Value
arr(i, 5) = .Cells(i + 15, "N").Value
Next i
End With
End Sub
Thanks!