2016-12-05 3 views
0

Je rencontre actuellement un problème avec l'exportation de données à partir de Visual Basic à mon dossier Ms Access. Lors de l'exécution de mon formulaire, je reçois l'erreur suivante: «Update nécessite une commande UpdateCommand valide lors de la transmission de la collection DataRow avec des lignes modifiées, mais ne parvient pas à exporter les données vers Ms AccessMme base de données Access ne les données d'entrée à partir de Visual Basic

Le but de ce formulaire est lorsqu'un utilisateur écrit dans leur nouveau nom d'utilisateur et mot de passe, il est ensuite exporté dans la base de données MS Access et enregistre. J'ai une autre forme qui importe correctement les données de la base de données.

Public Class LoginTestV2 

Private Sub LoginTestV2_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    'TODO: This line of code loads data into the 'DataDataSet.TblUserAccount' table. You can move, or remove it, as needed. 
    Me.TblUserAccountTableAdapter.Fill(Me.DataDataSet.TblUserAccount) 


End Sub 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnCreateAccount.Click 
    Me.TblUserAccountTableAdapter.Fill(Me.DataDataSet.TblUserAccount) 

    On Error GoTo SaveErr 
    TblUserAccountBindingSource.EndEdit() 
    TblUserAccountTableAdapter.Update(DataDataSet.TblUserAccount) 
    MsgBox("You have created your account! You're on your way to start Recycling!") 
SaveErr: 
    Exit Sub 
End Sub 

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnClose.Click 
    Me.Close() 
End Sub 
End Class 
+0

Ce message d'erreur est généralement causé par l'incapacité o f TableAdapter pour générer une commande Update à la conception. À son tour, cela est généralement dû au fait que vous n'avez pas de clé primaire définie, c'est-à-dire qu'elle ne peut pas générer une clause 'Where' spécifiant une ligne unique à mettre à jour. – peterG

+0

Quelle serait la solution à ce problème Peter? Comme dans, de quoi ai-je besoin pour ajuster mon code? – Robert

+0

Ce n'est pas un problème dans votre code lui-même. Vous devez regarder la conception de la table dans la base de données et/ou le tableadapter dans le concepteur de dataset. La commande UPDATE doit être visible lorsque vous cliquez avec le bouton droit sur le tableadapter et sélectionnez les propriétés. Il est construit automatiquement par le concepteur, si c'est possible. Si ce n'est pas le cas, c'est généralement parce qu'il ne peut pas construire une clause WHERE qui spécifie une ligne unique à mettre à jour, c'est-à-dire parce qu'il n'y a pas de PK – peterG

Répondre

0

Modifiez les paramètres de sécurité de votre base de données d'accès. Faites un clic droit la base de données d'accès puis vérifiez l'autoriser toutes les opérations