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

  1. #1
    Futur Membre du Club
    Homme Profil pro
    email
    Inscrit en
    janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : email

    Informations forums :
    Inscription : janvier 2018
    Messages : 12
    Points : 7
    Points
    7

    Par défaut Incompatibilité de données access et vb. Net.

    Bonjour à tous !!!!
    J'ai un problème avec une base de données access connectée à une application vb.Net.

    la table sur laquelle je travaille est une table fils qui doit recevoir la clé étrangère de la table père.
    Au faite, il s'agit d'une petite application concernant une gestion de naissance à une maternité.
    Dans cette table fils j'ai 7 champs:
    1. id_enfant : qui est une valeur auto
    2. id_maman : qui es une clé étrangère venant de la table t_maman ces id_maman sont rangés dans un check box dans la table t_enfant
    3. nom_enfant
    4. post_nom
    5. prenom
    6. sexe : doit recevoir une valeur booléenne et donc ça ce trouve aussi dans un check box et l'utilisateur doit entrer soit M ou F.
    7. date_naiss : le champs date qui est de format date/time ici l'utilisateur doit choisir une date dans un DateTimePick.


    Mon problème se situe à ce niveau quand j'entre les enregistrements vers la base de données en revenant côtés vb. Les enregistrements se trouvent dans le DataGridView mais si j'entre ces enregistrements côté vb l'ID m'envoie un message "type de données incompatible dans l'expression du critère " Voici le code pour mon bouton ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim d As New naissance()
    d.connexion.Open()
    d.cmd.CommandText="INSERT INTO t_child(ID_maman,nom,post_nom,prenom,sexe,date_naiss) VALUES(@ID_maman,@nom, @post_nom,@prenom, @sexe, @date_naiss)"
    d.cmd.Parameters.AddWithValue("@ID_maman",Me.ComboBoxIDM.Text) 
    d.cmd.Paramaters.AddWithValue("@nom",Me. txtNom.Text) 
    d.cmd.Parameters.AddWithValue("@post_nom",Me.Textboxnom.Text) 
    d.cmd.Parameters.AddWithValue("@prenom",Me.txtp.Text)
    d.cmd.Parameters.AddWithValue("@sexe",Me.ComboBoxsexe.Text) 
    d.cmd.Parameters.AddWithValue("@date_naiss",ComboBoxdate.Text) 
    d.cmd.Parameters.AddWithValue("@ID_enfant",Me.Txtidenf.Text) 
    d.cmd.ExecuteNonQuery()
    d.connexion.Close()
    MessageBox.Show("Enfant Bien Enregistré","Add",MessageBox. Buttons. OK, MessageboxIcon.Information)
    d. remplirDataGridVieuw("SELECT * FROM t_child",DataGridVieuw_Enfant)
    Quelqu'un peut m'aider svp...

    J'ai l'impression que ces les deux champs entre autre le sexe qui doit recevoir une valeur booléenne et le format de la date qui font défaut.
    Espérant à votre aide je tiens à vous informer que je suis encore débutant....
    Je ne sais pas si je fournis toutes les informations nécessaires pour mériter votre aide s'il y'a un soucis n'hésiter pas à m'informer.
    Merci d'avancer.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    novembre 2006
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 800
    Points : 4 115
    Points
    4 115

    Par défaut

    Bonjour,

    Le paramètre ajouté avec AddWithValue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d.cmd.Parameters.AddWithValue("@ID_maman",Me.ComboBoxIDM.Text)
    Doit être du même type que la base de donnée. Dans ce cas-ci vous donné toujours un paramètre de type String car c'est ce que renvoie la propriété Test des contrôles.
    Si le paramètre ID_maman est de type Integer, il vous faut faire le cast suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d.cmd.Parameters.AddWithValue("@ID_maman",CInt(Me.ComboBoxIDM.Text))

  3. #3
    Futur Membre du Club
    Homme Profil pro
    email
    Inscrit en
    janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : email

    Informations forums :
    Inscription : janvier 2018
    Messages : 12
    Points : 7
    Points
    7

    Par défaut

    Merci pour votre intervention bien sûr que oui Mon parametre ID_maman est de type intiger depuis ma base de données. J veux essayer ce que vous me dites pour voir si ça va marcher aussi pour formater la date avec access j'ai une DateTimePick où j dois sélectionner une date et l'afficher dans mon DataGridVieuw. Je fais comment svp. Quel code que je peux mettre derrière le DateTimePick ou même derrière mon bouton ajouter pour que ma date soit prise en charge. Merci d'avance....

Discussions similaires

  1. [Débutant] connexion base de donnée access en vb.net 2012
    Par rochap dans le forum Langages
    Réponses: 0
    Dernier message: 21/07/2018, 19h41
  2. Mise à jour des données Access par vb net
    Par Hervy dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/09/2015, 12h34
  3. Réponses: 3
    Dernier message: 12/05/2015, 16h21
  4. Réponses: 7
    Dernier message: 19/03/2013, 15h04
  5. [VB.NET] Composant utilisée pour changer donnée access
    Par moust dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/04/2005, 10h44

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