Bonjour à tous,
Voila j'ai un code VBA qui permet d'envoyer des données d'excel vers une table access.
Cela fonctionne parfaitemement, le seul problème que je rencontre est le suivant si j'envoie des données lorsque la table est vide il n'y a pas de probleme cela fonctionne. Si je rajoute une ligne au fichier excel et que je renvoie les données, la nouvelle ligne ne s'inscrit pas dans la table access, je pense que c parcequ'il touve des doublons !
Le second code amélioré avec une conditionnelle :
j'ai une erreur qui me dit 'erreur de compilation incompatibilité de type'
je pense qu'il y a un probleme dans le code mais je sais pas ou car il me grise la ligne select ..from... et apres il me met en jaune 'Sub AjouterDesEnregistrementsAUneTable()'
Pouvez vous m'aider
Merci beaucoup
A+
Voila j'ai un code VBA qui permet d'envoyer des données d'excel vers une table access.
Cela fonctionne parfaitemement, le seul problème que je rencontre est le suivant si j'envoie des données lorsque la table est vide il n'y a pas de probleme cela fonctionne. Si je rajoute une ligne au fichier excel et que je renvoie les données, la nouvelle ligne ne s'inscrit pas dans la table access, je pense que c parcequ'il touve des doublons !
Code:
Sub AjouterDesEnregistrementsAUneTable()
Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet
Set MyDB = OpenDatabase('S:\\Qualité\\BDD Qualité\\BDD Qualité.mdb')
Set MyTable = MyDB.OpenRecordset('produits')
Set Sh = Worksheets('Feuil1')
With Sh
For Each r In .Range('A5:C300').Rows
With MyTable
.AddNew
!sap = Sh.Cells(r.Row, 1)
!nom = Sh.Cells(r.Row, 2)
!prenom = Sh.Cells(r.Row, 3)
.Update
End With
Next
End With
Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing
End Sub
Le second code amélioré avec une conditionnelle :
Code:
Sub AjouterDesEnregistrementsAUneTable()
Dim test As Byte
Dim rs As Recordset
Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet
test = 0
Set MyDB = OpenDatabase('S:\\Qualité\\BDD Qualité\\BDD Qualité.mdb')
Set MyTable = MyDB.OpenRecordset('produits')
Set Sh = Worksheets('Feuil1')
Set rs = 'Select distinct sap from produits'
For Each r In .Range('A5:C300').Rows
Do While (rs.EOF = False And test = 0)
'Si la clé de ta ligne à ajouter est deja utilisée alors on stop de comparer
If (rs!sap = Sh.Cells(r.Row, 1)) Then test = 1
Loop
'si la clé est non prise alors on ajoute
If (test = 0) Then
With MyTable
.AddNew
!sap = Sh.Cells(r.Row, 1)
!nom = Sh.Cells(r.Row, 2)
!prenom = Sh.Cells(r.Row, 3)
.Update
End With
End If
test = 0
Next
End Sub
j'ai une erreur qui me dit 'erreur de compilation incompatibilité de type'
je pense qu'il y a un probleme dans le code mais je sais pas ou car il me grise la ligne select ..from... et apres il me met en jaune 'Sub AjouterDesEnregistrementsAUneTable()'
Pouvez vous m'aider
Merci beaucoup
A+