2009-09-14 8 views
0

J'ai un problème que l'ajout (écrasement de la clé 123 existante) ne fonctionne pas, comment forcer la mise à jour d'une ligne en cas de conflit?Addnew n'ajoute pas de ligne lorsque la ligne similaire y

db.OpenRecordset("table1", dbOpenTable) 
.AddNew ' create a new record 
.Fields("key") = "123" 
.Update ' stores the new record 

code fonctionne lorsque DB n'a pas encore clé 123

+0

ne "table1" ont une clé primaire? – Kane

Répondre

0

Si vous utilisez un DataTable, vous voulez utiliser la méthode LoadDataRow qui soit ajoute une nouvelle ligne ou met à jour une ligne existante. Je ne sais pas si cette méthode est présente dans un jeu d'enregistrements.

0

Vous avez ce VBA balisé et ado.net. Mais ADO.Net n'est pas disponible pour VBA. Pourriez-vous fournir des éclaircissements?

En supposant que vous êtes en VBA:

Public Sub Example() 
Dim db As DAO.Database 
Set db = Access.CurrentDb 
With db.OpenRecordset("table1", dbOpenDynaset) 
    .FindFirst "Key=123" 
    If .NoMatch Then 
     .AddNew ' create a new record 
     .Fields("key") = "123" 
     .Update ' stores the new record 
    Else 
     .Edit 
     .Fields("myfield") = "foo" 
     .Update 
    End If 
    .Close 
End With 
db.Close 

End Sub

Questions connexes