Are you familiar with ADO? That would be the easiest way.
dim cnAccess as new adodb.connection
dim cnSQL as new adodb.connection
dim rsAccess as new adodb.recordset
dim rsSQL as new adodb.recordset
cnAccess.open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=;User Id=admin;Password=;"
cnSQL.open "Provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI; Persist Security Info=True;" &_
"Initial Catalog=;Data Source="
'or whatever your connection strings are
rsAccess.Open "select ..",cnAccess,adOpenStatic, & _
adLockOptimistic
rsSQL.Open "select ..",cnSQL,adOpenDynamic,adLockOptimistic
While Not rsAccess.EOF
rsSQL.AddNew
rsSQL!fieldname1 = rsAccess!fieldname1
rsSQL!fieldname2 = rsAccess!fieldname2
rsSQL.Update
rsAccess.MoveNext
Loop
This is one easy way to do it. If you use stored procedures for your SQLServer inserts, you would get rid of the rsSQL and do it something like this:
While Not rsAccess.EOF
cnSQL.Execute "exec procStoredProcName " & rsAccess!field
rsAccess.MoveNext
Loop