Max Wanadoo
max.wanadoo at gmail.com
Fri Jan 15 13:04:21 CST 2010
Try something along these lines.
Max
Function max()
On Error GoTo errhandler
Dim sql As String, rst1 As DAO.Recordset, rst2 As DAO.Recordset, dbs As
DAO.Database, fld As Field, strFld As String
Set dbs = CurrentDb
' if you want to create a temp table on the fly, do this.
sql = "Drop table maxtemp"
CurrentDb.Execute (sql)
sql = "create table maxtemp (IncomeDesc text, SumOfAmount double)"
CurrentDb.Execute (sql)
' else do this
sql = "Delete * from maxtemp"
CurrentDb.Execute (sql)
' read data into temp table
DoCmd.TransferSpreadsheet acImport, , "maxtemp", "c:\Max.xls", True
Set rst1 = dbs.OpenRecordset("Select * from maxtemp")
' do your error checks in the maxtemp table
' now move to main table
Set rst2 = dbs.OpenRecordset("select * from max")
' ignore errors ie, dupes
On Error Resume Next
rst1.MoveFirst
Do While Not rst1.EOF
rst2.AddNew
For Each fld In rst1.Fields
strFld = fld.Name
rst2(strFld) = rst1(strFld)
Next fld
rst2.Update
rst1.MoveNext
Loop
exithere:
Exit Function
errhandler:
Select Case Err.Number
Case Else
MsgBox Err.Number & vbCrLf And Err.Description
End Select
End Function