ADO methods similar to what Deyken posted can be used. You will need some modifications though like the connection string.
The first thing to do is decide how you will create the dbf file. If you have Access, I would do it manually first. If not, you can do it by programming. For the programming method, see the post by Jan Karel Pieterse,
http://vbaexpress.com/forum/showthread.php?t=24883.
Once the dbf is created, we can easily fill it with the data.
If you don't have Access, be sure to get the MDAC files from Microsoft which are free.
The next step is to insert the rows as records into the dbf file. You can then run some SQL code to remove duplicates or use some more specific ADO code to iterate the rows and check for a matching with the same ID and not insert it.
Here is one simple method for poking Excel data into a dbf file.
[vba]Sub demo()
Dim objRS As Object, nwindPath As String
Set objRS = CreateObject("ADODB.Recordset")
nwindPath = ThisWorkbook.Path & "\nwind.mdb"
Dim r As Range
[a1] = "LastName"
[b1] = "FirstName"
[a2] = "Hobson"
[b2] = "Kenneth"
Set r = [a1:b2]
r.Name = "MyRange"
objRS.Open "INSERT INTO Employees SELECT * FROM [MyRange] IN '" & ThisWorkbook.FullName & "' 'Excel 8.0;'", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & nwindPath
Set objRS = Nothing
End Sub[/vba] I probably won't have time to give more specific help until this weekend. These ideas should give you something to play with though.
For some more specific ADO code, see:
http://www.excelguru.ca/node/18
Notice that these code examples use early binding so you need to set the reference to the Microsoft Data Activex Connection library object.