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 :

Passage d'ACCESS à VISUAL STUDIO (VB) pour la gestion de données.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2020
    Messages : 19
    Par défaut Passage d'ACCESS à VISUAL STUDIO (VB) pour la gestion de données.
    Bonjour,

    J'utilise access pour la gestion de données (grosse base, avec beaucoup de formulaire, de requête, ... ) , et depuis peu, je rencontre quelques souci lors de mise a jour Windows. Microsoft m'a conseillé de me tourner vers un serveur SQL pour la gestion de mes données, car ACCESS finira tôt ou tard par être arrête. (moins d'une dizaine d'année).

    J'ai donc mis en place un SQL SERVER, et je commence a travailler sur le projet de développer en VISUAL BASIC (je suis plus a l'aise avec VB) des applications pour la gestion de mes données via des appli WINDOWS FORMS .

    Coté liaison avec le serveur SQL, tout va bien, ça fonctionne super bien, et surtout beaucoup plus rapide au niveau d’accès au données. (merci au FORUM, ça m'a beaucoup aider)

    Ma question porte sur l'affichage des données.
    Sous access, mon formulaire et en mode "CONTINU" , à la création, je place mes champs sur une ligne (ou deux, suivant la présentation), et en mode affichage, mon formulaire répète autant de fois ma ligne qu'il y a de données . (j’espère me faire comprendre).

    Sous VB, je ne comprend pas comment je peux réaliser ce type d'affichage .

    Voici une capture d'écran d'un formulaire acces en mode création (mode continu)
    Nom : acces-creation.png
Affichages : 1491
Taille : 16,7 Ko

    Et voici le resultat lors de l'affichage des données.
    Nom : acces-affichage.png
Affichages : 1523
Taille : 36,0 Ko


    Merci pour aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Hello,

    De mon avis un datagridview fera bien le job.
    C'est facile de lui lier une table, d'y mettre des champs texte, case à cocher, bouton.
    On peut éditer/ajouter/supprimer directement les données dedans, ou pas, selon la manière dont tu conçois la truc (moi je préfère un formulaire d'édition dédié).

    Enfin bref, renseignes toi un peu sur les datagridview et comment les lier à une table et si tu as besoin d'info plus détaillées je t'aiderai

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2020
    Messages : 19
    Par défaut datagridview
    Merci pour la réponse, niveau relation avec une table, requête, mise a jour, ... tout ça j'utilise déjà, il n'y a pas de problème, ce que je cherche c'est le mode d'affichage des données, avec le datagridview, j'affiche les donnés soit en tableau, soit 1 seul enregistrement.

    Je voudrais que les données s'affiche "en ligne", mais pas comme un tableau. (je vais essayer d’être plus précis)

    Nom : acces-creation 2.png
Affichages : 928
Taille : 44,3 Ko

    Sur ce formulaire access, il y a plusieurs champs a différente "hauteur", qui correspond à 1 ligne (1 enregistrement) , a l'affichage des données, si il y a 6 enregistrements, cette ligne sera affichée 6 fois .

    Je recherche sur le DATAGRIDVIEW, voir si il n'y a pas une config pour faire ça, mais je trouve pas. peut être qu'il existe un DATALINECONTINU (ça serai super, HI HI)

    Merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    D'accord mais c'est quoi?
    Un croisement de table?
    Une recherche sur une clé ??

    Si dans Access tu as déjà une requête qui construit le dataset, tu peux la réutiliser en .NET pour populer un dataset que tu affiches ensuite dans un datagrid...
    Ou alors je n'ai pas bien compris

  5. #5
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2020
    Messages : 19
    Par défaut je me fais pas comprendre !!
    Désolé mais je n'arrive pas a me faire comprendre.

    Mon souci n'est pas la source des données, c'est la présentation a l’écran .

    Un DataGridView affiche comme un tableau, un "détail" affiche des textbox (1 textbox par champ) (dans la copie suivante, les textbox sont les uns en dessous des autres, mais il faut les imaginer cote a cotes ou en quinconce)

    Nom : affiche gridview.png
Affichages : 905
Taille : 42,6 Ko

    En utilisant le mode "detail", 1 seul enregistrement apparaît, comment faire apparaître plusieurs enregistrent les un en dessous des autre en gardant la même présentation que le premier.

    je sais c'est pas simple.

    Merci en tout cas a ceux qui se penche sur mon sujet.

  6. #6
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Tu veux afficher dans le datagrid plusieurs éléments... et quand tu cliques sur un des éléments, afficher tous ses détails dans des textbox....?
    C'est tout à fait possible....

    Tu mets un datagrid qui n'affiche que les éléments que tu veux.
    Avec un event "on cell click" tu envoie les données correspondantes dans les textbox....

    Si je n'ai toujours pas compris je ne peux plus rien pour toi :p

  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
    Bonjour,

    Je ne sais si j'ai bien compris le problème mais voici :

    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
     
     
    Dim MonDataTable As New DataTable
     
    ' MonDataTable est rempli par l'exécution d'une requête (SELECT * FROM ...) avec un OleDbAdapter (ou SqlAdapter, ou ...).
    ' ... ... ...
     
    ' Le DGV présente tous les enregistrements de MoDataTable
     
            DGVTest.DataSource = MoDataTable
     
    ' Le ComBoBox est rempli avec les valeurs d'un champ donné et présente la valeur correspondante de l’enregistrement sélectionné à un moment donné
     
            CBTest.DataSource = MoDataTable
            CBTest.DisplayMember = "LeNomDuChampsQueJeVeuxAfficherIci"
     
    ' Le ListBox est rempli avec les valeurs d'un champ donné et sélectionne la valeur correspondante de l’enregistrement sélectionné ailleurs
     
            LBTest.DataSource = MoDataTable
            LBTest.DisplayMember = "LeNomDuChampsQueJeVeuxAfficherIci"
     
    ' Le TextBox présente la valeur du champ qu'on lui désigne de l’enregistrement sélectionné ailleurs
     
            TBTest.DataBindings.Add("Text", MoDataTable, "LeNomDuChampsQueJeVeuxAfficherIci")
    Si ceci ressemble à ce que tu cherches, j'ai un projet exemple pour te permettre de tester.

    ...

  8. #8
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    Citation Envoyé par FrancoisHE Voir le message
    Bonjour,

    J'utilise access pour la gestion de données (grosse base, avec beaucoup de formulaire, de requête, ... ) , et depuis peu, je rencontre quelques souci lors de mise a jour Windows. Microsoft m'a conseillé de me tourner vers un serveur SQL pour la gestion de mes données, car ACCESS finira tôt ou tard par être arrête. (moins d'une dizaine d'année).

    J'ai donc mis en place un SQL SERVER, et je commence a travailler sur le projet de développer en VISUAL BASIC (je suis plus a l'aise avec VB) des applications pour la gestion de mes données via des appli WINDOWS FORMS .

    Coté liaison avec le serveur SQL, tout va bien, ça fonctionne super bien, et surtout beaucoup plus rapide au niveau d’accès au données. (merci au FORUM, ça m'a beaucoup aider)

    Ma question porte sur l'affichage des données.
    Sous access, mon formulaire et en mode "CONTINU" , à la création, je place mes champs sur une ligne (ou deux, suivant la présentation), et en mode affichage, mon formulaire répète autant de fois ma ligne qu'il y a de données . (j’espère me faire comprendre).

    Sous VB, je ne comprend pas comment je peux réaliser ce type d'affichage .

    Voici une capture d'écran d'un formulaire acces en mode création (mode continu)
    Nom : acces-creation.png
Affichages : 1491
Taille : 16,7 Ko

    Et voici le resultat lors de l'affichage des données.
    Nom : acces-affichage.png
Affichages : 1523
Taille : 36,0 Ko


    Merci pour aide
    Tu dois te mettre à lire avec attention la librairie d'aide MSDN Lib fr,le sésame s'y trouve ,il suffit de quelques clicks.


    Etape 1 :se lier (se binder à ta BD Sql
    Menu Outils -> Ajouter un Nouvelle Connexion et suivre le wizard(sorcier assistant).
    NB: à la question voulez vous copier la source de donner répondre NON dans la boite de dialogue surgissante.
    A la fin : un dataset, un adapter, un bindingsource et un BindingNavigator sont créés dans ton formulaire.

    Etape 2 :afficher la source de données
    Menu Outils -> Afficher la Source de Donnée
    Dans le volet Source de Donnes(à gauche et en dessous du volet des controls) s'affiche ta table et ses champs.
    Il suffit de droper tes champs sur le Form et les disposer à la manière qui te convient.
    le BindingNavigator est très utile: il permet de naviguer dans les enregistrements de bout en bout.
    Le bouton de sauvegarde (icone cassette ) sert à sauvegarder les données en base de données.

    NB: ne pas toucher au code du code "autogénéré" par le designer VS en bonus ( "bonux").

    Ce lien MSDN intitulé(Lier des contrôles Windows Forms à des données dans Visual Studio ) est "self explanatory" avec des captures d'écran:
    https://docs.microsoft.com/fr-fr/vis...o?view=vs-2019


    bon code...

  9. #9
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2020
    Messages : 19
    Par défaut merci pour vos reponse
    Bonjour,

    Merci pour la réponse, mais je m'explique vraiment mal, car peu de gens comprennent.

    Concernant la liaison de dB avec mon form, ca je connais !! je sais faire

    Mettre en place les champs de ma base sur le form, pareil, je sais faire.

    La méthode que me propose n'affiche qu'un seul enregistrement a la fois, et il faut utiliser le BindingNavigator pour voir l'enregistrement suivant, qui s'affiche a la même place.

    Moi, je veux que si ma base (ou le résultat de ma requête (SVP, m'expliquez pas comment faire une requête, ce n'est pas le sujet, je sais faire) comprend 5 enregistrements, les 5 enregistrements s'affichent les un en dessous des autres en recopiant le même positionnement. OK un DataGridView fait ça, mais on ne peut pas modifier la présentation, tout reste une seul ligne, je voudrais que 2 champs d'un même enregistrement puissent être l'un sur l'autre.


    un exemple de présentation :


    ***********************************************************
    _______________________________Code Postal ____(1 champ)
    ID____Nom________PRENOM_________ VILLE___(1 autre champ)
    ***********************************************************
    _1___Machine_______Nath____________75000
    __________________________________PARIS
    ***********************************************************
    _2____Bidule______Christophe_________14000
    ___________________________________CAEN
    ***********************************************************
    _3____Truc_________Florence_________67000
    _________________________________Strasbourg
    ***********************************************************



    MERCI

  10. #10
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    OU EST TON PROBLEME ?
    IL SUFFIT DE SELECTIONNER ET RE-DISPOSER COMME SUIT CHAMPS TEXTE ET LABELS SUR TON FORM:
    _______________________________Code Postal ___(label)
    ID____Nom________PRENOM_________ VILLE___(label)
    _1___Machine_______Nath____________75000 (textbox)
    __________________________________PARIS (textbox)

    BON CODE...

  11. #11
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2020
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2020
    Messages : 19
    Par défaut
    Mais il y aura que 1 fois les TextBox d'afficher correspondant a 1 seul enregistrement.

    MON PROBLEME (moi aussi jd peu crier)

    Je veux afficher plusieurs enregistrement en meme temps !!!!!

    Un textbox est UNIQUE, je veudrai que mes textbox se repete pouf afficher plusieurs lignes = plusieurs enregistrements.

    Mais visiblement il n'existe pas de composants qui fasse ca.

    Il faudrait pouvoir modifier la structure du DataGridView, ou alors reussir a creer un nouveau composant style gridview mais presenter autrement. Mais la ca me depasse.

    Edt il possible de voir le code du DataGridView? Pour le retravailler

  12. #12
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Citation Envoyé par FrancoisHE
    Moi, je veux que si ma base (ou le résultat de ma requête (SVP, m'expliquez pas comment faire une requête, ce n'est pas le sujet, je sais faire) comprend 5 enregistrements, les 5 enregistrements s'affichent les un en dessous des autres en recopiant le même positionnement. OK un DataGridView fait ça, mais on ne peut pas modifier la présentation, tout reste une seul ligne, je voudrais que 2 champs d'un même enregistrement puissent être l'un sur l'autre.
    Si tu veux que le DataGridView affiche le contenu de deux colonnes de base l'une au dessus de l'autre dans la même cellule, il faut que ces deux colonnes soient dans cette configuration dans la requête qui fournit les données de binding.
    Dans ta requête :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    Select CONCAT(CodePostal,'\r\n',Ville) as CPVille from ....

    Ensuite, il suffit d'activer le wordwrap sur le DataGridView
    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridView1.Columns(0).DefaultCellStyle.WrapMode = DataGridViewTriState.True

  13. #13
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    Citation Envoyé par FrancoisHE Voir le message
    Mais il y aura que 1 fois les TextBox d'afficher correspondant a 1 seul enregistrement.

    MON PROBLEME (moi aussi jd peu crier)

    Je veux afficher plusieurs enregistrement en meme temps !!!!!

    Un textbox est UNIQUE, je veudrai que mes textbox se repete pouf afficher plusieurs lignes = plusieurs enregistrements.

    Mais visiblement il n'existe pas de composants qui fasse ca.

    Il faudrait pouvoir modifier la structure du DataGridView, ou alors reussir a creer un nouveau composant style gridview mais presenter autrement. Mais la ca me depasse.

    Edt il possible de voir le code du DataGridView? Pour le retravailler
    ce que tu veux n'est pas possible avec les controls winforms existants.
    Le code source du DataGridView se trouve à cette adresse Microsoft :
    https://referencesource.microsoft.com/

    Tu peux voir avec les controls winforms mais en technologie Wpf si tu veux explorer un autre monde.
    Il est parfaitement possible de "customizer" à satiété l'interface de n'importe quel control winforms Wpf et plus facilement .

  14. #14
    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
    Excellent Popo !

    Y a plus qu'à améliorer la gestion de la hauteur de la ligne, mais ta solution devrait plaire à FrançoisHE.

    Nom : DGVInv.jpg
Affichages : 851
Taille : 40,6 Ko

    Phil

  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
    Si je peux en rajouter, au risque de saouler le monde, je rappellerai qu'un DataGridView n'est au fond qu'un tableau à 2 dimensions et qu'il est possible d'accéder à n'importe quelle cellule par la désignation des indices de colonnes et de lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridView1.Item(IndiceColonne, IndiceLigne).Value ' est la valeur utilisable en lecture et écriture.
    Bien sûr, affecter "manuellement" un tableau à 2 dimensions avec le résultat d'une requête, "c'est toujours bien galère" comme l'indique Thovan, surtout au vu de la présentation demandée !

    A noter encore que le DataTable rempli par l'Adapter est aussi un tableau à 2 dimensions mais le passer "manuellement" au DataGridView est aussi une galère toujours à cause du résultat demandé.

    En fait, ce qui galère, c'est la mise au point de l'algo. Perso, je ne suis pas preneur pour le moment ...

Discussions similaires

  1. probleme en visual studio 2003 pour création de nouveau projet ASP.net
    Par magui_laurene dans le forum Visual Studio
    Réponses: 5
    Dernier message: 13/04/2008, 03h04
  2. Problème avec Visual Studio 2005 pour les MessageBox
    Par saphir54321 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/04/2007, 23h27
  3. Réponses: 3
    Dernier message: 20/03/2007, 22h46
  4. Réponses: 3
    Dernier message: 18/12/2006, 15h16
  5. Utilisez-vous Visual Studio 2005 pour vos installeurs ?
    Par neo.51 dans le forum Général Dotnet
    Réponses: 11
    Dernier message: 06/10/2006, 22h17

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