Modifier 1 enregistrement Access à partir d'Excel [Résolu]

- - Dernière réponse :  nicolasbgt - 17 sept. 2012 à 08:23
Bonjour à tous,

Après avoir cherché hier sur la toile, et n'ayant pu résoudre mon problème, je viens solliciter votre aide.
J'ai un fichier Excel dont je mets à jour "commentaire/famille/fiche/délai" en fonction d'un "numéro".
J'ai une base Access avec une table recommandations qui contient ces valeurs + d'autres.
Je souhaite pouvoir saisir mon numéro de recommandation dans une InputBox Excel et mettre à jour l'enregistrement correspondant au numéro de la recommandation.

Désolé pour la longueur du message ...

J'ai réussi à écrire ce code mais je modifie toujours la première recommandation et je ne parviens pas du tout à modifier l'enregistrement saisi dans l'InputBox.

Sub ADOFromExcelToAccess()


Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Chemin = ActiveWorkbook.Path
Source = Chemin & "\YYYYYY.mdb"
Set cn = New ADODB.Connection


cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False"
cn.Properties("Jet OLEDB:Database Password") = "XXX"
cn.Open Source


REP = InputBox("Quelle recommandation mettre à jour ?")

Set rs = New ADODB.Recordset
rs.Open "[Recommendations]", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table
'rs.Find Fields("Numéro") = REP
' rs.Find (Numéro = REP)
Dim strCritere As String
strCritere = "Numéro LIKE " & Chr(34) & REP & Chr(34)
rs.Find strCritere


' je cherche
Set D = Sheets("Recommendations").Range("A:A").Find(REP)

' si la valeur n'a pas été trouvé
If D Is Nothing Then
MsgBox "la valeur " & REP & " n'a pas été trouvée"
Exit Sub
End If

' si la valeur a été trouvée et récupération de la ligne activée
If Not D Is Nothing Then
ligne = D.Row
End If

Sheets("Recommendations").Select

r = ligne ' the start row in the worksheet
'je pense ce code inutile' Do While Len(Range("A" & r).Formula) > 0 ' repeat until first empty cell in column A
With rs
'je pense ce code inutile' .AddNew ' create a new record
' add values to each field in the record
.Fields("CommentaireEDF") = Range("I" & r).Value
.Fields("Délai") = Range("Y" & r).Value
.Fields("Famille") = Range("Z" & r).Value
.Fields("Fiche") = Range("AA" & r).Value
.Update ' stores the new record
End With
'je pense ce code inutile' r = r + 1 ' next row
'je pense ce code inutile' Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing


End Sub


En espérant que vous pourrez m'aider ! Merci d'avance
Afficher la suite 

1 réponse

Meilleure réponse
3
Merci
Personne n'est intéressé par mon problème ?

Je n'ai toujours pas trouvé de solutions ...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nicolasbgt