IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

Erreur de syntaxe - Access et Ado.net


Sujet :

Accès aux données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Erreur de syntaxe - Access et Ado.net
    Bonsoir,

    Je solicite une nouvelle fois votre aide

    Sous VB2005

    Après avoir sélectionné une des trois tables de ma BD access, mon programme affiche une DataGridView de la table sélectionnée, puis permet à l'utilisateur de modifier son intégralité.

    Un bouton Mise à jour, permet de réactualiser les données de mon DataAdapter (j'en ai crée 3 différents)

    Pour deux des trois tables, la mise à jour s'effectue sans problème, mais pour l'une d'entre elles, j'ai une erreur visiblement de syntaxe (voir l'image jointe)

    Je pense que mon erreur doit venir des paramètres de ma BD access mais je ne trouve pas

    Qu'en pensez-vous ?

    Merci d'avance pour votre aide

    Ci-dessous une partie de code, sachant que la connexion est établie, et l'affichage du datagridview est correct.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
            dataConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Application.StartupPath & "\bd1.mdb;"
            dataSql = "SELECT UTILISATEUR.* FROM UTILISATEUR"
            dataSql1 = "SELECT PC.* FROM PC"
            dataSql2 = "SELECT LOGICIEL.* FROM LOGICIEL"
     
            'Création des objets 
            DataConnection = New OleDbConnection
            DataConnection.ConnectionString = dataConn
            DataConnection.Open()
     
            DataCommand = New OleDbCommand(dataSql)
            DataCommand1 = New OleDbCommand(dataSql1)
            DataCommand2 = New OleDbCommand(dataSql2)
     
            DataDataAdapter = New OleDbDataAdapter(DataCommand)
            DataDataAdapter1 = New OleDbDataAdapter(DataCommand1)
            DataDataAdapter2 = New OleDbDataAdapter(DataCommand2)
     
            DataCommand.Connection() = DataConnection
            DataCommand1.Connection() = DataConnection
            DataCommand2.Connection() = DataConnection
     
     
            'Pour modifier les valeurs changées dans le DataAdapter
            DataCB = New OleDbCommandBuilder(DataDataAdapter)
            DataCB1 = New OleDbCommandBuilder(DataDataAdapter1)
            DataCB2 = New OleDbCommandBuilder(DataDataAdapter2)
     
     
     
    If RadioButton1.Checked = True Then
                DataGridView1.Visible = True
                Try
                    DataDataAdapter.Update(DataDataSet, "UTILISATEUR")
                Catch
                    MessageBox.Show("La Mise a échouée")
                End Try
     
                MessageBox.Show("La Mise à jour a été effectuée")
     
                'On actualise
                DataGridView1.Refresh()
     
            ElseIf RadioButton2.Checked = True Then
                DataGridView1.Visible = True
                Try
                    'Mettre à jour
                    DataDataAdapter1.Update(DataDataSet1, "PC")
                Catch
                    MessageBox.Show("La Mise a échouée")
                End Try
     
                MessageBox.Show("La Mise à jour a été effectuée")
                'On actualise
                DataGridView1.Refresh()
     
            ElseIf RadioButton3.Checked = True Then
                DataGridView1.Visible = True
                Try
                    'Mettre à jour
                    DataDataAdapter2.Update(DataDataSet2, "LOGICIEL")
                Catch
                    MessageBox.Show("La Mise a échouée")
                End Try
                MessageBox.Show("La Mise à jour a été effectuée")
     
                'On actualise
                DataGridView1.Refresh()
    Images attachées Images attachées  

  2. #2
    Membre régulier Avatar de netomin
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    Si tu pense que c'est un problème de parametres compare les parametres de tes trois tables et regarde c'est koi la difference avec la dernière.
    Est ce que t'es sur que la mise à jour se passe bien pour les autres tables? T'a verifié la sintaxe SQL de tes requêtes update?
    Le code que tu as mis n'est pas d'une grande aide pour voir ton problème car t'as fait exactement la même chose pour les trois tables.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Bonjour netomin,

    J'ai effectivement taper le même code pour les 3 tables.
    J'ai vérifier que la mise à jour des 2 autres tables s'effectuait correctement,
    sachant que la syntaxe des requêtes update est la même aussi pour les 3 tables, et que deux d'entres elles marchent...
    Quant aux paramètres de mes tables access, la propriété des champs est la même pour les 3...je ne comprends plus

  4. #4
    Membre régulier Avatar de netomin
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    A juger par l'image que tu as mis dans ton premier message (je l'avais pas vu avant) ta requete a été coupée à la fin, je ne sais pas si c'est toi qui l'a coupée ou c'est juste qu'elle ne se pas affiché en entier quand tu as fait l'impresion d'écran, en tout cas à la fin il te manque un bout de code dans ton message d'erreur car tu as "Erreur de syntaxe: operateur absente dans l'expression...blablabala...Or (Ether".

    Mettre à la place:
    Sans les trois points bien sûr.

    Sinon, continue à verifier

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Ahhhhhhhhh bien vu !

    En effet le message d'erreur ne reprend pas tout les champs de ma table "PC".

    Pour ce qui est de la requête, ce n'est pas moi qui m'en charge puisque la seule requête que j'effectue c'est "SELECT PC.* FROM PC" c'est à dire tout les champs de la tables PC que je charge ensuite dans mon DataSet.

    Mais effectivement à lire le message d'erreur le programme en interne s'arrèterait avant la mise à jour totale des champs de ma table.

    Je vais me pencher dessus, je te tiens au courant en tout cas merci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    C'étais donc bien une erreur dans Access, l'un de mes champs contenait un espace

    Merci beaucoup

  7. #7
    Membre régulier Avatar de netomin
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    N'oublie pas de mettre résolue dans ton sujet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de syntaxe + Access
    Par retwas dans le forum Bases de données
    Réponses: 0
    Dernier message: 05/01/2013, 12h09
  2. Réponses: 2
    Dernier message: 04/11/2008, 17h50
  3. Réponses: 8
    Dernier message: 09/09/2008, 09h28
  4. Erreur lors de l'update (Ado.Net)
    Par dsolheid dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/03/2008, 22h21
  5. [ADO.Net][Access] Pourquoi ai-je une erreur lors de l'Update ?
    Par nazimb dans le forum Accès aux données
    Réponses: 1
    Dernier message: 15/05/2006, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo