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

VB.NET Discussion :

UPDATE INSERT table access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Par défaut UPDATE INSERT table access
    Bonjour,

    Je rencontre un problème d'insertion et mise à jour de données pour mon projet. J'ai une base de données ACCESS avec une table "USERS" et une table "USERS_PDM". L'utilisateur doit dans un premier temps ajouter un utilisateur dans la table "USERS" puis ensuite l'ajouter dans la table "USERS_PDM" si l'utilisateur utilise une licence PDM. Je précise que la table "USERS" contient un champs nommée "ID_PDM" qui est la clé primaire de "USERS_PDM" et que ces 2 tables n'ont pas d'association entre elles. J'ai essayé plusieurs solution dont celle ci-dessous mais en vain :

    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
     
            Dim sql_ajouter_pdm As String
            Dim sql_MAJ_user As String
     
            sql_MAJ_user = "UPDATE USERS SET ID_PDM=Val_ID_PDM where ALPS=" & TXT_ALPS_USER.Text & ""
            sql_ajouter_pdm = "INSERT INTO USERS_PDM (ID_PDM,User_Name,CC) VALUES (Val_ID_PDM, Val_User_Name, Val_CC)"
     
            commande_pdm = New OleDb.OleDbCommand(sql_ajouter_pdm, con_pdm)
            commande_user = New OleDb.OleDbCommand(sql_MAJ_user, con_user)
     
            If TXT_ID_PDM.TextLength <> 0 Then
                For k = 0 To TXT_ID_PDM.TextLength - 1
                    If IsNumeric(TXT_ID_PDM.Text(k)) Then
                        TXT_ID_PDM.Clear()
                        MsgBox("Le champ PDM ne doit pas contenir de chiffre")
                        Exit Sub
                    End If
                Next
            Else
                TXT_ID_PDM.Clear()
                MsgBox("Veuillez rentrer un login PDM")
                Exit Sub
            End If
     
            commande_pdm.Parameters.AddWithValue("Val_ID_PDM", TXT_ID_PDM.Text)
            commande_user.Parameters.AddWithValue("Val_ID_PDM", TXT_ID_PDM.Text)
            commande_pdm.Parameters.AddWithValue("Val_User_Name", TXT_NOM_USER.Text & "," & TXT_PRENOM_USER.Text)
            commande_pdm.Parameters.AddWithValue("Val_CC", CB_CC.SelectedItem)
     
            commande_pdm.Connection.Open()
            commande_pdm.ExecuteReader()
            commande_pdm.Connection.Close()
     
            commande_user.Connection.Open()
            commande_user.ExecuteReader()
            commande_user.Connection.Close()
     
            MsgBox("Le nouveau contact PDM a bien été enregistré.")
     
            dts_pdm.Clear()
            dts_user.Clear()
            demarrage_users()
            demarage_pdm()
    Avec cette solution j'ai un message de Type de données incompatible dans l'expression du critère. Quelqu'un pourrait-il m'aider et m'expliquer ?

    Merci par avance,

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    ce message d'erreur signifie qu'il y a un problème de type
    genre si dans un champs nombre tu mets un texte ou si dans un champs texte tu ne donnes pas du texte entre '
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Par défaut
    Bonjour et merci pour ta réponse,

    Seulement il y a quelque chose d’illogique. Premièrement, j'ai fait une contrainte pour interdire les chiffres dans ce champs et dans un second temps j'ai introduit des " ' " dans mon champs lors de l'enregistrement. Mais toujours le même message ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commande_user.Parameters.AddWithValue("Val_ID_PDM", "'" & "TXT_ID_PDM.Text" & "'")

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    détails de la table ? (colonnes et types)
    que contient CB_CC ?

    la requete qui plante est-elle bien celle d'insert ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Par défaut
    Tu trouveras les détails des tables en pièce jointe.

    Cb_CC est la table des centre de coûts. chaque utilisateur a un centre de coût et un centre de coût peut avoir plusieurs utilisateurs.

    La requête qui plante est l'update. L'insert marche bien, les données s'ajoutent dans la table "USERS_PDM" mais le champs "ID_PDM" de la table "USERS" ne se met pas à jour.

    Voila, j'espère avoir été clair.

    Merci encore
    Images attachées Images attachées  

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    alps est de type texte
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sql_MAJ_user = "UPDATE USERS SET ID_PDM=Val_ID_PDM where ALPS='" & TXT_ALPS_USER.Text & "'"
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Par défaut
    Merci beaucoup,

    C'est ok pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql_MAJ_user = "UPDATE USERS SET ID_PDM=' " & TXT_ID_PDM.Text & "' where ALPS='" & TXT_ALPS_USER.Text & "'"

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/06/2008, 23h42
  2. ERROR: insert or update on table "ecole" violate
    Par doulel dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/04/2006, 21h24
  3. Réponses: 10
    Dernier message: 07/03/2006, 13h30
  4. Réponses: 2
    Dernier message: 23/02/2006, 12h23
  5. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 16h57

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