Recordset vba

trexor Messages postés 134 Date d'inscription mercredi 9 mars 2005 Statut Membre Dernière intervention 17 octobre 2010 - 2 sept. 2005 à 12:44
pymm Messages postés 48 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 8 septembre 2005 - 2 sept. 2005 à 13:58
Bonjour,
je n'ai pas l'habitude d'utiliser des recordset (je fais généralement du vb.net). Mon appli vb.net lance une feuille excel dans laquel je lance du code vba pour faire un update d'une table access, j'essaye d'utiliser un recordset mais j'ai un problème de doublon avec ma base de donnée. Mon code enregistre les données d'excel vers ma base access à la suite des dernières valeurs enregistré au lieu de faire un update par rapport ma clef primaire (No element)...pourquoi?

Dim Plage As Range
Dim Array1 As Variant
Dim x As Variant
Dim Db1 As Database
Dim Rs1 As Recordset
Dim num As Integer

num = 0
Set Db1 = DBEngine.OpenDatabase("c:\toto.xls")
'Set Rs1 = Db1.OpenRecordset("Element", dbOpenDynaset)
Set Rs1 = Db1.OpenRecordset("Element",)

Set Plage = Worksheets("Feuil1").Range("A1").CurrentRegion.Offset(1, 0)

Array1 = Plage

For x = 1 To UBound(Array1, 1) - 1
num = num + 1
With Rs1
.AddNew
.Fields("No element") = Array1(x, 1)
.Fields("Panneau") = Array1(x, 2)


.Update
End With
Next

1 réponse

pymm Messages postés 48 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 8 septembre 2005
2 sept. 2005 à 13:58
C'est parce que tu fais un addnew = "Ajoute nouvel ligne dans la table".

essaies de te placer sur l'enregistrement puis tu modifies les valeur puis le update.

Mais j'ai pas fait de VB depuis un moment alors je garantis rien
0
Rejoignez-nous