Hi! Came out with the solution just now. plz check out this.
Private db As ADODB.Connection
Private rs1 As ADODB.Recordset
Private rs2 As ADODB.Recordset
Private Sub Command_Click()
Call fn_DeleteDuplicateRecords("Attribute", "TmpAttribute")
End Sub
Public Function fn_DeleteDuplicateRecords(ByVal strTableName As String, ByVal strDupTableName As String)
Dim iCatalog As New ADOX.Catalog
Dim i As Integer, j As Integer
Dim strOpen As String
On Error GoTo ErrTrap
Set db = New ADODB.Connection
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ProductClass.mdb;Persist Security Info=False"
iCatalog.ActiveConnection = db
For i = 0 To iCatalog.Tables.Count() - 1
If iCatalog.Tables(i).Name = "NEWTAB" Then 'If table strDupTableName found then
db.Execute "DROP TABLE NEWTAB "
iCatalog.Tables.Refresh
Exit For
End If
Next
db.Execute "CREATENEWTAB", , adCmdStoredProc
rs1.Open " SELECT Attribute.ParentUUID, Attribute.Alias_Attr, First(Attribute.Value_Attr) AS FirstOfValue_Attr, Attribute.Type_Attr FROM " & strTableName & " GROUP BY Attribute.ParentUUID, Attribute.Alias_Attr, Attribute.Type_Attr ", db, adOpenKeyset, adLockReadOnly
rs2.Open " SELECT * FROM NEWTAB ", db, adOpenDynamic, adLockOptimistic
While Not rs1.EOF
rs2.AddNew
For i = 0 To rs1.Fields.Count - 1
If i = 2 Then
If Len(rs1.Fields(2)) > 255 Then
For j = 1 To Len(rs1.Fields(2)) Step 255
rs2.Fields(i) = rs2.Fields(i) & Mid(rs1.Fields(i), j, 255)
Next
Else
rs2.Fields(i) = rs1.Fields(i)
End If
Else
rs2.Fields(i) = rs1.Fields(i)
End If
Next i
rs2.Update
rs1.MoveNext
Wend
If Not rs1 Is Nothing Then
If rs1.State Then rs1.Close
Set rs1 = Nothing
End If
If Not rs2 Is Nothing Then
If rs2.State Then rs2.Close
Set rs2 = Nothing
End If
iCatalog.Tables.Refresh
For i = 0 To …