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 :

Chargement et sauvegarde d'une table Access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Par défaut Chargement et sauvegarde d'une table Access
    Bonjour à tous,
    dans mon programme, je dispose de 9 IHM et je dois sauvegarder toutes les informations rentrées par un utilisateur dans une base de données Access (ici : BDDContrat).
    J'ai donc dans le bouton "Quitter" de mon programme principal, toutes les sauvegardes des tableaux de mes forms dans la BDD.
    Dans le load de ma form principale (principal.vb), j'ai tous les chargements de la BDD.
    J'ai un problème avec un chargement : celui de la table Batteries.
    Voici le code :
    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
     
        Private Sub chargementTableBatteriesDeBDDdansTableau()
            Dim o_table_batteries As New BDDContratDataSet1.BatteriesDataTable() 'nomProjetDataSet.nomTableDataTable
            Dim o_ta As New BDDContratDataSet1TableAdapters.BatteriesTableAdapter() 'nomProjetDataSetTableAdapters.nomTableTableAdapter
            Dim i As Integer
            'transfert en provenance de bdd
            o_ta.Fill(o_table_batteries)
            'remplissage du tableau
            For i = 0 To o_table_batteries.Rows.Count() - 1
                Dim batterie As New Fonctions.C_Batteries()
                batterie.setNumBatteries(o_table_batteries.Rows(i).Item("numBatteries"))
                batterie.setPresenceBatteriesO(o_table_batteries.Rows(i).Item("présenceBatteriesO"))
                batterie.setPresenceBatteriesN(o_table_batteries.Rows(i).Item("présenceBatteriesN"))
                batterie.setNombreBatteries(o_table_batteries.Rows(i).Item("nombreBatteries"))
                batterie.setCapacitéBatteries(o_table_batteries.Rows(i).Item("capacitéStockage"))
                't_huitième est le tableau correspondant à la form batterie
                t_huitième(i) = batterie
            Next
        End Sub
    Mes autres procédures de chargement sont exacement pareils, à l'exception bien entendu des noms des variables et des fonctions.

    En lançant le programme, il plante et j'ai une erreur OleDBException sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    o_ta.Fill(o_table_batteries)
    Mais je ne vois pas de quoi cela peut venir...

    Pour info, voici le code de mon load (de la form principal, principal.vb) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Principal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            chargementTableClientDeBDDdansTableau()
            chargementTablePropriétaireDeBDDdansTableau()
            chargementTableSituationGeographiqueDeBDDdansTableau()
            chargementTablePanneauxDeBDDdansTableau()
            chargementTableOnduleurDeBDDdansTableau()
            chargementTableAutorisationDeBDDdansTableau()
            chargementTableProtectionDeBDDdansTableau()
            chargementTableBatteriesDeBDDdansTableau()
            chargementTableContratFourniDeBDDdansTableau()
    J'ai un autre problème, mais j'aimerais tout d'abord réussir à résoudre celui-ci.

    Merci de m'aider !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Par défaut
    Bonjour

    Et que dit l'erreur? (c'est balot, t'as donné plein d'info sauf l'erreur)

    Nasty

  3. #3
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    tu peut mettre le message d'erreur "OleDBException" ? *stp*

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Par défaut
    L'exception OleDBException n'a pas été gérée
    Aucune valeur fournie donnée pour un ou plusieurs des paramètres requis.
    Je comprends pas pourquoi, étant donné que le load charge la BDD vide, c'est normal qu'il n'y a aucune valeur. Plus surprenant, mes autres chargement utilisent le MEME code, et pas d'erreurs...

    Merci

    Edit :
    Si ça peux vous aider, voila la déclaration des tableaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Public Class Principal
        Public t_principal(10000) As Fonctions.C_Client
        Public t_secondaire(10000) As Fonctions.C_Propriétaires
        Public t_tertiaire(10000) As Fonctions.C_SituationGeographique
        Public t_quatrième(10000) As Fonctions.C_Panneaux
        Public t_cinquième(10000) As Fonctions.C_Onduleur
        Public t_sixième(10000) As Fonctions.C_Autorisation
        Public t_septième(10000) As Fonctions.C_ProtectionDecouplage
        Public t_huitième(10000) As Fonctions.C_Batteries
        Public t_neuvième(10000) As Fonctions.C_Contrat
        Dim i As Integer = 0

  5. #5
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    le load charge la BDD vide
    je vois pas l'intérêt ...
    aprés effectivement si le code marche sur les autres mais pas sur celle la c'est bisare....

    je me souviens qu'il fallait absolument une clé primaire a mes bases *pour je sais plus exactement pourquoi*
    sinon il me générais une erreur, p-e que sa peut venir de la ...

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Par défaut
    Citation Envoyé par hunteshiva Voir le message
    je vois pas l'intérêt ...
    aprés effectivement si le code marche sur les autres mais pas sur celle la c'est bisare....

    je me souviens qu'il fallait absolument une clé primaire a mes bases *pour je sais plus exactement pourquoi*
    sinon il me générais une erreur, p-e que sa peut venir de la ...
    Pour l'intérêt, c'est mon prof qui m'a dit de faire comme ça. Afin de visualiser la BDD. J'essayerais sans les chargement.
    Sinon, j'ai bien mis une clé primaire pour toutes mes tables (de toute façon, Access empêche la création de table sans clé primaire).

    La clé primaire est pour cette table NumBatteries. J'utilise un Num pour toutes mes tables que j'incrémente à chaque nouveau client.

    Le code (peut-être un problème à ce niveau la) :
    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
     
    FicheCollecte.t_client = t_principal
            FicheCollecte.numCli = i
            FicheCollecte.ShowDialog()
            Propriétaire.t_proprio = t_secondaire
            Propriétaire.numProprio = i
            SituationGeographique.t_situGéo = t_tertiaire
            SituationGeographique.numSituGéo = i
            panneaux.t_panneau = t_quatrième
            panneaux.numPanneaux = i
            Onduleurs.t_onduleur = t_cinquième
            Onduleurs.numOnduleur = i
            AutorisationUrbanisme.t_autorisation = t_sixième
            AutorisationUrbanisme.numAuto = i
            Protection.t_protection = t_septième
            Protection.numProtec = i
            Batteries.t_batterie = t_huitième
            Batteries.numBatterie = i
            ContratFourniture.t_contratFourni = t_neuvième
            ContratFourniture.numContratFourni = i
    Merci de ta (petite) contribution

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Par défaut
    Bonjour,

    Je ne vois pas le code de chargement, quelle est la requête que tu effectue sur la BD. En fait quels sont les noms des champs de ta table batterie dans ta BD car si le nom d'un de tes champs correspond à un mot réservé de VB ou du framework tu vas avoir ce genre d'erreur. J'ai galéré trois jour car j'avais un champs section dans une table et section est un mot du framework.

    A+

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

Discussions similaires

  1. [AC-2010] VBA - sauvegarder une table ACCESS en format EXCEL sans ouvrir EXCEL
    Par LiseUEMPT dans le forum Access
    Réponses: 2
    Dernier message: 22/05/2015, 16h23
  2. Récupérer les mails Outlook dans une table Access
    Par zerrokooll dans le forum VBA Access
    Réponses: 79
    Dernier message: 07/07/2009, 14h22
  3. Sauvegarde d'une table dans une base de données Access
    Par h_adil dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/05/2008, 21h26
  4. chargement d'un combobox à partir d'une table access
    Par sarah_s dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/05/2007, 17h19
  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