Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Intégrer un combo-box dans un tableau msflexgrid [ Archives Visual Basic / [ Au sujet de VBFrance ] ] (yangoal25)

jeudi 19 janvier 2006 à 09:17:13 | Intégrer un combo-box dans un tableau msflexgrid

yangoal25

Membre Club
Bonjour à tous,

Dans le cadre de mon TFE, je conçois une application de gestion de stock fourniture au sein d'une administration.

J'aimerais créer un tableau et intégrer dans toute les cellules de la 1ère colonne un combo-box.

Dans ce combo-box, j'aimerais faire un lien vers plusieurs table de ma BD access.
Je le vois dans le style de l'explorateur de windows :
 Exemple :   
   Informatique (Table "Categorie")
         Matériel (Table "Sous-Categorie1")
              Clé usb (Table "Sous-Categorie2")
                   INTUIX 1GB (Table "Fourniture")
              Tapis de souris (Table "Fourniture")
         DVD (Table "Sous-Categorie1")
               DVD - (Table "Fourniture")
    Ecriture (Table "Categorie")
          Bics (Table "Sous-Categorie1")
                Atlantis (Table "Sous-Categorie2")
                      Bleu (Table "Fourniture")

etc etc...
Toutes ces tables sont liées en access.
Je suis peut être trop exigeant, et je me doute que le code derrière doit être costaud.

Je vous remercie de l'attention portée à la présente.

Yangoal25

 

jeudi 19 janvier 2006 à 09:55:14 | Re : Intégrer un combo-box dans un tableau msflexgrid

perathoner

Hello.
Pourquoi ne met tu pas un arbre (treeview) ça serais plus simple à mon sens..
Là tu pourrais réellement faire comme l'explorateur windows... à voir ton exemple c'est le cas typique d'un arboréscence..

Il faudrais faire un peu d'objet un fait !!!
Tu as un Item racine (root, qui est invisible) est qui est le père de tes Items "Informatique" est "Ecriture". ce dernier est à son tour le père de "Bics", à son tour le pére de "Atlantis" ... en fait tu as toute une filiation. La solution est de te créer un objet "Item" est de faire de la récurrence. Une boite dans une boite identique, elle même dans une boite identique ....

Dans l'idée c'est le principe de la prog orientée objet...

Bon courage.

@+


jeudi 19 janvier 2006 à 10:02:39 | Re : Intégrer un combo-box dans un tableau msflexgrid

perathoner

Re...

Mais sinon il est où ton pb !!!
Qu'est ce que tu ne sais pas faire ???
Faire le lien avec tes bdd ?
Mettre un ComboBox ??

Sois plus explicite please...

@+


jeudi 19 janvier 2006 à 10:27:57 | Re : Intégrer un combo-box dans un tableau msflexgrid

yangoal25

Membre Club

Le problème est que j'ai mon msflexgrid, et je dois introduire des combo-box avec lesquels je voudrais afficher l'arborescence de ma base de donnée comme j'explique plus haut.

L'objectif est que l'utilisateur puisse choisir dans le combo la "fourniture" désirée et qu'il mette la "quantité" dans la cellule de gauche (la taille du tableau est de 2 colonnes et 50 lignes)

Et donc, je pourrais intégrer une fonction "tree" dans mon combo pour avoir l'arborescence?  

J'espère avoir été clair, en tout cas je te remercie de m'aider.

Yangoal25


jeudi 19 janvier 2006 à 10:50:06 | Re : Intégrer un combo-box dans un tableau msflexgrid

yangoal25

Membre Club
Pour être complet, je dessine ma msflexgrid, et je place des combos aux endroits prévu. (A part que mes je ne sais pas en mettre ou les lignes dépasse de ma feuille donc je ne pense pas que ma méthode soit bonne. Dois-je intégrer aux cellules du tableau? et si oui, comment faire)

J'ai fait le lien avec ma BD, mais bien sur je n'ai que la fourniture et non toute la hiérarchie. Quid du tree?

Mes problèmes commencent à bien se préciser.

Merci pour tout.

yangoal25

jeudi 19 janvier 2006 à 11:07:19 | Re : Intégrer un combo-box dans un tableau msflexgrid

perathoner

Je pense avoir compris ce que tu désire faire, le pb est que je ne sais toujours pas où se situe ton pb ???

Pour mettre des combo dans ton MSFlexgrid il suffit de les positionner à l'endroit désiré sur ta form !!
ex : combo1.Height = MSFlexgrid1.CellHeight (etc...)
En réalité, tu ne peut pas incorporer un combo dans ton flex... tu peut le mettre devant et laisser croire à l'utilisateur qu'il est bien a l'intérieur !!!!

De la même manière, si tu veux que l'utilisateur mette la "quantité" dans la cellule de gauche, il faut absoluement faire apparaitre une textbox pour qu'il puisse remplir l'info parce que tu ne peut pas écrire directement dans un flex...(je sais pas si tu as remarqué?) Il faut que sur un événement "click" sur ton Flex tu récupère les infos (height, width, top, left) de la cellule clickée par l'utilisateur est que tu mette en lieu est place une texbox. Quand l'utilisateur à fini de remplir l'info, il fait "entrée" (par exemple) et toi tu remplis la cellule..

Non, un treview est un composant... au lieu de mettre une série de combo moi j'aurias mis un arbre (sur la gauche de ta form par exemple)... alors quand tu cliques sur une des branches, tu fais apparaitre sur la droite de ta form, toutes t'es informations ... m'enfin c'est p't'être pas une très bonne idée, je ne connais pas tout les détails de ton projet..


je sais pas si je suis très clair ???


jeudi 19 janvier 2006 à 11:21:55 | Re : Intégrer un combo-box dans un tableau msflexgrid

yangoal25

Membre Club
Pour mettre des combo dans ton MSFlexgrid il suffit de les positionner à l'endroit désiré sur ta form !!
ex : combo1.Height = MSFlexgrid1.CellHeight (etc...)
En réalité, tu ne peut pas incorporer un combo dans ton flex... tu peut le mettre devant et laisser croire à l'utilisateur qu'il est bien a l'intérieur !!!!Pour mettre des combo dans ton MSFlexgrid il suffit de les positionner à l'endroit désiré sur ta form !!
ex : combo1.Height = MSFlexgrid1.CellHeight (etc...)
En réalité, tu ne peut pas incorporer un combo dans ton flex... tu peut le mettre devant et laisser croire à l'utilisateur qu'il est bien a l'intérieur !!!!

       
C'est ce que je pensais, je crois que de ce coté, ca fonctionne. Mais je ne peux pas mettre plus de combo que de ligne visible mais ce n'est pas un gros problème.

De la même manière, si tu veux que l'utilisateur mette la "quantité" dans la cellule de gauche, il faut absoluement faire apparaitre une textbox pour qu'il puisse remplir l'info parce que tu ne peut pas écrire directement dans un flex...(je sais pas si tu as remarqué?) Il faut que sur un événement "click" sur ton Flex tu récupère les infos (height, width, top, left) de la cellule clickée par l'utilisateur est que tu mette en lieu est place une texbox. Quand l'utilisateur à fini de remplir l'info, il fait "entrée" (par exemple) et toi tu remplis la cellule..

        Je vois ce que tu veux dire. Je crois que je vais mettre simplement un text box sans contour, je ne crois pas que l'utilisateur fera la différence.

Non, un treview est un composant... au lieu de mettre une série de combo moi j'aurias mis un arbre (sur la gauche de ta form par exemple)... alors quand tu cliques sur une des branches, tu fais apparaitre sur la droite de ta form, toutes t'es informations ... m'enfin c'est p't'être pas une très bonne idée, je ne connais pas tout les détails de ton projet..

    C'est une idée qui est pas mal du tout pour contourner le truc. Je met l'arborescence sur le coté, il sélectionne la "fourniture" et celle-ci va se coller dans la cellule (ou le text box) désirée. Je vais tenté ça. Je vais me renseigner sur les treeview.

Je te remercie. j'aurais peut être encore besoin de tes précieux conseiller par la suite, j'espère que ca ne te dérange pas.

Bonne journée

      

vendredi 20 janvier 2006 à 09:03:57 | Re : Intégrer un combo-box dans un tableau msflexgrid

yangoal25

Membre Club

Monsieur Perathoner,

Me revoila déjà.

J'ai trouvé sur un forum du code pour créer un treeview en relation avec une BD access.
J'ai essayé de l'adapter à mon programme mais il m'arrête déjà dès les première lignes. Je suis sur que c'est une bétise mais si tu savais y regarder, ce serait sympa de ta part.

Voici le code

Set adoConnection = New ADODB.Connection
Set adoRecordSet = New ADODB.Recordset
ConnectionString = "Provider = Microsoft.Jet.OLEDB.3.51;" & " Data Source = C:\TFE\Stock2.mdb"
adoConnection.Open ConnectionString
adoRecordSet.Open "CATEGORIE", adoConnection

Do Until adoRecordSet.EOF
Dim SqlD, setClass, setClass2, setClass3, setClass4, setClass5 As Recordset

SqlD = "SELECT Id_Categorie,Int_Categorie FROM CATEGORIE ORDER BY Int_Categorie"
Set setClass = New Recordset           (Il bloque déjà ici, il ne reconnait pas le "New")
setClass.Open SqlD, geststage, adOpenForwardOnly, adLockReadOnly, adCmdText


SqlD = "SELECT Id_Sous-Categorie1,Int_Sous-Categorie1 FROM SOUS-CATEGORIE ORDER BY Int_Sous-Categorie1"
Set setClass2 = New Recordset
setClass2.Open SqlD, geststage, adOpenForwardOnly, adLockReadOnly, adCmdText

SqlD = "SELECT Id_Sous-Categorie2,Int_Sous-Categorie2 FROM SOUS-CATEGORIE2 ORDER BY Int_Sous-Categorie2"
Set setClass3 = New Recordset
setClass3.Open SqlD, geststage, adOpenForwardOnly, adLockReadOnly, adCmdText

SqlD = "SELECT Id_Sous-Categorie3,Int_Sous-Categorie3 FROM SOUS-CATEGORIE3 ORDER BY Int_Sous-Categorie3"
Set setClass4 = New Recordset
setClass4.Open SqlD, geststage, adOpenForwardOnly, adLockReadOnly, adCmdText

SqlD = "SELECT Id_Fourniture,Denomination FROM FOURNITURE ORDER BY Denomination"
Set setClass5 = New Recordset
setClass5.Open SqlD, geststage, adOpenForwardOnly, adLockReadOnly, adCmdText

TreeView1.LineStyle = tvwRootLines
TreeView1.Nodes.Add , , "c", "Catégories", 1 ' Véritable père avec un seul noeud et sa clé est "c"
Dim idC, idC2, idC3, idC4 As String, nodX As Node
tvwDB.Nodes.Clear   'effacer tous les noeuds
 
While Not setClass.EOF
   idC = setClass!id_Categorie
   Set nodX = TreeView1.Nodes.Add("c", tvwChild, idC, setClass!Int_categorie)
   setClass2.Filter = "Id_Categorie='" & setClass!id_Categorie & "'"

   While Not setClass2.EOF
      idC2 = setClass2!id_Sous - Categorie1
      Set nodX = TreeView1.Nodes.Add(idC, tvwChild, idC2, setClass2!Int_Sous - Categorie1)
      setClass3.Filter = "id_Sous-Categorie1='" & setClass2!id_Sous - Categorie1 & "'"

      While Not setClass3.EOF
         idC3 = setClass3!id_Sous - Categorie2
         Set nodX = TreeView1.Nodes.Add(idC2, tvwChild, idC3, setClass3!Int_Sous - Categorie2)
         setClass4.Filter = "id_Sous-Categorie2='" & setClass3!id_Sous - Categorie2 & "'"
    
         While Not setClass4.EOF
            idC4 = setClass4!id_Sous - Categorie3
            Set nodX = TreeView1.Nodes.Add(idC3, tvwChild, idC4, setClass4!Int_Sous - Categorie3)
            setClass5.Filter = "id_Sous-Categorie3='" & setClass4!id_Sous - Categorie3 & "'"
                     
            While Not setClass5.EOF
            Set nodX = TreeView1.Nodes.Add(idC4, tvwChild, , setClass5!Denomination)
            setClass5.MoveNext
            Wend

            setClass4.MoveNext
         Wend

         setClass3.MoveNext
      Wend

      setClass2.MoveNext
   Wend
    
   setuser.Filter = 0
   setClass.MoveNext
Wend
    
setClass5.Close
Set setClas5 = Nothing
setClass4.Close
Set setClas4 = Nothing
setClass3.Close
Set setClas3 = Nothing
setClass2.Close
Set setClass2 = Nothing
setClass.Close
Set setClass = Nothing
    
' Assure que tous les noeuds soient visibles.
nodX.EnsureVisible

adoRecordSet.Close
adoConnection.Close

Set adoConnection = Nothing
Set adoRecordSet = Nothing

Je me doute qu'il n'est pas facile de retourner dans un code étranger.

Merci d'avance


vendredi 20 janvier 2006 à 10:04:09 | Re : Intégrer un combo-box dans un tableau msflexgrid

perathoner

Hello.
Ba désolé mais je ne connais pas les base ADO...

Moi je fais comme ça...

'######## CODE #######
Private Wks As Workspace    'Workspace
Public Base As Database     'Database
Private BaseOpen as Boolean  'Flag pour dire l'état de la bdd

'Ouverture de l'acces vers la Base De Données
Public Function BaseOpen(Chemin1 As String) As Boolean
' Création de l'espace de travail
Set Wks = DBEngine.Workspaces(0)
' Ouverture de la base de données
Set Base = Wks.OpenDatabase(Chemin1, False, 0, "")
    If Base Is Nothing Then
        MsgBox ("Base De Données inacessible")
        BaseOpen = False
    Else
        BaseOpen = True
    End If
End If
End Function


Public Sub LectureBase() as string
Dim RecordParameter As Recordset
Dim SQLParameter As String

SQLParameter = "SELECT * FROM LeNomDeTaTable WHERE NomDuChamp=" & IntituléQueTuRecherche
Set RecordParameter = Base.OpenRecordset(SQLParameter)
Do Until RecordParameter.EOF
    [traitement]
    RecordParameter.MoveNext
Loop

RecordParameter.Close
Set RecordParameter = Nothing
End Function
'###### FIN DU CODE ######

Bon courage...

vendredi 20 janvier 2006 à 10:12:15 | Re : Intégrer un combo-box dans un tableau msflexgrid

yangoal25

Membre Club
Je te remercie quand même.
Il n'est pas évident de trouver des explications simple pour des treeview avec une relations BD Access.
Je continue de chercher, merci encore.



1 2

Cette discussion est classé dans : table, box, combo, intégrer, fourniture


Répondre à ce message

Sujets en rapport avec ce message

Combo Box et relation avec une autre [ par frantz44 ] Bonjour,J'ai une table avec des marques de vehicules (Renault,Peugeot,Citroen...) et une seconde table avec 2 colonnes, une qui contient le vehicule ( Effacer une combo box [ par iguano ] Bonjour, J'ai une combo box de style 2 (dropdown list) qui charge le contenu d'une table. Je voudrais pouvoir effacer l'élément sélectionné par l'uti combo box vb espress 2005 [ par jaba ] Bonjour a tous Voila ma petite question , j'ai toujours eu l'habitude en vb5 et vb6 d'utiliser la methode additem , dans mes combobox pour les remplir Combo box [ par tabatha64 ] salut, j'ai deux petits soucis : 1/ lorsque j'envoie un formulaire rempli de combos box à une autre page php, je récupére mes champs mais seulement un combo box en ASP.NET (dropdownlist) Mais le Handle "SelectedIndexChanged" ne fonctionne pas. [ par duce_foutou ] J'essaie de faire afficher un message lorsque je change une selection dans un combo box en ASP.NET (dropdownlist). Mais avec le Handle "SelectedIndexC Problème avec combo et itemdata [ par Boudchiche ] Salut j ai une table fournisseurs avec 2 champs code_Fournisseur et Nom_Fournisseur et un combo dans mon formulaire est ce qu il y a une methode avec combo box [ par Almia_Kaddour ] comment peut on effacer plusieur combo box avec un procédure au lieu d'utilser chaque fois un boucle exple For i = 0 To 7        C(i).Text = "" Next i Combo box [ par otis44 ] Bonjour, je veux réaliser une combo box dans laquelle je mets 3 valeurs. le pbm c'est que je n'ai pas la propriété itemdata dans mes propriétés.Quelq Ajouter un élément dans une Combo Box [ par mezaya ] Boujour, je n'arrive pas a ajouter des élemnents dans une combo box. voici mon code :             hwndd = GetDlgItem( hwnd , IDC_OBJET );         &n Combo box et GotoRecord [ par Enaira ] Slt Je code sur access et g une combo (ds un formulaire) avec ma liste ki correspond aux données d'1 clé primaire. Je voudrais ke, lorsque je clique s


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 19,797 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.