Comment remplir automatiquement une textbox suit à un choix de combobox

Signaler
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,
Dans le cadre d'un projet, je dois effectuer un programme pouvant gérer des stocks.
Le but étant d'ajouter des emplacements avec leurs caractéristiques, et de pouvoir ensuite attribuer a un objet, un certains emplacement.
Pour ce qu'il en est de créer un emplacement, j'ai réussis à le faire. Ceci va dans un fichier texte que je vous montre ci dessous, mais par la suite j'aimerais pouvoir sélectionner un emplacement voulu avec une combobox qui prend le nom des emplacements dans mon fichier texte (ça j'ai réussi aussi)
Mon problème est le suivant : j'aimerais que une fois mon emplacement sélectionné, mon programme m'affiche ses caractéristique à partir du fichier texte, et que je puisse supprimer toute la ligne de l'emplacement en cliquant sur un seul bouton (et sans faire de trou dans mon fichier texte)

image de l'interface :
http://img153.imageshack.us/img153/15/stockjt.jpg

image du fichier texte :
http://imageshack.us/photo/my-images/20/fichierm.jpg/

je vous mets aussi le code de cette interface faite pour l'instant :
Private Sub Cbo01_Change()
Dim i As Integer
Dim rech As String
rech = Me.Cbo01.Text



If rech = nom(i) Then
    
    Txt10.Text = largeurE(i)
    Txt11.Text hauteurE(i)
    Txt12.Text profondeurE(i)
    Txt13.Text chargemaxE(i)
End If
End Sub




Private Sub Cmd02_Click()
Dim i As Integer
    nbvaleur = nbvaleur + 1

    ReDim Preserve nom(nbvaleur)
    ReDim Preserve largeurE(nbvaleur)
    ReDim Preserve hauteurE(nbvaleur)
    ReDim Preserve profondeurE(nbvaleur)
    ReDim Preserve chargemaxE(nbvaleur)

    
    nom(nbvaleur) = Me.Txt00.Text
    largeurE(nbvaleur) = Me.Txt01.Text
    hauteurE(nbvaleur) = Me.Txt02.Text
    profondeurE(nbvaleur) = Me.Txt03.Text
    chargemaxE(nbvaleur) = Me.Txt04.Text
    

    
    Txt00 = ""
    Txt01 = ""
    Txt02 = ""
    Txt03 = ""
    Txt04 = ""


    
End Sub
Private Sub Cmd03_Click()
Dim i As Integer
sep = vbTab
Close #1
    Open stock For Output As 1    'le output permet de recopier les variables dans un fichier pour les sauvegarder
        Print #1, "nom" & sep & "largeur" & sep & "hauteur" & sep & "prof." & sep & "charge"
        For i = 1 To (nbvaleur)
            Print #1, nom(i) & sep & largeurE(i) & sep & hauteurE(i) & sep & profondeurE(i) & sep & chargemaxE(i)
        Next i
    Close (1)

    Unload Me               'Sortie de la page
    acceuil.Show
End Sub



Private Sub Form_Load()
Dim i As Integer
    
    For i = 1 To nbvaleur
        Cbo01.AddItem nom(i)
    Next i
    
    stock = "H:\Mes documents\ENSIBS 1\semestre 2\VB\dimstock.txt"
End Sub






Merci d'avance, je reste bloqué à ce point la..

6 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
Ton titre (Problème de code !) ne donne pas envie de te répondre.
1) Lorsque l'on vient ici, c'est (tu ne t'en douterais pas un peu ?) toujours pour un "problème de code"
2) le titre sert (à tout visiteur éventuel confronté à une difficulté similaire) à associer une discussion à UNE difficulté.
Ton titre ne remplirait pas cette fonction essentiel du forum et toute solution ne servirait ... qu'à toi !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Ah oui c'est vrai.. Mon réel problème est de pouvoir écrire des attributs dans une textbox, a partir d'une combo box,
Je n'arrive pas a changer le titre :/
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Je n'arrive pas a changer le titre

Tu n'as en effet maintenant que la ressource de :
- Préparer la rédaction claire et concise du titre adéquat
- Demander à un administrateur bienveillant de remplacer on ancien titre par le nouveau
Tu es seul responsable du temps que tu es en train de perdre.
Pour contacter un admin ===>> Tapez le texte de l'url ici.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Titre change !
J'aimerais vraiment savoir si quelqu'un pourrait m'aider svp..
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Bonjour,

Pas certain de bien comprendre, mais peut-être quelque chose comme ça ?

If Cbo01.ListIndex >= 0 then
  Txt10.Text = largeurE(Cbo01.ListIndex)
  ...
End If


Ça, c'est si le combobox est rempli dans le même ordre que le tableau et qu'il n'y a aucun tri par la suite sur un ou l'autre...

PS: je n'ai pas accès à ImageShack au bureau...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
1) L'utilisation d'un fichier texte n'est pas ce qu'il y a de mieux pour ce genre de travail et compliquera/alourdira les traitements (recherches, suppressions, notamment).
Si tu y tiens toutefois à tout prix, il te faudra travailler avec un fichier texte structuré en base de données. Ouvre alors ton aide VB6 sur le mot type (Type instruction ou type statement selon ta version) et lis tout, ainsi que l'exemple qui accompagne cette rubrique. Il te faudra nécessairement t'exercer (par des petits tests) à l'apprentissage de cette utilisation, avant de tenter de l'incorporer dans ton appli.
2) si le nombre de tes enregistrements n'est pas trop important, tu trouveras probablement plus simple de dédier un dossier à plusieurs fichiers textes (un par enregistrement) et de traiter ce dossier comme une base de données (en utilisant la fonction Dir pour y rechercher un fichier, l'instruction Open pour y lire ou y écrire et l'instruction Kill pour supprimer un fichier

3) il reste qu'il serait nettement préférable de travailler avec une véritable base de données.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.