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
    Super ça fonctionne avec :

    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
    Merci pour ton ton aide Phil Rob

    Passe une bonne journée

  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
    Merci pour le suivi ...

    Très bonne journée,


  3. #3
    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
    Bonne journée à toi aussi ... et à la prochaine ...

  4. #4
    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
    Citation Envoyé par Phil Rob Voir le message
    Bonne journée à toi aussi ... et à la prochaine ...
    Re-bonjour Phil Rob

    Est-ce que par hasard dans toutes tes bonnes idées tu aurais quelque chose de simple pour exporter la base de donnée vers excel?

  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
    La ComboBox doit être remplie à partir du 1er Form, et puis seulement tu ouvres le 2eme Form.l
    S'il y a encore un problème, envoie-moi ces codes là.
    À tantôt..

  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
    En fait j'ai créé un deuxième formulaire pour pouvoir ajouter plus facilement des valeurs dans le combobox car les valeurs du combobox vienne d'une autre table que la table principale.

    Je sais pas si c'est claire comme explication.

    Mon premier formulaire est alimenté par la table principale, dans ce premier formulaire j'ai le combobox qui est alimenté par la deuxième table.

  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
    Parfait !

    Très bon week-end à toi aussi ...


  8. #8
    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
    Pas vraiment ...

    Mais au plus simple, j'enverrais les données dans un fichier texte (avec extension CSV, pour faciliter la reconnaissance par XLS), avec une ligne par ligne XLS, les données dans ce fichier texte étant séparée par un point-virgule (tu as déjà reçu du code exemple sur le CSV, je crois). Il suffit de double-cliquer ce fichier pour le voir s'ouvrir dans XLS.

    Une autre manière consiste à programmer en VB le remplissage des cellules XLS avec les données qu'on souhaite y mettre. Là, il y a de la programmation !

    Enfin, il est possible d'ouvrir XLS comme une DB d'utiliser SQL pour faire les sélections. Dans ce système, chaque feuille XLS apparaît comme une table. Et je suppose (car je n'ai pas expérimenté) qu'on faire des UPDATE, des INSERT et des DELETE comme dans une table de DB.


    Vois un peu vers quoi tu veux t'aventurer ...

  9. #9
    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
    J'aimerais pouvoir exporter directement dans un fichier excel et pouvoir choisir quels champs de ma base je dois exporter
    exemple :

    Champs 2 de la db vers cellule A excel
    champs 5 de la db vers cellule B excel
    ....

  10. #10
    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
    Je comprends que c'est à partir du 1er Form que tu charges tes tables en mémoires. Si c'est bien ainsi, les données nécessaire à ton 2ème Form existe dans le 1er. Alors, tu peux alimenter LeForm.SaCombo.Add ...

    Désolé si j'ai mal compris, alors dis-moi :
    Les données du Combo du Form2 viennent de la DB ?
    Si oui, la requête de chargement est dans Form1 ou dans Form2 ?

    T'inquiète, on va y arriver ....

  11. #11
    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
    Citation Envoyé par Phil Rob Voir le message
    Je comprends que c'est à partir du 1er Form que tu charges tes tables en mémoires. Si c'est bien ainsi, les données nécessaire à ton 2ème Form existe dans le 1er. Alors, tu peux alimenter LeForm.SaCombo.Add ...

    Désolé si j'ai mal compris, alors dis-moi :
    Les données du Combo du Form2 viennent de la DB ?
    Si oui, la requête de chargement est dans Form1 ou dans Form2 ?

    T'inquiète, on va y arriver ....
    Dans le formulaire 1 je charge les données de la table "T_Listing" et le combobox charge de la table "T_Gamme", mon formulaire 2 charge la table "T_Gamme"

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

    Cela dépend de ce que tu entends par relation et par "les gérer dans VB".

    Si les relations sont effectivement existantes dans Access, elles seront un garde-fou vis à vis de toutes les opérations tentées sur la DB, même par VB.
    Par exemple, selon ton illustration, Access interdira la suppression d'un enregistrement de T_Fichier qui est référencé dans T_General.

    Par ailleurs, que les relations existent ou non dans la DB, elles peuvent exister entre les DataTable d'un DataSet qui contiendrait tout ou partie de la DB (mais ceci n'est pas forcément utile).

    Enfin, si tu veux obtenir tous les T_General avec pour chacun le libellé du T_Fichier correspondant, il te faut écrire une requête jointure (SELECT ... FROM ... JOIN ...).

    Maintenant, si je peux me permettre, ton illustration montre deux tables en "mal conçues et en mauvaise relation" (par exemple, T_Fchier contient un ID inutile et T_General doit avoir une copie de ID_Fichier, et non son libellé).
    Si tu veux me dire exactement ce que seraient les contenus de ces tables, je pourrai probablement te donner l'exemple du raisonnement qui fait une "bonne" normalisation.

    Bonne journée,


  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
    C'est possible dans tous les cas : dans le fichier csv, le 1er data d'une ligne ira en À, le suivant en B, ...
    Ce n'est pas un critère pour ton choix.

    J'ai ajouté l'exportation vers XLS des données de la table TProduit de ma DB. Je te renvoie le projet pour tests : TestAccesDBSimpleConMostrarConXLS.zip .

    Il faut ajouter la référence dans les références du projet et dans les Imports de la page de code.
    Pour tester, n'oublie pas de changer le chemin du fichier XLS et de la DB.
    Nom : VersXLS.jpg
Affichages : 522
Taille : 67,6 Ko

    Pour tester, n'oublie pas de changer le chemin du fichier XLS et de la DB.
    Les procédures concernées sont :
    OuvrirXLS()
    FermerXLS()
    EcrireLesTitresDesColonnes()
    BExportXLS_Click( ... ... ...)

    Bien entendu, ici aussi j'utilise le DataTable pour rempli par CargarLaTablaConAdapter() ou CargarLaTablaConDataReader().

    À tantôt
    ...

  14. #14
    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
    Merci Phil Rob

    Je regarderais cela à mon aise, je te donnerai mon retour

    Bonne soirée

  15. #15
    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,
    Pour le boulot j'ai un gros projet en VB.NET et j'ai dans certains form des controles que je popule depuis ma DB Access...
    Je pense donc qu'on est dans le même cas !

    Pour faire ça, j'ai écris une petite classe de fonctions diverses que je peux appeler n'importe où dans mon projet.
    Cette classe contient cette fonction, dans laquelle je passe comme argument le combobox concerné, la table que je veux dans la DB et le champs que je veux aller chercher :

    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
     
     Function FillCombobox(ByVal combo As ComboBox, ByVal table As String, ByVal champ As String)
            Dim myconnexion As OleDbConnection = New OleDbConnection
            Dim provider As String
            Dim connstring As String
            provider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
            connstring = provider & GetDBPath()
            myconnexion.ConnectionString = connstring
            Try
                myconnexion.Open()
                Dim Query As String
                Query = "Select " & champ & " from " & table & " order by " & champ
                Dim search As New OleDbDataAdapter(Query, myconnexion)
                Dim ds As DataSet = New DataSet
                search.Fill(ds, table)
                combo.DataSource = ds.Tables(table)
                combo.DisplayMember = champ
                Return True
            Catch ex As Exception
                writetolog("Echec fonction FillCombobox" & vbCrLf & ex.ToString)
                MessageBox.Show("Echec fonction FillCombobox" & vbCrLf & ex.ToString)
                Return False
            End Try
            myconnexion.Close()
        End Function
    Un exemple d'appel (Fonctions est la classe dont j'ai parlé plus haut) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim fonctions As New Fonctions
    fonctions.FillCombobox(ComboBox_Type, "Plaintes_Type", "Type")
    Donc en français : Rempli le combobox ComboBox_Type par le champ "Type" de la table "Plaintes_Types"

    J'espère que ça t'aidera !

  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 thovan

    Merci pour ton code je testerais cela l’occasion.

    Bonne soirée

  17. #17
    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
    Pas de soucis, tu peux le dériver pour aussi remplir des datagridviews.
    L'avantage c'est qu'il ne nécessite pas que la base de donnée soit "physiquement" liée au projet.

  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
    Je vois 3 Form et tu veux en cours de remplissage de Form1, pendant que tu sélectionnes les données dan Form2, ouvrir Form3 pour ajouter des "Gamme" de dernière minute au Combo des Gamme de Form2 ?
    S'il en est ainsi, c'est à partir de Form3 que tu ajoutes au Combo Gamme de Form2 et ce dernier ne se met pas à jour ?

    Je vois dans Form3 quelque chose comme Form2.ComboGamme.Add( ...). Essaie de d'écrire un Form2.ComboGamme.Refresh tout de suite après.

    Attention, si le ComboGamme de Form2 est lié à un DataTable par ComboGamme.DataSource = LeDataTable, ce n'est pas dans le Combo qu'il faut ajouter un "Gamme" de dernière minute, mais bien dans le DataTable et la mise à jour du ComboGamme devrait être immédiate.

    ...

  19. #19
    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
    Oui c'est ça en dernière minute j'ouvre le form 3 pour ajouter dans le form2
    J'essaie cela ce soir et te tien au courant

    Merci

  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
    Donc pour le champs fichier de T_GENERAL je voudrais pouvoir lui donner plusieurs valeurs mais uniquement par enregistrement
    Tu veux dire plusieurs valeurs de Fichier dans T_General, mais une seule par enregistrement de T_General ? C'est ce que signifie tes répones aux 2 premières questions, mais confirme moi. Vois-tu, c'est là l'intérêt des questions, c'est OUI ou NON tandis que ta phrase, elle est ambiguë.

    Je voudrais encore savoir (pour implémenter sous Access) le champ Fichier est bine une chaine de caractère représentant le chemin et nom du fichier ?

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