Probleme de mise à jour BDD access

johann36
Messages postés
132
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 mai 2017
- 24 mars 2008 à 08:41
johann36
Messages postés
132
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 mai 2017
- 24 mars 2008 à 16:22
Bonjour à tous et joyeuses pâques au passage !

Voilà, j'ai un soucis pour mettre à jour ma base de données Access, je m'explique :

J'ai créé une table USER avec Access puis dans VB Express 2008 j'ai créé un formulaire qui me permet d'ajouter, modifier et supprimer mes utilisateurs. Mon soucis c'est que pour en ajouter un j'ai le message d'erreur suivant "Impossible pour Update de trouver TableMapping['[USER]'] ou DataTable '[USER]'."

Là je colle ! au début j'ai cru que c'était un problème de syntaxe (ce qu'il m'a d'ailleurs affiché) j'ai donc rajouté les simples côtes entre le mot USER et maintenant j'ai ce message.

J'ai pourtant suivit le tuto " LES BASES POUR SE CONNECTER UNE BASE DE DONNÉES ACCESS AVEC VB.NET" mais rien toujours le même problème.

Si vous pouviez m'aider.

Merci d'avance et bonne journée à tous.

3 réponses

cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
24 mars 2008 à 12:38
Salut
Si tu avais collé le texte de ta requète, ça aurait pu aider pour trouver la solution ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
johann36
Messages postés
132
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 mai 2017

24 mars 2008 à 15:25
Voici le code concernant l'ajout de mon utilisateur.

    Private cnx As OleDbConnection              'Déclaration de la connexion
    Private cmd As OleDbCommand                 'Déclaration de l'Objet Commande
    Private dta As OleDbDataAdapter             'Déclaration de l'Objet DataAdapter
    Private cmdb As OleDbCommandBuilder

    Private dts As New DataSet                  'Déclaration de l'Objet DataSet
    Private dtt As DataTable                    'Déclaration de l'Objet DataTable
    Private dtc As DataColumn
    Private dtr As DataRow
    Private rownum As Integer = 0               'Index de parcours dans le DataTable
    Private conn As String = ""                 'Paramêtres de connexion à la BDD
    Private sql As String = ""                  'String contenant la 'Requête SQL'

'Initialisation de la chaîne de paramètres pour la connexion
        conn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & My.Application.Info.DirectoryPath & "\GPI.mdb;"
        'Instanciation d'un Objet Connexion
        Cnx = New OleDbConnection
        'Donner à la propriété ConnectionString les paramètres de connexion
        cnx.ConnectionString = conn
        'Ouvrir la connexion
        cnx.Open()

'Initialisation de la chaîne contenant l'instruction SQL
        sql = "SELECT * FROM [user] ORDER BY USER_NOM"
        'Instancier un objet Commande
        cmd = New OleDbCommand(sql)
        'Instancier un objet Adapter
        dta = New OleDbDataAdapter(cmd)
        'initialiser l'objet Command
        cmd.Connection() = cnx

'Avec l'aide de la propriété Fill du DataAdapter on charge le DataSet
        dta.Fill(dts, "user")
        'Mettre dans un Objet DataTable une table du DataSet
        dtt = dts.Tables("user")
        
 'Création de la fiche utilisateur
            dtr = dts.Tables("USER").NewRow
            dtr("USER_NOM") = Me.TXT_NOM.Text
            dtr("USER_PRENOM") = Me.TXT_PRENOM.Text
            dtr("USER_LOGIN") = Me.TXT_LOGIN.Text
            dtr("USER_PW") = Me.TXT_PW.Text

'ajout de la ligne dans le DataSet
            dts.Tables("USER").Rows.Add(dtr)

'création et exécution du commandbuilder
'pour mettre à jour le DataAdapter
            cmdb = New OleDbCommandBuilder(dta)

'mise à jour des données du DataAdapter
'à partir du commandbuilder
            Try
                dta.Update(dts, "USER") -----------> Le problème est ici
            Catch ex As OleDbException
                MsgBox(ex.Message)
            End Try

'on vide le dataset pour le recréer avec
            'les nouvelles données
            dts.Clear()
            dta.Fill(dts, "USER")
            dtt = dts.Tables("USER")

            'aller au début du fichier
            rownum = 0

 'affichage des données dans les texbox
            Me.TXT_NOM.Text = dtt.Rows(rownum).Item("USER_NOM")
            Me.TXT_PRENOM.Text = dtt.Rows(rownum).Item("USER_PRENOM")
            Me.TXT_LOGIN.Text = dtt.Rows(rownum).Item("USER_LOGIN")
            Me.TXT_PW.Text = dtt.Rows(rownum).Item("USER_PW")
            Me.TXT_QUALIF.Text = dtt.Rows(rownum).Item("USER_QUALIF")

Normalement tout y est.

Merci d'avance
0
johann36
Messages postés
132
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 mai 2017

24 mars 2008 à 16:22
J'ai trouvé le soucis, cela vient du nom de la table, j'ai changé USER --> UTILISATEUR est maintenant cela fonctionne. Je pense que le mot USER est un mot clé et le fait de l'utiliser provoque des conflit.

En revanche, je voulais savoir comment interdire la saisie de valeur dans une combobox ?

je m'explique, toujours dans ma fenêtre utilisateur j'ai une combobox le problème c'est qu'il est possible de saisir des valeurs.
Je voudrais que cette propriété soit désactivé.

Merci d'avace
0