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 :

Progressbar et base de donnée Access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut Progressbar et base de donnée Access
    Bonjour à tous,

    Je suis bloqué dans la rédaction du code de ma progressbar, qui devrait augmenter en fonction du déplacement dans ma base de donnée.

    Je dispose d'une base de donnée (Access) qui regroupe plusieurs enregistrements. Dans ma form1 (lecture des enregistrements) j'ai un datragridview et les boutons de navigation (movefirst, movelast etc.)
    Ces boutons font le job, me déplace bien dans mes enregistrements et tous mes champs associés se remplissent correctement.

    Maintenant je souhaiterai connaitre ma position par rapport au nombre d'enregistrement contenue dans la base de donnée. (je souhaite rendre invisible mon datagridview)
    Pour faire simple,
    - je souhaite que dans un label je puisse lire ma position : 3 sur 30 enregistrements;
    - que ma progressbar ce soit déplacée et affiche 10%.

    (Sur VB6, j'y suis arrivé, mais en VB.NET, je suis encore novice)

    Quelqu'un pourrait me donner la direction a suivre SVP.

    En vous remerciant par avance.

    Christian

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,


    Une ProgressBar a une valeur Minimale, un valeur Maximale, un Increment et une Valeur actuelle.

    Je suppose que dans ton cas ces valeurs sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            MaProgressBar.Minimum = 0
            MaProgressBar.Maximum =  ... le nombre d’enregistrements de ta DB
            MaProgressBar.Value = ... le "numéro" d'enregistrement en cours de lecture
            MaProgressBar.Increment( ... je dirai 1 ici car on considère les enregistrements un à un , mais cette valeur n' peut-être pas nécessaire ici)
    Quant à écrire la valeur dans un Label : LeLabel.Text = MaProgressBar.Value.

    Pour l'écrire en % : LeLabel.Text = MaProgressBar.Value * 100 / (MaProgressBar.Maximum - MaProgressBar.Minimum) (à vérifier ...).


  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut Progressbar et base de données
    Bonjour Phil Rob,

    merci pour ton message et ton petit bout de code. Il fonctionne bien évidemment, sauf si on continue d'appuyer sur le bouton "MoveNext" alors la "progressbar" se déplace toujours même s'il n'y a plus enregistrement.
    Pour y remédier j'ai indiqué a ma "progressbar" qu'elle devait prendre la valeur indiqué dans le label.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Sub Btn_Next_Click(sender As Object, e As EventArgs) Handles Btn_Next.Click
     
            'deplace de 1 les enregistrements
            BataillesBindingSource.MoveNext()
            ProgressBar1.Value = N_TextBox.Text
     
     
        End Sub
    Ce code collé dans mes 4 btn gérant les déplacements dans ma base.


    Maintenant, je souhaiterais que la "progressbar.maximum" ne soit pas figer (progressbar.maximum = 100) mais évolue en fonction de la création d’enregistrement. D’où l’intérêt de l'affichage en % demandé dans mon premier post.

    Je ne sais pas s'y je suis claire. En tout cas c'est que j'avance petit a petit.

    Merci encore pour ton aide, et si cela pouvais continuer.

    Merci et bonne journée.

    Christian.

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour Christian,
    Je manque de temps là tout de suite, mais je te donne 2 pistes :
    Là propriété de la valeur maximale peut être modifiée en cours d'ajout, de sorte à n'être jamais inférieure au nombre d'enregistrements.
    Par ailleurs, la Value peut être affectée dans un If... Then ... de sorte à être ajustée comme cela te convient.

    Bonne journée

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut Progressbar et base de données
    Bonsoir,

    Mon problème de comptabilité est résolu. Merci pour m'avoir donné" des pistes.

    Maintenant un autre problème arrive sur le BTN Save. Si j'effectue une modification dans un champ, j'obtiens le message d'erreur suivant :

    "Une Requête Update ou delete ne peut pas contenir un champ à plusieurs valeurs."

    Même si je remplie un champs vide j’obtiens cette même erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Sub Btn_Save_Click(sender As Object, e As EventArgs) Handles Btn_Save.Click
            On Error GoTo SaveErr
            BataillesBindingSource.EndEdit()
            BataillesTableAdapter.Update(LES_BATAILLES_2GMDataSet.Batailles)
     
    SaveErr:
            Exit Sub
        End Sub
    Aurais tu un début de solution.

    Bonne soirée.

  6. #6
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour Christian,

    Sauf à prendre le message d'erreur au mot à mot (et bien entendre ce qu'il dit), nul ne pourra t'aider sans en savoir plus ...

    Dans la procédure que tu postes, il y a un On Error Goto SaveErr, étiquette sous laquelle on trouve un Exit Sub. Rien là dedans n'est prévu pour afficher un message. Alors où est produit ce message d'erreur ?
    Le texte du message (me) laisse entendre qu'un des champs de la table est une liste de choix. Si c'est bien le cas, il faut trouver une autre manière de faire la mise à jour (ça je ne connais pas). Si ce n'est pas le cas, c'est qu'il y a une erreur dans la requête sous-jacente : tu devrais poster tous les codes SQL liés au BataillesBindingSource.

    J'espère que d'autres pourront te donner des informations plus pertinentes ...


  7. #7
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonsoir,

    Je vois que tu as clôturé l'autre discussion à propos de l'Update de la DB, aurais-tu trouvé l'erreur ?

    Si non, ne peux-tu envoyer ta DB (ou une partie fonctionnelle) ainsi que tous les codes SQL, à moins qu'il s'agisse au niveau de VB, d'un DataSet créé avec l'assistant, sans production de code SQL. Dans ce cas, c'est le projet complet que tu devrais poster. Note que si tu ne veux pas "publier" ce projet, tu peux le déposer sur DropBox ou Drive, et envoyer le lien par message privé à qui tu veux, mais seulement à qui tu veux bien.

    Je ne promets aucun résultat, mais si j'en ai la possibilité, je chercherai ...

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut Progressbar et base de donnée Access
    Bonsoir,

    j'ai réussi a trouver le code pour la progress bar et son évolution.
    Mais je me suis heurté à un plus gros problème, celui de la sauvegarde des données dans la base. A force de tester, modifier, réécrire, j'ai fini par supprimer le projet en cour et revenir à ma première sauvegarde.

    Donc, je vais essayer de vous faire parvenir le dossier du projet avec la BD. Il n'y a qu'un seul enregistrement, mais les Btn sont utilisable.

    Le problème que je n'arrive pas a résoudre est le suivant :

    Je crée un nouvel enregistrement, qui apparaît dans le datagrifview.
    Lorsque je veux le sauvegarder, l'erreur suivante apparaît :
    System.Data.OleDb.OleDbException*: 'Une requête INSERT INTO ne peut pas contenir un champ à plusieurs valeurs.
    Voila. Merci pour votre temps passé a essayer de me faire progresser en VB.NET. Ci-dessous le liens pour voir le dossier.
    https://www.dropbox.com/sh/gf35grbow..._x7ritQea?dl=0

    Cordialement.

  9. #9
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Re,

    Bien reçu le dossier et décompressé.
    En première compilation, j'ai des erreurs de compilation en rapport avec les images en ressources.
    J'y regarderai demain.

    Bonne nuit ...

  10. #10
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut Progressbar et base de donnée Access
    Bonjour,

    et tout d'abord merci de prendre de votre temps pour m'aider.

    J'ai remis le dossier complet, avec les premières images de mon projet.

    https://www.dropbox.com/sh/gf35grbow..._x7ritQea?dl=0

    voici le liens.

    Merci encore.

    Cordialement.

  11. #11
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Ton programme a été difficile à exécuter, en particulier parce que tes Form fixés ont manifestement été conçus pour un écran plus grand que le mien. Ce n’est qu’après suppression des GroupBox encore inutiles et la réduction de la taille des Form que j’ai pu exécuter. Attention, ton programme ne pourra pas fonctionner sur n’importe que écran.

    Ensuite, d’autres difficultés, telles que des noms de boutons (inexistants ?) dans le Form_Enregistrement, …, bref j’ai fini par exécuter et j’ai fait mes essais uniquement avec le Form_Lecture, dans lequel j'ai recopié ta procédure d'AddNew.

    Bien entendu j’ai rencontré la même erreur que toi et j’ai finalement trouvé son origine.
    Dans la DB, le champ Image est de type « Pièce jointe ». En supprimant ce champ et en le remplaçant par un champ Image de type « Text Court », l’erreur disparait. Le lien vers le fichier peut être enregistré en "Text Court" contenant le chemin du fichier.

    Dans ta DB :
    Nom : DB1.png
Affichages : 270
Taille : 33,2 Ko

    Après modification :
    Nom : DB2.png
Affichages : 268
Taille : 28,4 Ko

    Voilà donc la réponse au message d’erreur.
    Mais tu n’es pas hors des problèmes avec ton programme …
    Je crois que ton utilisation des outils mis en place par l’assistant DB n’est pas correcte. Il te faut sans doute réviser leur mode d’emploi. Personnellement, je n’y connais pas grand chose, j’ai toujours programmé moi-même les connexions, lectures et mises à jour des DB.

    Enfin, j’espère que ceci te permettra de faire un pas de plus …

  12. #12
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut Progressbar et base de donnée Access
    Bonsoir,

    Merci pour avoir bien voulu te pencher sur ce problème. Je n'aurais jamais pensé à regarder mes champs dans ma base de donnée.

    J'ai pris l'habitude avec VB6 d'utiliser les assistants pour travailler avec des bases de données. Et en réalité, lorsque je regarde la programmation d'une base uniquement avec du code, cela me fait un peu peur.
    Pour ce qui est de l’écran, mon projet est d'abord personnel, voila pourquoi je n'ais pas pris le temps d'y regarder de plus prés ni de prévoir de déploiement externe.

    Comme j'ai dit, j'ai repris une ancienne sauvegarde suite à mes tentatives de résolution de ce problème. Maintenant que mon soucis trouve une issue, je vais pouvoir avancer et peut être pouvoir mener à bien ce petit projet.

    Je garde en mémoire, l'idée d'écrire mes propres BD et leur gestion sans ces assistants.

    Je pense également que le soucis d’écriture dans la base de donnée venait de cette erreur. Donc, je vais reprendre depuis le début les form et mettre à jour les boutons etc. Modifier ma base. Remettre ma progressbar également.
    En espérant que lors de l'ajout d'un enregistrement, la partie sauvegarde ne provoquera plus de problème.

    Comme tu le dit, j'ai encore pas mal de boulot.

    Merci a toi et passe un bon week end.

    Cordialement.
    Christian.

  13. #13
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Bon courage …

    A toutes fins utiles, je t’envoie 2 projets de tests d’accès à une DB Access par programmation. Dans ces exemples les DB ne sont pas créées en VB mais bien avec Access. En VB, on ne fait que lire les données avec le projet TestAccesDBSQLExpress, et les gérer complètement avec le projet MonStockFR.

    TestAccesDBSQLExpress ==> TestAccesDBSQLExpress.zip
    MonStockFR ==> MonStockFR.zip

    Ces projets ne sont que des exemples didactiques du travail avec les DB et ils ne sont exempts de petits bugs sur des détails hors DB.

    Les videos suivantes illustrent l’usage de l’un et l’autre projet :

    TestAccesDBSQLExpress ==> https://www.dropbox.com/s/m681rf5kag...ccess.mp4?dl=0
    MonStockFR ==> https://www.dropbox.com/s/nta8715iwc...ockFR.mp4?dl=0

    Pour le projet TestAccesDBSQLExpress, il faut modifier le chemin d’accès à la DB qui sera forcément différent sur ton PC.

    Pour le projet MonStockFR qui est assez complet, je te propose de lire le fichier Explications.pdf qui est dans le dossier avant d’ouvrir le code. A noter que dans ce projet, la DB et les images sont stockées dans DB_Et_Images qui est un sous-dossier de celui contenant l’exécutable (voir l’illustration OuEstLaDB.jpg qui est également dans le dossier).
    Ce projet « complet » comporte une procédure à l’algorithme difficile (Traitement_Click) qui gère les choix entre Ajouter, Modifier et Supprimer les enregistrements dans la DB. Ces choix peuvent être gérés de manière plus simple.

    Bonne séance cinéma et bon amusement …

  14. #14
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Par défaut
    Bonjour phil,

    J'ai effectué toutes les modifications et mis a jour mes btn. Tout fonctionne. Il me reste, à insérer, les liens vers les sites WIKI, les images des drapeaux en fonction des pays concernés et les photos des chefs de guerre.

    Merci pour toute l'aide que tu à bien voulu m'apporter.
    Merci également pour les Zip que je ne manquerais pas de lire dans les jours avenir.

    Très content également de ce forum ou l'on échange réellement son savoir et sur lequel on peut obtenir de l'aide.

    Merci encore et a bientôt.

    Christian.

  15. #15
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bien sûr que tu dois lire mes zip et regarder mes vidéos !!! Même si tu ne t'appropries pas ces techniques ensuite ...

    Merci pour le feedback, c'est sympa.

    A la prochaine,

    Phil

Discussions similaires

  1. Accès aux bases de données Access
    Par xela dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/12/2004, 09h07
  2. [débutant] Connection à une base de donnée Access
    Par Lorenzox dans le forum JBuilder
    Réponses: 1
    Dernier message: 25/10/2004, 16h28
  3. Réponses: 15
    Dernier message: 25/10/2004, 11h50
  4. [Déploiement]Base de donnée Access
    Par Giovanny Temgoua dans le forum Bases de données
    Réponses: 9
    Dernier message: 09/08/2004, 20h48
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

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