It is a good start. 
Here is a site that helped me a lot when I was importing data from Excel spreadsheets:
http://www.accessmvp.com/KDSnell/EXCEL_Import.htm
'GetOpenFilename like in Excel doesn't work in Access!!!
Yes it does, but you need additional code:
http://access.mvps.org/access/api/api0001.htm
I haven't used the Application.FileDialog(msoFileDialogFilePicker) method, I always used GetOpenFilename.
Can't find the code I used yet. I had two loops: one for the row and one for the columns.
Here is the basic idea:
Code:
'my tables all have an autonumber as the PK
RW = 5 'first row with data in spreadsheet
numCols = 10 'number of columns of data
'show row number - control on form
Me.Progress = RW
Do Until Len(Trim(Cells(RW, 1))) = 0 ' stop when the first column of the row is empty
' clear variables
FRate = 0
BaseHrs = 0
A_Fee = 0
CPDID = 0
Me.Repaint
If RW Mod 50 = 0 Then ' update every 50 rows.
Me.Progress = RW
OpenForms = DoEvents ' Yield to operating system.
Me.Repaint
End If
'read all columns into variables
For i = 1 To numCols ' loop thru the columns
Select Case i
Case 1 '???? A
Case 2 'Employee Number B
strEID = Trim(Cells(RW, i)) 'read the data from the Excel cell
Case 3 'Employee SSN C
strSSN = Trim(Cells(RW, i)) 'read the data from the Excel cell
strSSN = Replace(str, "-", "")
'check len
If Len(str) <> 9 Then
'handle error here
NumErrors = NumErrors + 1
End If
Case 4
Case Else
End Select
Next i 'columns
' after all columns read, & processed, insert into recordsets
'main table (record set)
rs.AddNew
rs!field1 = variable1
.
.
.
rs.Update
'get PK
MyPK = rs!MyID
' add data to other tables
sSQL = "Insert Into ...."
CurrentDb.Execute sSQL, dbFailOnError
' inc row number
RW = RW + 1
Loop ' rows
' Do cleanup
rs.close
Set rs = nothing
'tell me
MsgBox "Done"