Bonjour le forum,
J'utilise le code ci-dessous afin d'importer des données d'un fichier excel à une table MS Access. Mes connaissance sont limitées sur la méthode ADODB, est-il possbile de modifier ce code afin qu'il élimine les données existante de la table "NPDO_test" avant d'importer les nouvelles dans la même table ?
J'ai essayé d'introduire la ligne de code sql = "Delete * from NPDI_test" mais cela n'a pas l'aire de fonctionnner.
Merci pour votre aide.
Soleil11
J'utilise le code ci-dessous afin d'importer des données d'un fichier excel à une table MS Access. Mes connaissance sont limitées sur la méthode ADODB, est-il possbile de modifier ce code afin qu'il élimine les données existante de la table "NPDO_test" avant d'importer les nouvelles dans la même table ?
J'ai essayé d'introduire la ligne de code sql = "Delete * from NPDI_test" mais cela n'a pas l'aire de fonctionnner.
Code:
Sub TransferNPDIdata()
' exports data from the active worksheet to a table in an Access database
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long, sql As String
' connect to the Access database
Set cn = New ADODB.Connection
'cn.Open "Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=N:\05 - NBS CSS\PFC\BTC (Eric)\Gtime structure.accdb;"
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=N:\05 - NBS CSS\PFC\BTC (Eric)\Gtime structure.accdb;Persist Security Info=False"
'=======>Ajouter sql = "Delete * from NPDI_test"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "NPDI_test", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table
r = 2 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("ID") = Range("A" & r).Value
.Fields("Name") = Range("B" & r).Value
.Fields("Project Manager") = Range("C" & r).Value
.Fields("Responsible Stream") = Range("D" & r).Value
.Fields("Accountable Entity") = Range("E" & r).Value
.Fields("Product Category") = Range("F" & r).Value
.Fields("Market or Region") = Range("G" & r).Value
.Fields("Overall Project Status") = Range("H" & r).Value
.Fields("status") = Range("I" & r).Value
.Fields("Next Gate") = Range("J" & r).Value
.Fields("Next Gate Status") = Range("K" & r).Value
.Fields("Planned Decision Date") = Range("L" & r).Value
.Fields("Escalation") = Range("M" & r).Value
.Fields("Escalation Reason") = Range("N" & r).Value
.Fields("Desired Kick-Off date") = Range("O" & r).Value
.Fields("Planned Kick-Off date") = Range("P" & r).Value
.Fields("Desired Go-Live date") = Range("Q" & r).Value
.Fields("Planned Go-Live date") = Range("R" & r).Value
.Fields("Commited Go-Live date") = Range("S" & r).Value
.Fields("Approval Category") = Range("T" & r).Value
.Fields("OPL Activity Type") = Range("U" & r).Value
.Fields("MultiProject") = Range("V" & r).Value
.Fields("Originating Source") = Range("W" & r).Value
.Fields("Type") = Range("X" & r).Value
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
Merci pour votre aide.
Soleil11