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 :

Manipulations autour d'une base de données ACCESS


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Par défaut
    Bonjour Phil Rob

    Grace à ton fichier exemple, j'ai réussi a adapter mon projet et maintenant j'arrive a transférer les données d'un formulaire à l'autre.

    Encore un tout grand merci pour ton aide.

    Très bonne journée à toi

  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
    Il s'agit d'une gestion des contacts dans les filiales d'une société. Cela n'a rien de plus parlant sauf si c'est cette gestion que tu veux faire.
    Cette gestion répond aux questions suivantes :

    1. Un enregistrement de Filiale est-il en relation avec au moins 1 enregistrement de Contact ? => OUI (Il y a au moins un contact à la filiale, sauf si on gère aussi les filiales avec lesquelles nous ne communiquons jamais, peu probable)
    2. Un enregistrement de Filiale peut-il être en relation avec plusieurs enregistrements de Contact ? => OUI (Il peut y avoir plusieurs un contacts à la filiale, un à la compta, un au service commercial, ...)
    3. Un enregistrement de Contact est-il en relation avec au moins 1 enregistrement de Filiale ? => OUI (C'est le but de cette partie de gestion, on n'encode pas là quelqu'un qui n'est pas un contact dans la filiale, on n'encode pas le clarkiste sauf si on peut effectivement être en contact avec lui, peu probable)
    4. Un enregistrement de Contact peut-il être en relation avec plusieurs enregistrements de Filiale ? => NON (sauf s'il existe un contact itinérant qui représente plusieurs filiales, peu probable).


    Pour la gestion que tu envisages, toi seul peut apporter les réponses à ces questions. Cette méthode des questions est la plus simple que je connaisse pour structurer correctement un DB. Et ce n'est qu'après qu'on peut définir les relations et contraintes d'intégrité référentielles. Il n'y a pas de solution universelle. Chacune dépend strictement de la gestion effectivement en place.

    La définition des relations est secondaire à l'analyse. Cela peut se faire et comme je l'écrivais ce matin, c'est un garde-fou contre les mauvaises manipulations. Il est prudent de le faire mais pas obligatoire. Dans l'exemple que j'ai envoyé ce matin, je n'ai pas défini la relation ni les propriétés de jointure. Cela n'empêche nullement l'encodage et la gestion de l'information. Simplement, ma DB de ce matin réponds à un jeu de questions. Si tu changes les réponses, cela fera une autre DB.

    Enfin, l'interface est absolument secondaire. Ce n'est pas l'interface qui détermine l'organisation des tables mais bien le contraire : les réponses faites aux questions induisent certains types de présentation des données et en interdisent d'autres. Dans l'exemple des contacts des filiales, le détail des contact est présenté dans une ListView ou un DataGridView. Cela aurait pu être aussi une cascade de ComboBox ou une batterie de ListBox. Mais ce serait bien moins confortable avec seulement des TextBox ou avec un TreeView, par exemple.

    ...

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Par défaut
    Bonjour Phil Rob

    Désolé pour le modèle, mais le principe de mon projet sera plus ou moins identique

    Un enregistrement de T_General est-il en relation avec au moins 1 enregistrement de T_Fichier ? => OUI

    Un enregistrement de T_General peut-il être en relation avec plusieurs enregistrements de T_Fichier ? => OUI

    Un enregistrement de T_Fichier est-il en relation avec au moins 1 enregistrement de T_General ? => OUI

    Un enregistrement de T_Fichier peut-il être en relation avec plusieurs enregistrements de T_General ? => NON

    Bonne journée

  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,

    Normal, la sélection de ligne est perdue pendant le tri et la procédure ChargeDetails ne peut trouver de CurrentRow.

    Pour te dépanner, tu peux ajouter la procédure DGVTout_Sorted et modifier le code de ChargeDetails :

    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
     
     Private Sub ChargeDetails()
    '... ... ...
     
            Dim IdAstuceEnCours As Integer
            Try
                IdAstuceEnCours = DGVTout.Item("IdAstuce", DGVTout.CurrentRow.Index).Value
            Catch
                Exit Sub
            End Try
     
            SQL = "SELECT Fichier FROM T_FICHIER WHERE XIdAstuceFichier =  " & IdAstuceEnCours
    ' ... ... ...
     
     
       Private Sub DGVTout_Sorted(sender As Object, e As EventArgs) Handles DGVTout.Sorted
            DGVTout_SelectionChanged(Me, Nothing)
        End Sub
    Si j'ai un peu de temps, je verrai s'il n'y a pas une méthode plus "convenable". Mais sûrement qu'il serait préférable d'interdire le tri "automatique" sur le clic d'un Header et programmer toi-même ce tri en refaisant la requête principale (sur Astuce) avec une clause ORDER BY sur le champ concerné par le Header cliqué.

    ...

  5. #5
    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,

    Là, je vois bien ton problème mais je ne vois pas comment le résoudre ...
    Je te propose d'essayer ceci :

    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
    ' ... ... ...
     
            With oleGr
     
                While oleGr.Read()
     
                    TboxGAMME.Items.Add(oleGr.GetString(1))
     
                End While
     
            End With
     
    ' Ici remettre la valeur de zone de texte :
              TboxGAMME.Text = .................
    ' ... ... ...
    L’illustration que tu envoies semble montrer 2 Form différents. Mais dans le code que tu as envoyé, je ne vois que le Frm_Edition.
    Si ce Form est appelé d'un autre, ne peux-tu affecter la zone de texte à partir du Form appelant en désignant le Form appelé par son nom : Frm_Edition.TboxGAMME.Text = ..................

    Enfin, dans le code que je t'ai envoyé, j'ai placé la Combo CBTest en DropDownList et ne vois aucune différence quant aux données qu'elle présente.


  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Par défaut
    Bonjour Phil Rob

    Maintenant j'arrive à avoir la valeur de base dans ma combobox en dropdownlist avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TboxGAMME.Items.Add(Frm_Recherche.TboxGAMME.Text) ' est afficher dans combobox mais pas par défaut
    Mais n'est pas affichée par défaut dans la combobox

    Je continue mes investigation

    Bonne journée

  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
    Suite ... après vérif.

    J'ai effectivement la référence Microsoft.Office.Interop.Access ajoutée à la solution. Cela se voit déjà sur l'illustration de l'autre jour où je te montrais la référence pour XLS. Vois celle pour Access juste au-dessus. Pas de compialtion sans cette référence ajoutée.
    Nom : VersXLS.jpg
Affichages : 178
Taille : 67,6 Ko

    A part cela, j'ai écrit mes codes de ce matin dans la procédure FTestDB_Load() du projet de test que je t'ai envoyé avec les codes d’exportation vers XLS et je n'ai rien changer d'autre dans les codes de ce projet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        Private Sub FTestDB_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim ACCApp As New Access.Application
            ACCApp.OpenCurrentDatabase("D:\Tmp\TestAccesDBSimpleConMostrar\MonStock2013.accdb", True)
            ACCApp.DoCmd.RunMacro("MaMacro", 2)
            ACCApp.CloseCurrentDatabase()
            ACCApp = Nothing
        End Sub
    Par ailleurs, c'est vrai que l'exécution de la macro produit une erreur s'il subsiste un processus Access sur cette DB (par exemple parce qu'elle ouverte par Access, ou bien parce que j'ai stoppé le programme en cours de travail sur la DB, sans clôturer correctement la connexion). Je suppose qu'une meilleure maîtrise des macros Access devrait permettre d'exécuter cette macro même quand la DB est ouverte par ailleurs (on peut le faire DANS Access).

    C'est pourquoi, quand je soupçonne ce genre de problème, je supprime tous les processus encore actifs, en Word, ou en XLS, ou en Access. Illustration après interruption du programme après l'ouverture de la DB et avant sa fermeture :
    Nom : DB02.jpg
Affichages : 185
Taille : 24,6 Ko

    Bonne soirée ...

  8. #8
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Par défaut
    Bonjour Phil Rob

    Encore en tout grand merci pour tout le temps que tu as passé pour m'aider.
    Mais je vais abandonner l'idée d'exporter ma DB vers Excel, en fait la solution était devant mes yeux.
    Je t'explique un peu mon projet :
    d'un coté j'ai un fichier excel "Listing fiche technique" dans le quel je gère un listing de suivi de fiche technique ce fichier est en liaison avec un autre fichier excel qui me sert de tampon pour alimenté mon fichier avec différent modèle de matériel.
    De l'autre coté, j'ai mon projet VB qui le sert de bibliothèque pour gérer les différent matériels et je voulais exporter la DB vers le fichier tampon qui réalimente mon fichier "listing fiche technique".

    Donc la solution est toute simple dans mon fichier excel "Listing fiche technique" je n'ai qu'a créer une liaison vers mon fichier access et le tour est joué.

    Encore merci

    Bonne journée

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

    Pour faire très simple, et pas trop réfléchir si tôt le matin , je te propose d'essayer ceci.

    Juste avant d'ajouter des données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TboxGAMME.DropDownStyle = ComboBoxStyle.DropDown
    Et quand l'ajout est terminé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TboxGAMME.DropDownStyle = ComboBoxStyle.DropDownList
    Si cela ne fonctionne pas, je ferai des tests, j'aurai sans doute un peu de temps dans l'après-midi.

    Bonne journée ...

  10. #10
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Par défaut
    Bonjour Phil Rob

    Je reviens vers toi, car j'ai encore une question concernant ma comboxbox.

    Tout fonctionne nickel garce à toi, mais j'ai ajouté un formulaire pour remplir les valeurs que la comboxbox doit aller chercher et ce formulaire je l'appelle depuis mon premier formulaire.

    Mais la comboxbox ne se met pas a jour avec les nouvelles valeurs je sis obliger de fermer mon premier formulaire et le ré ouvrir.

    Aurais-tu une idée comment je dois faire le refresh du combobox a partir d'un autre formulaire.

    Merci

    Bonne journée

  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
    Pour dire vrai, je ne vois pas la différence fonctionnelle entre DropDown et DropDownList.

    Peux-tu regarder la vidéo https://www.dropbox.com/s/wfszlfsxyt...ombos.mp4?dl=0 et m'expliquer pourquoi mon test n'est pas adéquat.

    Voici le code du test :

    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
    25
     
    Public Class Form0_2ComboBox
     
        Private Sub Form0_2ComboBox_Load(sender As Object, e As EventArgs) Handles Me.Load
            ComboBox1.DropDownStyle = ComboBoxStyle.DropDown
            ComboBox2.DropDownStyle = ComboBoxStyle.DropDownList
        End Sub
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            If TextBox1.Text = String.Empty Then
                Exit Sub
            End If
            ComboBox1.Items.Add(TextBox1.Text)
            ComboBox1.Text = ComboBox1.Items(0)
        End Sub
     
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            If TextBox2.Text = String.Empty Then
                Exit Sub
            End If
            ComboBox2.Items.Add(TextBox2.Text)
            ComboBox2.Text = ComboBox2.Items(0)
        End Sub
     
    End Class
    Merci d'avance

  12. #12
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Par défaut
    Bonjour Phil ROb

    En fait cela fonctionne, je n'avait pas mis le bon paramètre.

    Merci de ton aide

    Bon week-end

  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
    Oui, je peux voir ta DB mais tu dois l'envoyer ou bien la déposer en Dropbox (au autre) et m'envoyer le lien par messagerie privée. Je dois pouvoir ouvrir la DB avec Access 2013, je n'ai pas de version plus récente.

    Il faudra que tu m'expliques les contenus. Vois-tu, quand tu montres la gestion des contacts, je vois une table Adresse et une table Contact : je sais ce que signifient ces mots.
    Mais quand tu parles de General et de Fichier pour ton projet, je ne sais de quoi il s'agit : je sais ce que tu entends par Fichier, mais je ne sais ce que sont ces fichiers et je ne sais pas ce qu'est un General.

    La méthode des questions pour définir les relations est plus facile si on sait ce que sont réellement les entités évoquées.

    ...

  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
    Si tu n'as pas d'erreur de compilation, ce n'est pas une question de référence (dis-moi quoi à ce sujet).
    Mais j'ai aussi eu des difficultés à exécuter : tel que programmé là, il faut qu'il n'y ait aucun processus déjà actif sur cette DB. Pour vérifier ce cas, ton programme devrait fonctionner après le redémarrage de l'ordi (perso, j'utilise un killer de process égarés car ça arrive souvent lorsqu'on fait des tests).
    Si tu ne vois pas de solution dans ce message, envoie un extrait de la DB avec la macro de test.

  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
    Merci pour le feedback.
    Très bonne journée à toi aussi...)))

  16. #16
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Par défaut
    Bonjour Phil Rob

    Petit retour, voila j'ai juste un petit soucis pour que cela fonctionne je dois mettre ma combobox en Dropdown mais j'aimerais la laisser en dropdownlist, il y a une solution pour pouvoir écrire dans une combobox dropdownlist ou une petite astuce

    Bonne journée

  17. #17
    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
    Suite ...

    Discussion du jeu de réponses :

    Un enregistrement de T_General est-il en relation avec au moins 1 enregistrement de T_Fichier ? => OUI
    On ne peut pas accepter un enregistrement dans T_General qui ne désigne pas un fichier.

    Un enregistrement de T_General peut-il être en relation avec plusieurs enregistrements de T_Fichier ? => OUI
    Un enregistrement donné de T_General peut référencer plusieurs fichiers (ils pourront être présentés dans une liste de fichiers UN SEUL enregistrement de T_General).

    Un enregistrement de T_Fichier est-il en relation avec au moins 1 enregistrement de T_General ? => OUI
    On ne peut enregistrer pas dans T_Fichier un fichier qui n'est pas aussitôt utilisé par T_General. Probablement qu'une réponse NON serait meilleure de sorte à pouvoir encoder des fichiers qui ne seront utilisés que plus tard.

    Un enregistrement de T_Fichier peut-il être en relation avec plusieurs enregistrements de T_General ? => NON
    Un fichier ne pourra pas être référencé plusieurs fois dans T_General.

    Il est possible de répondre OUI à cette dernière question et cela donnera encore une autre DB dans laquelle un T_General pourra référencer plusieurs T_Fichier et un T_Fichier pourra être référencé dans plusieurs T_General. Cette situation existe par exemple dans la gestion des rues désservies par les facteurs : une rue est déservie par plusieurs facteur et un facteur dessert plusieurs rues.


    Voici les tables créés et remplies (selon le jeu de réponses) :

    Nom : LesTables2.jpg
Affichages : 152
Taille : 70,4 Ko

    Préparation d'une requête test avec l'assistant d'accès :

    Nom : LaRequeteAvecAssistant2.jpg
Affichages : 160
Taille : 40,2 Ko
    Je n'ai toujours pas défini les relations, contraintes d'intégrités, propriétés de jointure ...

    Visualisation de la requête en SQL :

    Nom : LaRequeteEnSQL2.jpg
Affichages : 155
Taille : 42,1 Ko

    Visualisation de la requête en SQL après ajout de la clause ORDER (le résultat est plus lisible, c'est celle-ci qui sera copiée en VB) :

    Nom : LaRequeteEnSQL2Order.jpg
Affichages : 155
Taille : 45,8 Ko

    Le résultat de l'exécution :

    Nom : LaRequeteResultat2.jpg
Affichages : 157
Taille : 43,0 Ko

    Et voila ...

    Pour affiner davantage l'analyse, il serait bien que tu envoies un jeu de résultats (cela peut être écrit sous XLS) avec les noms des champs représentatifs de leur rôle et quelques données fictives mais plausibles. Il faudra sans doute répondre aussi à d'autres questions.

    Bonne journée ...

  18. #18
    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
    Ok, je te fais un exemple avec ce jeu de réponses dans la matinée et je te l'envoie ...
    Bonne journée !

  19. #19
    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,

    Tu peux désactiver le tri par clic des Header en ajoutant ces lignes de code à la fin de MontreDonnees() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            For C As Integer = 0 To DGVTout.ColumnCount - 1
                DGVTout.Columns(C).SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Programmatic
            Next
    Tu peux ensuite remettre ChargeDetails en ordre comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      Private Sub ChargeDetails()
    ' ... ... ...
            Dim IdAstuceEnCours As Integer
            'Try
            IdAstuceEnCours = DGVTout.Item("IdAstuce", DGVTout.CurrentRow.Index).Value
            'Catch
            '    Exit Sub
            'End Try
    ' ... ... ...
    et supprimer la procédure DGVTout_Sorted().

    Pour la suite, si tu veux programmer un tri basé sur une colonne en particulier, le mieux sera de le faire sur la DataTable, ou bien recommencer la requête avec la clause ORDER BY (plus lourd pour le système, et aussi pour le programmeur ... ). Le déclenchement de ce tri peut être programmé dans la procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Private Sub DGVTout_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DGVTout.ColumnHeaderMouseClick
          ' 
        End Sub
    Pour ce qui est de l'erreur Microsoft.ACE.OLEDB.12.0' n'est pas inscrit sur l'ordinateur local, il te faut changer de plateforme et choisir x64 (au besoin, tu peux l'ajouter dans le "Gestionnaire de configuration ...") :
    Nom : X86.jpg
Affichages : 159
Taille : 18,0 Ko

    ...

  20. #20
    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
    Tu dois savoir à quel indice tu places l'info.

    Le dernier TboxGAMME.Items.Add te place la donnée à l'indice TboxGAMME.Items.Count-1 et le premier TboxGAMME.Items.Add te place la donnée à l'indice 0. Ceux-ci sont faciles. Autrement, il te faut rechercher à quel endroit se trouve la donnée et faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TboxGAMME.Text = TboxGAMME.Items(LIndiceEnQuestion)
    Mais vu ce que tu viens de programmer, peut-être te suffit-il d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TboxGAMME.Items.Add(Frm_Recherche.TboxGAMME.Text) ' est afficher dans combobox mais pas par défaut
    TboxGAMME.Text = Frm_Recherche.TboxGAMME.Text
    Mais ça a l'air trop facile ...

Discussions similaires

  1. [Débutant] Manipuler une base de données Access en C#
    Par jed72 dans le forum C#
    Réponses: 18
    Dernier message: 18/05/2016, 16h51
  2. Réponses: 3
    Dernier message: 05/09/2015, 20h23
  3. Réponses: 0
    Dernier message: 11/11/2014, 18h08
  4. Réponses: 15
    Dernier message: 25/10/2004, 11h50
  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