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 :

Probleme ajout une nouvelle ligne dans Access [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 57
    Points
    57
    Par défaut Probleme ajout une nouvelle ligne dans Access
    Bonjour,

    ça fait deux jours que je tourne en rond sur un problème avec une base de données Acces
    J'utilise un dataset pour insérer un nouvel enregistrement dans la base de données. La nouvelle ligne n'est pas créée dans Access. Voici le code pour me connecter à la base de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim path_bd As String
     
    path_bd = Application.StartupPath
     
    objetconnection=NewOleDb.OleDbConnection "Provider=Microsoft.ace.oledb.12.0; Data Source =" +  path_bd + "\Resources\Fonds.accdb")
    objetconnection.Open()
    objetcommand = New OleDb.OleDbCommand(commande_sql)
    objetadaptater = New OleDb.OleDbDataAdapter(objetcommand)
    objetcommand.Connection() = objetconnection
    objetdataset = New DataSet()
    objetadaptater.Fill(objetdataset, nom_table)
    objetdatatable = objetdataset.Tables(nom_table)
    Voici le code qui appelle la fonction de connection à la BD ainsi que la création de la nouvelle ligne d'enregistrement et la tentative pour l'injecter dans la base de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    objetdatarow = objetdataset.Tables("Encodage").NewRow()
    objetdatarow("Commentaires") = label1.text
    objetdatarow("Trimestre") = label2.text
    objetdataset.Tables("Encodage").Rows.Add(objetdatarow)
    objetcommandbuilder = New OleDb.OleDbCommandBuilder(objetadaptater)
    objetadaptater.Update(objetdataset, "Encodage")
    Lorsque j'analyse au pas à pas l'exécution du code, le programme semble exécuter la commande update mais lorsque je consulte la base de données il n'y pas de nouvel enregistrement.
    La procédure de connection fonctionne bien car je l'utilise pour remplir des combobox....
    j'ai pourtant suivi à la lettre les instructions dans le cours de plasserre.....

    d'avance merci pour vos réponses

    Madfox48

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Bonjour,

    Il nous faudrait la requête SQL contenue dans commande_sql.

    Je n'ai jamais utilisé le objetcommandbuilder mais pour ce que je lis sur le MSDN il ne fonctionne que sur des tables simples.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    bonjour infosam,

    voici la requete que j'utilise : La table "Encodage" a des liens avec d'autres tables.
    Aurais-tu une meilleur solution pour ajouter des enregistrements à une base de données?

    D'avance merci pour ta réponse.

    Madfox48

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Re-bonjour infosam,

    Autant pour moi, mais je ne regardais pas la bonne base de données. en effet, je consultais celle du répertoire resources plutôt que celle qui se trouvait dans le répertoire resources du folder "Bin\Debug".

    Par contre, au lieu de me rajouter une nouvelle ligne dans la base de données, le programme modifie la dernière ligne du tableau. pourtant, j'ai vérifié le nombre de ligne dans le dataset. dans celui-ci, je vois qu'il crèe une nouvelle ligne (je vérifie avec le nombre de ligne du dataset).

    aurais-tu une idée.

    d'avance merci pour tes conseils avisés.

    Madfox48

  5. #5
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Il crée une nouvelle ligne dans ton dataset d'accord. Mais est ce que les données se trouvent bien dedans ?
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 74
    Points : 94
    Points
    94
    Par défaut
    Bonjour

    je ne veux pass paser pour un troll, tu devrais peut-être chercher à utiliser une vraie BDD. Access rend les choses plus compliquées du fait qu'il n'interprète pas toutes les requêtes SQL.
    Avec une base données MySQL, tu aurais résolu ton problème juste avec cette toute petite requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO [MaTable] (Champ1, champ2, ...) VALUES (ValeurChamp1, ValeurChamp2...)
    Et question complexité, si tu as réussi à faire tout ça avec Accès, tu vas te croire en vacances à dev avec une BDD MySQL.
    A cela ajoute que peux aussi protéger l'accès à ta BDD avec un user et un mdp dédiés, ce qui n'est pas le cas de la bdd access.

    Après, si on t'a imposé de travailler avec Access, c'est sûr que tu n'as pass le choix. Mais sache quand même qu'on peut importer une table MySQL très facilement dans Access. Je te donne le lien car en général, on trrouve des discutions de gens qui veulent faire l'inverse, prendre le base de donnée access et se sauver dans MySQL pour travailler.
    Comment importer ou relier des bases de données MySQL avec Access?
    Pensez à mettre le topic en si votre problème a été solutionné. / Un petit est le bien venu si la réponse vous satisfait
    Ce qui mérite d'être fait mérite d'être bien fait.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Bonjour Infosam et Phoenellion,

    tout d'abord merci pour vos interventions.
    Infosam, effectivement les nouvelles données se retrouvent bien dans la base de données. Donc j'ai retiré ma base de données des ressources du programme. Grosse erreur de ma part vu que la base de données doit être accessible par plusieurs utilisateurs.

    Merci Phoenellion pour tes conseils avisés sur les bases de données. effectivement je suis tenu de travailler avec Access.

    j'ai une dernière petite question : j'ai remarqué qu'il était possible de lier des contrôles avec une base de données (je pense qu'on appelle ce principe le "binding"). Pourriez-vous me conseiller de la documentation en ligne sur ce sujet?

    d'avance merci pour vos réponses....

    Madfox48

  8. #8
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Pour cela tu peux faire une recherche sur les objets DataSet, DataAdapter, etc tu trouveras cela assez facilement.

    Mtn j'ai lu à plusieurs reprises sur le forum qu'il existait l'Entity Framework pour les accès DB qui était plus efficace mais je ne l'ai pas encore étudié.

    Je vais te mettre en lien une bête application qui joue un peu avec le binding (sauf que je remplis le Dataset via programmation) ca te donnera une vision de la chose. Attention c'est une application non aboutie faite suite à une demande d'une personne sur le forum. Il y a moyen de faire mieux.
    Fichiers attachés Fichiers attachés
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Merci Infosam pour tous les renseignements fournis.

    Madfox48

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

Discussions similaires

  1. Ajout une nouvelle ligne dans DataSet
    Par FITRI dans le forum C#
    Réponses: 2
    Dernier message: 10/12/2011, 10h12
  2. ajout de nouvelle lignes dans une DATAGRID
    Par yayasam dans le forum Windows Presentation Foundation
    Réponses: 12
    Dernier message: 23/04/2010, 18h36
  3. Réponses: 2
    Dernier message: 06/02/2007, 09h17
  4. Réponses: 18
    Dernier message: 26/07/2006, 14h51
  5. Réponses: 2
    Dernier message: 07/12/2005, 16h26

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