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 :

Problème lors d'un second enregistrement.


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut Problème lors d'un second enregistrement.
    Bonjour à tous.

    Je tiens a m'excuser d'avance du pavé de code que je vais vous donner mais mon erreur ce situe quelque-part là dedans et je n'arrives pas à trouver ou...

    En fait mon programme sers à enregistrer des données de matériel: type de matériel, numéro de séries etc etc.
    J'arrive à en ajouter et à les enregistrer lors du 1er enregistrement.
    Exemple j'ai mon fichier avec 30, 40 ou même 500000 objets enregistrés, si je veux en ajouter 1 pas de soucis il me l'ajoute à la suite.
    En revanche, avec ce code, si je veux après en avoir ajouté 1, en rajouter un second.....Ben..... craboum.....
    Ca me supprime tous ceux qui étaient deja présents et me fait un clonage (je ne sais pas combien de fois je pense que c'est assez aléatoire) de mon dernier matériel enregistré.
    Du coup je me retrouves avec mon second matériel 20 30 5000 fois dans mon fichier....
    Je ne trouve pas d'où viens ce problème...
    Si quelqu'un peut m'éclairer je suis preneur

    P.S. : avec l'aide pas à pas de vs2013, il ne m'affiche même pas les valeurs de mes textbox je ne sais pas pourquoi, pourtant dans mon fichier je les retrouves bien.
    P.S.2 : je pense que mon problème viens de mon "Enregistrement_Matériel()" mais sans réelle certitude.

    Voila je pense avoir tout dit.
    Merci par avance.



    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    Public Class Ajouter_matériel
        Dim ComboBox As New ComboBox 'Créé une nouvelle Combobox nommée ComboBox.'
        Dim Label As New List(Of Label) 'Créé une nouvelle liste de Label nommée Label.'
        Dim TextBox As New List(Of TextBox) 'Créé une nouvelle liste de TextBox nommée TextBox.'
        Dim Boutons As New List(Of Button) 'Créé une nouvelle liste de Button nommée Boutons.'
        Dim type_produit As String = "" 'Créé une chaine de caractères nommée type_produit.'
     
        Private Sub Ajouter_matériel_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'S'exécute lors du chargement de la fenêtre.'
     
            ComboBox.Visible = True 'La combobox sera visible dès le chargement de la fenêtre d'ajout de matériel.'
            ComboBox.DropDownStyle = ComboBoxStyle.DropDownList 'Définit la ComboBox comme non modifiable par l'utilisateur.'
     
            For i As Integer = 0 To 1
     
                Boutons.Add(New Button) 'Ajoute un nouveau Button à la liste Boutons."
                Boutons(i).Width = 150 'Définit la largeur du Button créé.'
                AddHandler Boutons(i).Click, AddressOf Boutons_Click 'Créé un événement lors d'un clic sur le nouveau Button, et lance le sous-programme Boutons_Click.'
     
            Next
     
            With ComboBox.Items 'Avec le terme "ComboBox.Items",'
                .Add("Moteur Asynchrone.") 'Ajouter l'item "Moteur Asynchrone.".'
                .Add("Moteur Brushless.") 'Ajouter l'item "Moteur Brushless.".'
                .Add("Motoréducteur.") 'Ajouter l'item "Motoréducteur.".'
                .Add("Variateur.") 'Ajouter l'item "Variateur.".'
                .Add("Poste à souder.") 'Ajouter l'item "Poste à souder.".'
                .Add("Découpeur Plasma.") 'Ajouter l'item "Découpeur Plasma.".'
                .Add("Chargeur Démarreur.") 'Ajouter l'item "Chargeur Démarreur.".'
                .Add("Autre.") 'Ajouter l'item "Autre.".'
            End With
     
            FlowLayoutPanel.AutoScroll = True 'Donne au FlowLayoutPanel la possibilité d'addapter une barre de défillement si necessaire.'
            FlowLayoutPanel.Controls.Add(ComboBox) 'Ajoute la ComboBox dans le FlowLayoutPanel.'
     
            AddHandler ComboBox.SelectedIndexChanged, AddressOf ComboBox_ChangeIndex 'Créé un événement lorsque l'élément dans la comboBox est changé par l'utilisateur.'
     
        End Sub
     
        Private Sub ComboBox_ChangeIndex() 'S'exécute lorsque un item de la ComboBox est changé.'
     
            Label.Clear() 'Supprime tous les Labels dans la liste "Label".'
            TextBox.Clear() 'Supprime toutes les TextBox dans la liste "TextBox".'
            FlowLayoutPanel.Controls.Clear() 'Supprime tous les controles présents dans le "FlowLayoutPanel".'
            ComboBox.Height = 40 'Change la hauteur de la ComboBox pour une bonne mise en page.'
            FlowLayoutPanel.Controls.Add(ComboBox) 'Ajoute la ComboBox avec sa nouvelle taille dans le "FlowLayoutPanel".'
     
            If ComboBox.SelectedIndex = 0 Or ComboBox.SelectedIndex = 3 Or ComboBox.SelectedIndex = 6 Or ComboBox.SelectedIndex = 7 Then 'Si l'item sélectionné dans la ComboBox est "Moteur Asynchrone." ou "Variateur." ou "Chargeur Demarreur." ou "Autre.",'
     
                For i As Integer = 0 To 4 'Boucle de 4 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 4.'
     
                If ComboBox.SelectedIndex = 0 Then 'Si l'item sélectionné dans la ComboBox est "Moteur Asynchrone.",'
                    Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
                Else 'Sinon (si l'item sélectionné dans la ComboBox est "Variateur." ou "Chargeur Demarreur." ou "Autre",)
                    Label(3).Text = "Tension de sortie :" 'Définit le texte du Label(3).'
                End If 'Fin de la condition.'
     
                Label(4).Text = "Puissance :" 'Définit le texte du Label(4).'
     
            ElseIf ComboBox.SelectedIndex = 1 Then 'Sinon si l'item sélectionné dans la ComboBox est "Moteur Brushless",'
     
                For i As Integer = 0 To 5 'Boucle de 5 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 5.'
     
                Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
                Label(4).Text = "Référence du codeur :" 'Définit le texte du Label(4).'
                Label(5).Text = "Puissance :" 'Définit le texte du Label(5).'
     
            ElseIf ComboBox.SelectedIndex = 2 Then 'Sinon si l'item sélectionné dans la ComboBox est "Motoréducteurs",'
     
                For i As Integer = 0 To 7 'Boucle de 7 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 7.'
     
                Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
                Label(4).Text = "Marque du réducteur :" 'Définit le texte du Label(4).'
                Label(5).Text = "N° de série du réducteur :" 'Définit le texte du Label(5).'
                Label(6).Text = "Rapport de réduction :" 'Définit le texte du Label(6).'
                Label(7).Text = "Puissance :" 'Définit le texte du Label(7).'
     
            ElseIf ComboBox.SelectedIndex = 4 Or ComboBox.SelectedIndex = 5 Then 'Sinon si l'item sélectionné dans la ComboBox est "Poste à souder" ou "Découpeur Plasma",'
     
                For i As Integer = 0 To 3 'Boucle de 3 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 3.'
     
                Label(3).Text = "Puissance :" 'Définit le texte du Label(3).'
     
            End If 'Fin de la condition.'
     
            FlowLayoutPanel.SetFlowBreak(ComboBox, True) 'Oblige l'interface à aller à la ligne après la ComboBox dans le FlowLayoutPanel.'
     
            ComboBox.Height = 21 'Définit la hauteur de la ComboBox à 21 pixels.'
            Label(0).Text = "Marque :" 'Définit le texte du Label(0).'
            Label(1).Text = "N° de série :" 'Définit le texte du Label(1).'
            Label(2).Text = "Tension d'alimentation :" 'Définit le texte du Label(2).'
     
            For i As Integer = 0 To 1 'Boucle de 1 rotations. Chaque rotation ajoute +1 à i.'
                FlowLayoutPanel.Controls.Add(Boutons(i)) 'Ajoute le "Boutons(i)" créé au chargement de la fenêtre dans le "FlowLayoutPanel".'
            Next 'Ajoute +1 à i tant que i est différent de 1.'
     
            Boutons(0).Text = "Annuler" 'Définit le texte du Boutons(0).'
            Boutons(1).Text = "Enregistrer" 'Définit le texte du Boutons(1).'
     
        End Sub
     
        Private Sub Boutons_Click() 'S'exécute lors d'un clic sur un des 2 Boutons créé lors du chargement de la fenêtre.'
     
            Machines_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel nouvellement créé aux machines du client.'
            Nom_Client.Machine.Add(Machines_Client) 'Ajoute les machines client au client.'
     
            If Boutons(0).Focused Then 'Si c'est un clic sur le bouton "Annuler", alors :'
     
                Lecture_Fiche_Client.Show() 'Affiche la page d'accueuil.'
                Me.Close() 'Ferme la fenêtre en cours.'
     
            Else 'Sinon, si c'est un clic sur le bouton "Enregistrer,"
     
                If ComboBox.SelectedIndex <> 7 Then 'Si l'item sélectionné dans la ComboBox est différent de "Autre :", alors :'
     
                    Matériel_Client.Type_Produit = ComboBox.SelectedItem 'Le type de produit dans matériel client est égal au texte de l'item sélectionné dans la ComboBox.'
                    Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel.'
     
                Else 'Sinon, si l'item sélectionné dans la ComboBox est "Autre ",'
     
                    type_produit = InputBox("Quel est le type de produit ?", "Type de produit.") 'Créé une fenêtre de saisie pour nommer le produit et entre ce nom dans la variable "type_produit".'
     
                    If type_produit <> "" Then 'Si la variable type_produit contient du texte, alors :' 
     
                        Matériel_Client.Type_Produit = "Autre : " & type_produit 'Type_Produit prends la valeur "Autre : " suivit de la valeur de type_produit. 
                        Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel.'
     
                    End If 'Fin de la condition.'
     
                End If 'Fin de la condition.'
     
            End If 'Fin de la condition.'
     
        End Sub
     
        Private Sub Mise_En_Page_Ajout_Matériel(i As Integer)
     
            Label.Add(New Label) 'Ajoute un nouveau Label dans la liste Label.'
            TextBox.Add(New TextBox) 'Ajoute une nouvelle TextBox dans la liste TextBox.'
     
            With Label(i) 'Avec le terme Label(i), (i = numéro de rotation)'
                .Height = TextBox(i).Height 'Règle la hauteur du Label(i) au même niveau que la hauteur de la TextBox(i).'
                .Width = 150 'Règle la largeur du Label(i) à 150 pixels.'
                .TextAlign = ContentAlignment.MiddleLeft 'Définit l'alignement du texte contenu dans le Label(i) comme centré à gauche.'
            End With
     
            TextBox(i).Width = 150 'Définit la largeur de la TextBox(i) à 150 pixels.'
            FlowLayoutPanel.Controls.Add(Label(i)) 'Ajoute le Label(i) dans le FlowLayoutPanel.'
            FlowLayoutPanel.Controls.Add(TextBox(i)) 'Ajoute la TextBox(i) dans le FlowLayoutPanel.'
            FlowLayoutPanel.SetFlowBreak(TextBox(i), True) 'Oblige l'interface à aller à la ligne après chaque TextBox(i) dans le FlowLayoutPanel.'
     
        End Sub
     
        Private Sub Enregistrement_Matériel()
     
            If ComboBox.SelectedIndex = 0 Then 'Si combobox = Moteur Asynchrone :
     
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Marque = TextBox(0).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Num_Série = TextBox(1).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Tension_Entrée = TextBox(2).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Rotations_Par_Minutes = TextBox(3).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Puissance = TextBox(4).Text
     
            ElseIf ComboBox.SelectedIndex = 1 Then 'Si combobox = moteur brushless
     
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Marque = TextBox(0).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Num_Série = TextBox(1).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Tension_Entrée = TextBox(2).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Rotations_Par_Minutes = TextBox(3).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Référence_Codeur = TextBox(4).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Puissance = TextBox(5).Text
     
            ElseIf ComboBox.SelectedIndex = 2 Then 'si combobox = motoréducteur
     
                Matériel_Client.Référence.Référence_Réducteur.Add(Réducteur)
                'TextBox(0).Text
                'TextBox(1).Text
                'TextBox(2).Text
                'TextBox(3).Text
                'TextBox(4).Text
                'TextBox(5).Text
                'TextBox(6).Text
                'TextBox(7).Text
     
            ElseIf ComboBox.SelectedIndex = 4 Then 'si combobox = variateur
     
                'TextBox(0).Text
                'TextBox(1).Text
                'TextBox(2).Text
                'TextBox(3).Text
     
            ElseIf ComboBox.SelectedIndex = 5 Then 'si combobox = poste à souder
     
                'TextBox(0).Text
                'TextBox(1).Text
                'TextBox(2).Text
                'TextBox(3).Text
     
            Else
     
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Marque = TextBox(0).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Num_Série = TextBox(1).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Tension_Entrée = TextBox(2).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Tension_Sortie = TextBox(3).Text
                Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel(Nom_Client.Machine(Nom_Client.Machine.Count - 1).Matériel.Count - 1).Référence.Puissance = TextBox(4).Text
     
            End If
     
            Enregistre_Fiche_Client(Fichier_Client, Nom_Client) 'Lance le sous programme d'enregistrement, qui va enregistrer dans le fichier client, le nouveau matériel.'
     
            If Not Erreur Then 'Si aucune erreur ne ce produit lors de l'enregistrement, alors :'
                MsgBox("Matériel ajouté au client " & Nom_Client.Société.Nom & " avec succes.", MsgBoxStyle.Information, "Opération Réussie.") 'Affiche un message comme quoi tout c'est bien déroulé.'
            End If 'Fin de la condition.'
     
        End Sub
     
    End Class

  2. #2
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    C'est re moi.
    Bon j'ai un peut avancé en fait mon problème est au niveau de la ligne 111 avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Machines_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel nouvellement créé aux machines du client.'
    Je réfléchis à une solution mais je n'arrives pas à trouver ou poser cette**** de ligne

  3. #3
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Bonjour,

    Qu'est ce qu'il y a dans :

    Machines_Client.Matériel.Add()

    Si il s'agit d'une fonction... ou bien juste d'une liste ?
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  4. #4
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    non non c'est une liste oui ! la seule fonction non présente dans le code est la fonction d'enregistrement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Enregistre_Fiche_Client(Fichier_Client, Nom_Client) 'Lance le sous programme d'enregistrement, qui va enregistrer dans le fichier client, le nouveau matériel.'

  5. #5
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Et si je comprends bien, c'est cette fonction qui enregistre X fois le même élément dans un fichier c'est ça ?

    Au quel cas, montre nous donc le code de cette fonction...
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  6. #6
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    non en fait je me suis rendu compte que lors du passage à la ligne 116 et 117, il me créé un clone. (ligne 111 112 au premier post.)
    pour être plus clair :
    voici mon fichier avant enregistrement d'un nouveau matériel :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <Client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Société Nom="Bigard">
        <Adresse Ville="" C_Postal="" Rue="">
          <Téléphone Numéro="" Nom="" />
          <Adresse_Mail Mail="" Nom="" />
        </Adresse>
      </Société>
      <Feuille Nom="Divers">
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1" />
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1/2" />
      </Feuille>
      <Feuille Nom="Prog">
        <Interventions Num_Facture="" Date="" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 2" />
      </Feuille>
    </Client>
    j'ajoute un matériel (exemple un moteur asynchrone) :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <Client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Société Nom="Bigard">
        <Adresse Ville="" C_Postal="" Rue="">
          <Téléphone Numéro="" Nom="" />
          <Adresse_Mail Mail="" Nom="" />
        </Adresse>
      </Société>
      <Matériel Type_De_Produit="Moteur Asynchrone.">
        <Référence Marque="Sew" Num_Série="123456789" V_Input="230/400V" V_Output="" RPM="3000" Ref_Codeur="" Puissance="4kW" />
      </Matériel>
      <Feuille Nom="Divers">
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1" />
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1/2" />
      </Feuille>
      <Feuille Nom="Prog">
        <Interventions Num_Facture="" Date="" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 2" />
      </Feuille>
    </Client>
    J'ajoute un second moteur asynchrone et mon fichier deviens :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <Client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Société Nom="Bigard">
        <Adresse Ville="" C_Postal="" Rue="">
          <Téléphone Numéro="" Nom="" />
          <Adresse_Mail Mail="" Nom="" />
        </Adresse>
      </Société>
      <Matériel Type_De_Produit="Moteur Asynchrone.">
        <Référence Marque="Sew" Num_Série="123456789" V_Input="230/400V" V_Output="" RPM="3000" Ref_Codeur="" Puissance="4kW" />
        <Référence Marque="Sew usocome" Num_Série="56879" V_Input="230/400V" V_Output="" RPM="3000" Ref_Codeur="" Puissance="10kW" />
      </Matériel>
      <Matériel Type_De_Produit="Moteur Asynchrone.">
        <Référence Marque="Sew" Num_Série="123456789" V_Input="230/400V" V_Output="" RPM="3000" Ref_Codeur="" Puissance="4kW" />
        <Référence Marque="Sew usocome" Num_Série="56879" V_Input="230/400V" V_Output="" RPM="3000" Ref_Codeur="" Puissance="10kW" />
      </Matériel>
      <Feuille Nom="Divers">
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1" />
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1/2" />
      </Feuille>
      <Feuille Nom="Prog">
        <Interventions Num_Facture="" Date="" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 2" />
      </Feuille>
    </Client>
    j'ai un peut modifier mon code et il est a présent comme 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    Public Class Ajouter_matériel
        Dim ComboBox As New ComboBox 'Créé une nouvelle Combobox nommée ComboBox.'
        Dim Label As New List(Of Label) 'Créé une nouvelle liste de Label nommée Label.'
        Dim TextBox As New List(Of TextBox) 'Créé une nouvelle liste de TextBox nommée TextBox.'
        Dim Boutons As New List(Of Button) 'Créé une nouvelle liste de Button nommée Boutons.'
        Dim type_produit As String = "" 'Créé une chaine de caractères nommée type_produit.'
        Dim Police_Labels As Font
     
        Private Sub Ajouter_matériel_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'S'exécute lors du chargement de la fenêtre.'
     
            With ComboBox 'Avec le terme "ComboBox",'
                .Visible = True 'La combobox sera visible dès le chargement de la fenêtre d'ajout de matériel.'
                .DropDownStyle = ComboBoxStyle.DropDownList 'Définit la ComboBox comme non modifiable par l'utilisateur.'
                .Width = 150 'Règle la largeur de la ComboBox à 150 pixels.'
     
                With .Items 'Avec le terme ".Items",'
                    .Add("Moteur Asynchrone.") 'Ajouter l'item "Moteur Asynchrone.".'
                    .Add("Moteur Brushless.") 'Ajouter l'item "Moteur Brushless.".'
                    .Add("Motoréducteur.") 'Ajouter l'item "Motoréducteur.".'
                    .Add("Variateur.") 'Ajouter l'item "Variateur.".'
                    .Add("Poste à souder.") 'Ajouter l'item "Poste à souder.".'
                    .Add("Découpeur Plasma.") 'Ajouter l'item "Découpeur Plasma.".'
                    .Add("Chargeur Démarreur.") 'Ajouter l'item "Chargeur Démarreur.".'
                    .Add("Autre.") 'Ajouter l'item "Autre.".'
                End With
     
            End With
     
            For i As Integer = 0 To 1
     
                Boutons.Add(New Button) 'Ajoute un nouveau Button à la liste Boutons."
                Boutons(i).Width = 150 'Définit la largeur du Button créé.'
                AddHandler Boutons(i).Click, AddressOf Boutons_Click 'Créé un événement lors d'un clic sur le nouveau Button, et lance le sous-programme Boutons_Click.'
     
            Next
     
            FlowLayoutPanel.AutoScroll = True 'Donne au FlowLayoutPanel la possibilité d'addapter une barre de défillement si necessaire.'
            FlowLayoutPanel.Controls.Add(ComboBox) 'Ajoute la ComboBox dans le FlowLayoutPanel.'
     
            AddHandler ComboBox.SelectedIndexChanged, AddressOf ComboBox_ChangeIndex 'Créé un événement lorsque l'élément dans la comboBox est changé par l'utilisateur.'
     
        End Sub
     
        Private Sub ComboBox_ChangeIndex() 'S'exécute lorsque un item de la ComboBox est changé.'
     
            Label.Clear() 'Supprime tous les Labels dans la liste "Label".'
            TextBox.Clear() 'Supprime toutes les TextBox dans la liste "TextBox".'
            FlowLayoutPanel.Controls.Clear() 'Supprime tous les controles présents dans le "FlowLayoutPanel".'
            ComboBox.Height = 40 'Change la hauteur de la ComboBox pour une bonne mise en page.'
            FlowLayoutPanel.Controls.Add(ComboBox) 'Ajoute la ComboBox avec sa nouvelle taille dans le "FlowLayoutPanel".'
     
            If ComboBox.SelectedIndex = 0 Or ComboBox.SelectedIndex = 3 Or ComboBox.SelectedIndex = 6 Or ComboBox.SelectedIndex = 7 Then 'Si l'item sélectionné dans la ComboBox est "Moteur Asynchrone." ou "Variateur." ou "Chargeur Demarreur." ou "Autre.",'
     
                For i As Integer = 0 To 4 'Boucle de 4 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 4.'
     
                If ComboBox.SelectedIndex = 0 Then 'Si l'item sélectionné dans la ComboBox est "Moteur Asynchrone.",'
                    Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
                Else 'Sinon (si l'item sélectionné dans la ComboBox est "Variateur." ou "Chargeur Demarreur." ou "Autre",)
                    Label(3).Text = "Tension de sortie :" 'Définit le texte du Label(3).'
                End If 'Fin de la condition.'
     
                Label(4).Text = "Puissance :" 'Définit le texte du Label(4).'
     
            ElseIf ComboBox.SelectedIndex = 1 Then 'Sinon si l'item sélectionné dans la ComboBox est "Moteur Brushless",'
     
                For i As Integer = 0 To 5 'Boucle de 5 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 5.'
     
                Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
                Label(4).Text = "Référence du codeur :" 'Définit le texte du Label(4).'
                Label(5).Text = "Puissance :" 'Définit le texte du Label(5).'
     
            ElseIf ComboBox.SelectedIndex = 2 Then 'Sinon si l'item sélectionné dans la ComboBox est "Motoréducteurs",'
     
                For i As Integer = 0 To 7 'Boucle de 7 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 7.'
     
                Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
                Label(4).Text = "Marque du réducteur :" 'Définit le texte du Label(4).'
                Label(5).Text = "N° de série du réducteur :" 'Définit le texte du Label(5).'
                Label(6).Text = "Rapport de réduction :" 'Définit le texte du Label(6).'
                Label(7).Text = "Puissance :" 'Définit le texte du Label(7).'
     
            ElseIf ComboBox.SelectedIndex = 4 Or ComboBox.SelectedIndex = 5 Then 'Sinon si l'item sélectionné dans la ComboBox est "Poste à souder" ou "Découpeur Plasma",'
     
                For i As Integer = 0 To 3 'Boucle de 3 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 3.'
     
                Label(3).Text = "Puissance :" 'Définit le texte du Label(3).'
     
            End If 'Fin de la condition.'
     
            FlowLayoutPanel.SetFlowBreak(ComboBox, True) 'Oblige l'interface à aller à la ligne après la ComboBox dans le FlowLayoutPanel.'
     
            ComboBox.Height = 21 'Définit la hauteur de la ComboBox à 21 pixels.'
            Label(0).Text = "Marque :" 'Définit le texte du Label(0).'
            Label(1).Text = "N° de série :" 'Définit le texte du Label(1).'
            Label(2).Text = "Tension d'alimentation :" 'Définit le texte du Label(2).'
     
            For i As Integer = 0 To 1 'Boucle de 1 rotations. Chaque rotation ajoute +1 à i.'
                FlowLayoutPanel.Controls.Add(Boutons(i)) 'Ajoute le "Boutons(i)" créé au chargement de la fenêtre dans le "FlowLayoutPanel".'
            Next 'Ajoute +1 à i tant que i est différent de 1.'
     
            Boutons(0).Text = "Annuler" 'Définit le texte du Boutons(0).'
            Boutons(1).Text = "Enregistrer" 'Définit le texte du Boutons(1).'
     
        End Sub
     
        Private Sub Boutons_Click() 'S'exécute lors d'un clic sur un des 2 Boutons créé lors du chargement de la fenêtre.'
     
            Matériel_Client.Référence.Add(New Référence)
            Nom_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel client au client.'
     
            If Boutons(0).Focused Then 'Si c'est un clic sur le bouton "Annuler", alors :'
     
                Lecture_Fiche_Client.Show() 'Affiche la page d'accueuil.'
                Me.Close() 'Ferme la fenêtre en cours.'
     
            Else 'Sinon, si c'est un clic sur le bouton "Enregistrer,"
     
                If ComboBox.SelectedIndex <> 7 Then 'Si l'item sélectionné dans la ComboBox est différent de "Autre :", alors :'
     
                    Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Type_Produit = ComboBox.SelectedItem 'Le type de produit dans matériel client est égal au texte de l'item sélectionné dans la ComboBox.'
                    Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel.'
     
                Else 'Sinon, si l'item sélectionné dans la ComboBox est "Autre ",'
     
                    type_produit = InputBox("Quel est le type de produit ?", "Type de produit.") 'Créé une fenêtre de saisie pour nommer le produit et entre ce nom dans la variable "type_produit".'
     
                    If type_produit <> "" Then 'Si la variable type_produit contient du texte, alors :' 
     
                        Matériel_Client.Type_Produit = "Autre : " & type_produit 'Type_Produit prends la valeur "Autre : " suivit de la valeur de type_produit. 
                        Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel.'
     
                    End If 'Fin de la condition.'
     
                End If 'Fin de la condition.'
     
            End If 'Fin de la condition.'
     
        End Sub
     
        Private Sub Mise_En_Page_Ajout_Matériel(i As Integer)
     
            Label.Add(New Label) 'Ajoute un nouveau Label dans la liste Label.'
            TextBox.Add(New TextBox) 'Ajoute une nouvelle TextBox dans la liste TextBox.'
     
            With Label(i) 'Avec le terme Label(i), (i = numéro de rotation)'
                .Height = TextBox(i).Height 'Règle la hauteur du Label(i) au même niveau que la hauteur de la TextBox(i).'
                .Width = 150 'Règle la largeur du Label(i) à 150 pixels.'
                .TextAlign = ContentAlignment.MiddleLeft 'Définit l'alignement du texte contenu dans le Label(i) comme centré à gauche.'
                .Font = New Font("Comic Sans Ms", 10.0!, FontStyle.Bold, GraphicsUnit.Point, CType(0, Byte))
            End With
     
            TextBox(i).Width = 150 'Définit la largeur de la TextBox(i) à 150 pixels.'
            FlowLayoutPanel.Controls.Add(Label(i)) 'Ajoute le Label(i) dans le FlowLayoutPanel.'
            FlowLayoutPanel.Controls.Add(TextBox(i)) 'Ajoute la TextBox(i) dans le FlowLayoutPanel.'
            FlowLayoutPanel.SetFlowBreak(TextBox(i), True) 'Oblige l'interface à aller à la ligne après chaque TextBox(i) dans le FlowLayoutPanel.'
     
        End Sub
     
        Private Sub Enregistrement_Matériel()
     
            If ComboBox.SelectedIndex = 0 Then 'Si combobox = Moteur Asynchrone :
     
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Marque = TextBox(0).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Num_Série = TextBox(1).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Tension_Entrée = TextBox(2).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Rotations_Par_Minutes = TextBox(3).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Puissance = TextBox(4).Text
     
            ElseIf ComboBox.SelectedIndex = 1 Then 'Si combobox = moteur brushless
     
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Marque = TextBox(0).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Num_Série = TextBox(1).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Tension_Entrée = TextBox(2).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Rotations_Par_Minutes = TextBox(3).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Référence_Codeur = TextBox(4).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Puissance = TextBox(5).Text
     
            ElseIf ComboBox.SelectedIndex = 2 Then 'si combobox = motoréducteur
     
                Matériel_Client.Référence(Matériel_Client.Référence.Count - 1).Référence_Réducteur.Add(Réducteur)
                'TextBox(0).Text
                'TextBox(1).Text
                'TextBox(2).Text
                'TextBox(3).Text
                'TextBox(4).Text
                'TextBox(5).Text
                'TextBox(6).Text
                'TextBox(7).Text
     
            ElseIf ComboBox.SelectedIndex = 4 Then 'si combobox = variateur
     
                'TextBox(0).Text
                'TextBox(1).Text
                'TextBox(2).Text
                'TextBox(3).Text
     
            ElseIf ComboBox.SelectedIndex = 5 Then 'si combobox = poste à souder
     
                'TextBox(0).Text
                'TextBox(1).Text
                'TextBox(2).Text
                'TextBox(3).Text
     
            Else
     
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Marque = TextBox(0).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Num_Série = TextBox(1).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Tension_Entrée = TextBox(2).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Tension_Sortie = TextBox(3).Text
                Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence(Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Référence.Count - 1).Puissance = TextBox(4).Text
     
            End If
     
            Enregistre_Fiche_Client(Fichier_Client, Nom_Client) 'Lance le sous programme d'enregistrement, qui va enregistrer dans le fichier client, le nouveau matériel.'
     
            If Not Erreur Then 'Si aucune erreur ne ce produit lors de l'enregistrement, alors :'
                MsgBox("Matériel ajouté au client " & Nom_Client.Société.Nom & " avec succes.", MsgBoxStyle.Information, "Opération Réussie.") 'Affiche un message comme quoi tout c'est bien déroulé.'
            End If 'Fin de la condition.'
     
        End Sub
     
    End Class
    si vous voulez l'autre partie je peux vous la donner mais mon problème de proviens pas de mon autre partie, du moins je ne pense pas.

  7. #7
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    En revanche si je place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nom_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel client au client.'
    dans la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Private Sub ComboBox_ChangeIndex()
    , mon fichier deviens :

    1er ajout :
    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
    <?xml version="1.0" encoding="utf-8"?>
    <Client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Société Nom="Bigard">
        <Adresse Ville="" C_Postal="" Rue="">
          <Téléphone Numéro="" Nom="" />
          <Adresse_Mail Mail="" Nom="" />
        </Adresse>
      </Société>
      <Matériel Type_De_Produit="Moteur Asynchrone.">
        <Référence Marque="ajout1" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
      </Matériel>
      <Feuille Nom="Divers">
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1" />
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1/2" />
      </Feuille>
      <Feuille Nom="Prog">
        <Interventions Num_Facture="" Date="" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 2" />
      </Feuille>
    </Client>
    et 2eme ajout :
    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
    <?xml version="1.0" encoding="utf-8"?>
    <Client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Société Nom="Bigard">
        <Adresse Ville="" C_Postal="" Rue="">
          <Téléphone Numéro="" Nom="" />
          <Adresse_Mail Mail="" Nom="" />
        </Adresse>
      </Société>
      <Matériel Type_De_Produit="Moteur Asynchrone.">
        <Référence Marque="ajout1" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
        <Référence Marque="ajout2" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
      </Matériel>
      <Feuille Nom="Divers">
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1" />
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1/2" />
      </Feuille>
      <Feuille Nom="Prog">
        <Interventions Num_Facture="" Date="" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 2" />
      </Feuille>
    </Client>
    mais si je change ma combobox et me place dans moteur brushless par exemple... ca donne 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?xml version="1.0" encoding="utf-8"?>
    <Client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Société Nom="Bigard">
        <Adresse Ville="" C_Postal="" Rue="">
          <Téléphone Numéro="" Nom="" />
          <Adresse_Mail Mail="" Nom="" />
        </Adresse>
      </Société>
      <Matériel Type_De_Produit="Moteur Brushless.">
        <Référence Marque="ajout1" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
        <Référence Marque="ajout2" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
        <Référence Marque="ajout3" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
      </Matériel>
      <Matériel Type_De_Produit="Moteur Brushless.">
        <Référence Marque="ajout1" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
        <Référence Marque="ajout2" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
        <Référence Marque="ajout3" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
      </Matériel>
      <Feuille Nom="Divers">
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1" />
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1/2" />
      </Feuille>
      <Feuille Nom="Prog">
        <Interventions Num_Facture="" Date="" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 2" />
      </Feuille>
    </Client>
    or je voudrais garder mes 2 ajouts dans moteur asynchronne et un nouveau matériel oui avec mon ajout 3
    en gros je voudrais ça :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <Client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Société Nom="Bigard">
        <Adresse Ville="" C_Postal="" Rue="">
          <Téléphone Numéro="" Nom="" />
          <Adresse_Mail Mail="" Nom="" />
        </Adresse>
      </Société>
      <Matériel Type_De_Produit="Moteur Asynchrone.">
        <Référence Marque="ajout1" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
        <Référence Marque="ajout2" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
      </Matériel>
      <Matériel Type_De_Produit="Moteur Brushless.">
        <Référence Marque="ajout3" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
      </Matériel>
      <Feuille Nom="Divers">
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1" />
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1/2" />
      </Feuille>
      <Feuille Nom="Prog">
        <Interventions Num_Facture="" Date="" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 2" />
      </Feuille>
    </Client>
    Voila j'espère que c'est plus clair

  8. #8
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    C'est tout à fait clair. Mais c'est dur de voir où il se trompe "en aveugle".

    Pour un problème de ce type (algorithmique), as tu essayer de faire du pas-à-pas ?

    Car là tu comprendras par où le code passe, et pourquoi il se trompe
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  9. #9
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Oui ! J'avoue ne faire quasiment qu'avec ça pour déboguer .

    J'ai avancé à force d'analyse et en modifiant le code petit à petit. Je l'ai rendu plus lisible.

    il ressemble à ça maintenant :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    Public Class Ajouter_matériel
        Dim ComboBox As New ComboBox 'Créé une nouvelle Combobox nommée ComboBox.'
        Dim Label As New List(Of Label) 'Créé une nouvelle liste de Label nommée Label.'
        Dim TextBox As New List(Of TextBox) 'Créé une nouvelle liste de TextBox nommée TextBox.'
        Dim Boutons As New List(Of Button) 'Créé une nouvelle liste de Button nommée Boutons.'
        Dim type_produit As String = "" 'Créé une chaine de caractères nommée type_produit.'
        Dim Police_Labels As Font 'Créé une police.'
     
        Private Sub Ajouter_matériel_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'S'exécute lors du chargement de la fenêtre.'
     
            With ComboBox 'Avec le terme "ComboBox",'
                .Visible = True 'La combobox sera visible dès le chargement de la fenêtre d'ajout de matériel.'
                .DropDownStyle = ComboBoxStyle.DropDownList 'Définit la ComboBox comme non modifiable par l'utilisateur.'
                .Width = 150 'Règle la largeur de la ComboBox à 150 pixels.'
     
                With .Items 'Avec le terme ".Items",'
                    .Add("Moteur Asynchrone.") 'Ajouter l'item "Moteur Asynchrone.".'
                    .Add("Moteur Brushless.") 'Ajouter l'item "Moteur Brushless.".'
                    .Add("Motoréducteur.") 'Ajouter l'item "Motoréducteur.".'
                    .Add("Variateur.") 'Ajouter l'item "Variateur.".'
                    .Add("Poste à souder.") 'Ajouter l'item "Poste à souder.".'
                    .Add("Découpeur Plasma.") 'Ajouter l'item "Découpeur Plasma.".'
                    .Add("Chargeur Démarreur.") 'Ajouter l'item "Chargeur Démarreur.".'
                    .Add("Autre.") 'Ajouter l'item "Autre.".'
                End With
     
            End With
     
            For i As Integer = 0 To 1
     
                Boutons.Add(New Button) 'Ajoute un nouveau Button à la liste Boutons."
                Boutons(i).Width = 150 'Définit la largeur du Button créé.'
                AddHandler Boutons(i).Click, AddressOf Boutons_Click 'Créé un événement lors d'un clic sur le nouveau Button, et lance le sous-programme Boutons_Click.'
     
            Next
     
            FlowLayoutPanel.AutoScroll = True 'Donne au FlowLayoutPanel la possibilité d'addapter une barre de défillement si necessaire.'
            FlowLayoutPanel.Controls.Add(ComboBox) 'Ajoute la ComboBox dans le FlowLayoutPanel.'
     
            AddHandler ComboBox.SelectedIndexChanged, AddressOf ComboBox_ChangeIndex 'Créé un événement lorsque l'élément dans la comboBox est changé par l'utilisateur.'
     
        End Sub
     
        Private Sub ComboBox_ChangeIndex() 'S'exécute lorsque un item de la ComboBox est changé.'
     
            Label.Clear() 'Supprime tous les Labels dans la liste "Label".'
            TextBox.Clear() 'Supprime toutes les TextBox dans la liste "TextBox".'
            FlowLayoutPanel.Controls.Clear() 'Supprime tous les controles présents dans le "FlowLayoutPanel".'
            ComboBox.Height = 40 'Change la hauteur de la ComboBox pour une bonne mise en page.'
            FlowLayoutPanel.Controls.Add(ComboBox) 'Ajoute la ComboBox avec sa nouvelle taille dans le "FlowLayoutPanel".'
     
            If ComboBox.SelectedIndex = 0 Or ComboBox.SelectedIndex = 3 Or ComboBox.SelectedIndex = 6 Or ComboBox.SelectedIndex = 7 Then 'Si l'item sélectionné dans la ComboBox est "Moteur Asynchrone." ou "Variateur." ou "Chargeur Demarreur." ou "Autre.",'
     
                For i As Integer = 0 To 4 'Boucle de 4 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 4.'
     
                If ComboBox.SelectedIndex = 0 Then 'Si l'item sélectionné dans la ComboBox est "Moteur Asynchrone.",'
                    Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
                Else 'Sinon (si l'item sélectionné dans la ComboBox est "Variateur." ou "Chargeur Demarreur." ou "Autre",)
                    Label(3).Text = "Tension de sortie :" 'Définit le texte du Label(3).'
                End If 'Fin de la condition.'
     
                Label(4).Text = "Puissance :" 'Définit le texte du Label(4).'
     
            ElseIf ComboBox.SelectedIndex = 1 Then 'Sinon si l'item sélectionné dans la ComboBox est "Moteur Brushless",'
     
                For i As Integer = 0 To 5 'Boucle de 5 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 5.'
     
                Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
                Label(4).Text = "Référence du codeur :" 'Définit le texte du Label(4).'
                Label(5).Text = "Puissance :" 'Définit le texte du Label(5).'
     
            ElseIf ComboBox.SelectedIndex = 2 Then 'Sinon si l'item sélectionné dans la ComboBox est "Motoréducteurs",'
     
                For i As Integer = 0 To 7 'Boucle de 7 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 7.'
     
                Label(3).Text = "Rotation par minutes :" 'Définit le texte du Label(3).'
                Label(4).Text = "Marque du réducteur :" 'Définit le texte du Label(4).'
                Label(5).Text = "N° de série du réducteur :" 'Définit le texte du Label(5).'
                Label(6).Text = "Rapport de réduction :" 'Définit le texte du Label(6).'
                Label(7).Text = "Puissance :" 'Définit le texte du Label(7).'
     
            ElseIf ComboBox.SelectedIndex = 4 Or ComboBox.SelectedIndex = 5 Then 'Sinon si l'item sélectionné dans la ComboBox est "Poste à souder" ou "Découpeur Plasma",'
     
                For i As Integer = 0 To 3 'Boucle de 3 rotations. Chaque rotation ajoute +1 à i.'
                    Mise_En_Page_Ajout_Matériel(i) 'Lance le sous programme "Mise_En_Page_Ajout_Matériel" et lui envoie la valeur de i.'
                Next 'Ajoute +1 à i tant que i est différent de 3.'
     
                Label(3).Text = "Puissance :" 'Définit le texte du Label(3).'
     
            End If 'Fin de la condition.'
     
            FlowLayoutPanel.SetFlowBreak(ComboBox, True) 'Oblige l'interface à aller à la ligne après la ComboBox dans le FlowLayoutPanel.'
     
            ComboBox.Height = 21 'Définit la hauteur de la ComboBox à 21 pixels.'
            Label(0).Text = "Marque :" 'Définit le texte du Label(0).'
            Label(1).Text = "N° de série :" 'Définit le texte du Label(1).'
            Label(2).Text = "Tension d'alimentation :" 'Définit le texte du Label(2).'
     
            For i As Integer = 0 To 1 'Boucle de 1 rotations. Chaque rotation ajoute +1 à i.'
                FlowLayoutPanel.Controls.Add(Boutons(i)) 'Ajoute le "Boutons(i)" créé au chargement de la fenêtre dans le "FlowLayoutPanel".'
            Next 'Ajoute +1 à i tant que i est différent de 1.'
     
            Boutons(0).Text = "Annuler" 'Définit le texte du Boutons(0).'
            Boutons(1).Text = "Enregistrer" 'Définit le texte du Boutons(1).'
     
        End Sub
     
        Private Sub Boutons_Click() 'S'exécute lors d'un clic sur un des 2 Boutons créé lors du chargement de la fenêtre.'
     
            If Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(ComboBox.SelectedItem)) < 0 Then 'Si l'item sélectionné dans la ComboBox n'est pas trouvée dans le fichier client et renvoie donc la valeur -1'
                Matériel_Client = New Matériel 'Créé un nouveau matériel
                Nom_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel client au client.'
            End If 'Fin de la condition.'
     
            If Boutons(0).Focused Then 'Si c'est un clic sur le bouton "Annuler", alors :'
     
                Lecture_Fiche_Client.Show() 'Affiche la page d'accueuil.'
                Me.Close() 'Ferme la fenêtre en cours.'
     
            Else 'Sinon, si c'est un clic sur le bouton "Enregistrer,"
     
                If ComboBox.SelectedIndex <> 7 Then 'Si l'item sélectionné dans la ComboBox est différent de "Autre :", alors :'
     
                    type_produit = ComboBox.SelectedItem
                    Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Type_Produit = type_produit 'Le type de produit dans matériel client est égal au texte de l'item sélectionné dans la ComboBox.'
                    Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel.'
     
                Else 'Sinon, si l'item sélectionné dans la ComboBox est "Autre ",'
     
                    type_produit = InputBox("Quel est le type de produit ?", "Type de produit.") 'Créé une fenêtre de saisie pour nommer le produit et entre ce nom dans la variable "type_produit".'
                    type_produit = "Autre : " & type_produit
     
                    If type_produit <> "" Then 'Si la variable type_produit contient du texte, alors :' 
     
                        Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Type_Produit = type_produit 'Type_Produit prends la valeur "Autre : " suivit de la valeur de type_produit. 
                        Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel.'
     
                    End If 'Fin de la condition.'
     
                End If 'Fin de la condition.'
     
            End If 'Fin de la condition.'
     
        End Sub
     
        Private Sub Mise_En_Page_Ajout_Matériel(i As Integer)
     
            Label.Add(New Label) 'Ajoute un nouveau Label dans la liste Label.'
            TextBox.Add(New TextBox) 'Ajoute une nouvelle TextBox dans la liste TextBox.'
     
            With Label(i) 'Avec le terme Label(i), (i = numéro de rotation)'
                .Height = TextBox(i).Height 'Règle la hauteur du Label(i) au même niveau que la hauteur de la TextBox(i).'
                .Width = 150 'Règle la largeur du Label(i) à 150 pixels.'
                .TextAlign = ContentAlignment.MiddleLeft 'Définit l'alignement du texte contenu dans le Label(i) comme centré à gauche.'
                .Font = New Font("Comic Sans Ms", 10.0!, FontStyle.Bold, GraphicsUnit.Point, CType(0, Byte))
            End With
     
            TextBox(i).Width = 150 'Définit la largeur de la TextBox(i) à 150 pixels.'
            FlowLayoutPanel.Controls.Add(Label(i)) 'Ajoute le Label(i) dans le FlowLayoutPanel.'
            FlowLayoutPanel.Controls.Add(TextBox(i)) 'Ajoute la TextBox(i) dans le FlowLayoutPanel.'
            FlowLayoutPanel.SetFlowBreak(TextBox(i), True) 'Oblige l'interface à aller à la ligne après chaque TextBox(i) dans le FlowLayoutPanel.'
     
        End Sub
     
        Private Sub Enregistrement_Matériel()
     
            index = Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(type_produit)) 'Détermine la position du matériel, dans Nom_Client.'
            Références = New Référence 'Créé une nouvelle référence.'
            Nom_Client.Matériel(index).Référence.Add(Références) 'Ajoute une nouvelle référence au matériel client.'
     
            With Nom_Client.Matériel(index).Référence(Nom_Client.Matériel(index).Référence.Count - 1)
     
                .Marque = TextBox(0).Text
                .Num_Série = TextBox(1).Text
                .Tension_Entrée = TextBox(2).Text
     
                If ComboBox.SelectedIndex = 0 Then 'Si combobox = Moteur Asynchrone :'
     
                    .Rotations_Par_Minutes = TextBox(3).Text
                    .Puissance = TextBox(4).Text
     
                ElseIf ComboBox.SelectedIndex = 1 Then 'Si combobox = moteur brushless :'
     
                    .Rotations_Par_Minutes = TextBox(3).Text
                    .Référence_Codeur = TextBox(4).Text
                    .Puissance = TextBox(5).Text
     
                ElseIf ComboBox.SelectedIndex = 2 Then 'si combobox = motoréducteur :'
     
                    Réducteur = New Réducteurs
                    Matériel_Client.Référence(Matériel_Client.Référence.Count - 1).Référence_Réducteur.Add(Réducteur)
     
                    .Rotations_Par_Minutes = TextBox(3).Text
     
                    With .Référence_Réducteur(Nom_Client.Matériel(index).Référence(Nom_Client.Matériel(index).Référence.Count - 1).Référence_Réducteur.Count - 1)
                        .Marque = TextBox(4).Text
                        .Num_Série = TextBox(5).Text
                        .Rapport_De_Réduction = TextBox(6).Text
                    End With
     
                    .Puissance = TextBox(7).Text
     
                ElseIf ComboBox.SelectedIndex = 4 Or ComboBox.SelectedIndex = 5 Then 'si combobox = Poste à souder ou Découpeur Plasma :'
     
                    .Puissance = TextBox(3).Text
     
                Else
     
                    .Tension_Sortie = TextBox(3).Text
                    .Puissance = TextBox(4).Text
     
                End If 'Fin de la condition.'
     
            End With
     
            Enregistre_Fiche_Client(Fichier_Client, Nom_Client) 'Lance le sous programme d'enregistrement, qui va enregistrer dans le fichier client, le nouveau matériel.'
     
            If Not Erreur Then 'Si aucune erreur ne ce produit lors de l'enregistrement, alors :'
                MsgBox("Matériel ajouté au client " & Nom_Client.Société.Nom & " avec succes.", MsgBoxStyle.Information, "Opération Réussie.") 'Affiche un message comme quoi tout c'est bien déroulé.'
            End If 'Fin de la condition.'
     
        End Sub
     
    End Class
    A présent lorsque j'enregistre des nouveaux objets il fonctionne à peut près correctement juste un souci avec par exemple si j'enregistre un moteur asynchrone puis un brushless ca me prends bien les 2, mais si je reviens sur asynchrone pour en ajouter un nouveau il me le met dans la partie asynchrone et me remplace la partie brushless en asynchrone.

    En gros mon fichier avec asynchrone et brushless :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <Client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Société Nom="Bigard">
        <Adresse Ville="" C_Postal="" Rue="">
          <Téléphone Numéro="" Nom="" />
          <Adresse_Mail Mail="" Nom="" />
        </Adresse>
      </Société>
      <Matériel Type_De_Produit="Moteur Asynchrone.">
        <Référence Marque="test1" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
      </Matériel>
      <Matériel Type_De_Produit="Moteur Brushless.">
        <Référence Marque="test2" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
      </Matériel>
      <Feuille Nom="Divers">
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1" />
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1/2" />
      </Feuille>
      <Feuille Nom="Prog">
        <Interventions Num_Facture="" Date="" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 2" />
      </Feuille>
    </Client>
    et quand je rajoute un asynchrone apres le brushless :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <Client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Société Nom="Bigard">
        <Adresse Ville="" C_Postal="" Rue="">
          <Téléphone Numéro="" Nom="" />
          <Adresse_Mail Mail="" Nom="" />
        </Adresse>
      </Société>
      <Matériel Type_De_Produit="Moteur Asynchrone.">
        <Référence Marque="test1" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
        <Référence Marque="test3" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
      </Matériel>
      <Matériel Type_De_Produit="Moteur Asynchrone.">
        <Référence Marque="test2" Num_Série="" V_Input="" V_Output="" RPM="" Ref_Codeur="" Puissance="" />
      </Matériel>
      <Feuille Nom="Divers">
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1" />
        <Interventions Num_Facture="G12" Date="24/02/2015" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 1/2" />
      </Feuille>
      <Feuille Nom="Prog">
        <Interventions Num_Facture="" Date="" Produit="" Opération="Ben Voila !!!&#xA;J'y arrive 2" />
      </Feuille>
    </Client>
    Je sais d'ou viens le problème (Lignes 131 et 141)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Type_Produit = type_produit 'Le type de produit dans matériel client est égal au texte de l'item sélectionné dans la ComboBox.'
    à la place de count - 1 il me faut un index mais je ne trouve pas encore comment le placer ...

  10. #10
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Comme tout est objet en VB.NET, (donc on accède aux objets par différentes références) tu peux très bien, plutôt que d'utiliser ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Type_Produit = type_produit
    Faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Matériel_Client.Type_Produit = type_produit
    Même une fois le matériel ajouté à la liste.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  11. #11
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Oui j'avais commencé comme ça mais ça me créé un nouveau matériel a chaque fois et pas plusieyrs moteurs de type brushless par exemple. Chaque moteur ajoute un type et moi je veux un type de chaque pas autant qu'il y a de matériel donc je suis revenu à ce code :/.

    En plus je vois pas trop comment lui donner un index :s

  12. #12
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Tout le problème est part là...

    ça, a priori c'est faux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     index = Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(type_produit)) 'Détermine la position du matériel, dans Nom_Client.'
    Que se passe t il si tu as plusieurs matériel avec le même type ????

    Et pourquoi diable ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Matériel_Client.Type_Produit = type_produit
    peut il créer de lui même un

    créé un nouveau matériel a chaque fois
    Il y a un traitement caché ou bien ?
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  13. #13
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Et pourquoi diable ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Matériel_Client.Type_Produit = type_produit
    peut il créer de lui même un

    créé un nouveau matériel a chaque fois"
    Il y a un traitement caché ou bien ?
    non du tout mais si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Matériel_Client.Type_Produit = type_produit
    il me faut à la suite mettre un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nom_Client.Matériel.add(Matériel_Client)
    Du coup il me créé un nouveau matériel :/ où alors j'ai pas compris quelque chose ! c'est pas impossible non plus xD

  14. #14
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Alors je reprends... qu'est ce qui ne va pas avec ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Matériel_Client.Type_Produit = type_produit
    Nom_Client.Matériel.add(Matériel_Client)
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  15. #15
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    ben il m'ajoute un nouveau matériel donc au lieu de le poser dans son type de materiel (j'appelle type ce qui est variateur, moteur brushless, moteur asynchronne etc) il va me créer plusieurs fois le même type. C'est pour ça que je l'ai supprimé après !

  16. #16
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    pas clair... je relis un peu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(ComboBox.SelectedItem)) < 0 Then 'Si l'item sélectionné dans la ComboBox n'est pas trouvée dans le fichier client et renvoie donc la valeur -1'
     
                Matériel_Client = New Matériel 'Créé un nouveau matériel
                Nom_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel client au client.'
     
    End If 'Fin de la condition.'
    Ce que je lis :

    Si je n'ai pas de matériel de type "Variateur" (par exemple
    Je créer le matériel et je l'ajoute au client...

    Comprends pas... ne devrais tu pas créer le matériel quoi qu'il arrive ?

    Ne peut il pas avoir 3 variateurs ?

    Ok, je crois que je l'ai.

    MAteriel n'est pas un materiel. C'est un type de materiel ?
    La vrai materiel c'est référence ?
    (c'est déjà dans le nommage des choses qu'il faut être clair, car rien que là pour t'aider, c'est long juste de comprendre)

    DONC... on va y arriver....

    Toute la procédure Boutons_Click, ne fait que Créer un type si il n'existe pas et appeler Enregistrement_Matériel qui va en fait enregistrer une référence... (toujours le même problème de nommage)


    Donc reprenons la procédure : lorsque tu ne créés PAS un nouveau type... Tu mets quand même à jour son type, avec le dernier créés avec cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Nom_Client.Matériel(Nom_Client.Matériel.Count - 1).Type_Produit = ComboBox.SelectedItem
    Qui n'est utile QUE à la création... Et fausse si le type existe déjà, puisque tu vas écraser son type par le dernier type créé

    Donc il ne faut renseigner le type QUE si c'est une création

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Private Sub Boutons_Click() 'S'exécute lors d'un clic sur un des 2 Boutons créé lors du chargement de la fenêtre.'
     
    	'1) si j'annule, je sors
            If Boutons(0).Focused Then 'Si c'est un clic sur le bouton "Annuler", alors :'
     
                Lecture_Fiche_Client.Show() 'Affiche la page d'accueuil.'
                Me.Close() 'Ferme la fenêtre en cours.'
    	End If
     
            '2) si il s'agit d'un nouveau materiel
            If Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(ComboBox.SelectedItem)) < 0 Then 'Si l'item sélectionné dans la ComboBox n'est pas trouvée dans le fichier client et renvoie donc la valeur -1'
     
    			Matériel_Client = New Matériel 'Créé un nouveau matériel
     
    			If ComboBox.SelectedIndex <> 7 Then 'Si l'item sélectionné dans la ComboBox est différent de "Autre :", alors :'
     
    			    type_produit = ComboBox.SelectedItem
                                 Matériel_Client.Type_Produit = type_produit 'Le type de produit dans matériel client est égal au texte de l'item sélectionné dans la ComboBox.'
     
    			Else
     
    				type_produit = InputBox("Quel est le type de produit ?", "Type de produit.") 'Créé une fenêtre de saisie pour nommer le produit et entre ce nom dans la variable "type_produit".'
                                    type_produit = "Autre : " & type_produit
     
                                     If type_produit <> "" Then 'Si la variable type_produit contient du texte, alors :' 
     
                                             Matériel_Client.Type_Produit = type_produit 'Type_Produit prends la valeur "Autre : " suivit de la valeur de type_produit. 
     
                                      End If 'Fin de la condition.'
     
    			End If
     
    			Nom_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel client au client.'
     
             End If 'Fin de la condition.'
     
     
    	'3) on ajoute la référence
             Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel. QUI ENREGISTRE UNE REFERENCE
     
        End Sub
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  17. #17
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    Arf oui désolé en fait c'est bien ça le matériel c'est le type et les référence c'est... les référence du type de matériel :/

    J'allais justement poster un message en disant que j'avais peut-être trouvé et qu'il me faille mettre une condition au lieu de toujours créé un nouveau matériel !
    Je vais tester et vous tiens au jus.

    Edit :
    Nan Fonctionne pas correctement.
    Si mon type de matériel existe déja, il me rentre ma nouvelle référence dans le dernier type de matériel utilisé :/ (La c'est les bons termes :p)

    Je cherches donc quoi mettre dans mon
    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
    26
    27
    28
    '2) si il s'agit d'un nouveau materiel
            If Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(ComboBox.SelectedItem)) < 0 Then 'Si l'item sélectionné dans la ComboBox n'est pas trouvée dans le fichier client et renvoie donc la valeur -1'
     
    			Matériel_Client = New Matériel 'Créé un nouveau matériel
     
    			If ComboBox.SelectedIndex <> 7 Then 'Si l'item sélectionné dans la ComboBox est différent de "Autre :", alors :'
     
    			    type_produit = ComboBox.SelectedItem
                                 Matériel_Client.Type_Produit = type_produit 'Le type de produit dans matériel client est égal au texte de l'item sélectionné dans la ComboBox.'
     
    			Else
     
    				type_produit = InputBox("Quel est le type de produit ?", "Type de produit.") 'Créé une fenêtre de saisie pour nommer le produit et entre ce nom dans la variable "type_produit".'
                                    type_produit = "Autre : " & type_produit
     
                                     If type_produit <> "" Then 'Si la variable type_produit contient du texte, alors :' 
     
                                             Matériel_Client.Type_Produit = type_produit 'Type_Produit prends la valeur "Autre : " suivit de la valeur de type_produit. 
     
                                      End If 'Fin de la condition.'
     
    			End If
     
    			Nom_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel client au client.'
     
                Else 
                  'Recherche code
             End If 'Fin de la condition.'

  18. #18
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    J'y suis presque avec ce code ça me positionne bien les références au type de matériel voulu :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Private Sub Boutons_Click() 'S'exécute lors d'un clic sur un des 2 Boutons créé lors du chargement de la fenêtre.'
     
            If Boutons(0).Focused Then 'Si c'est un clic sur le bouton "Annuler", alors :'
     
                Lecture_Fiche_Client.Show() 'Affiche la page d'accueuil.'
                Me.Close() 'Ferme la fenêtre en cours.'
     
            End If
     
            If Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(ComboBox.SelectedItem)) < 0 Then 'Si l'item sélectionné dans la ComboBox n'est pas trouvée dans le fichier client et renvoie donc la valeur -1'
                Matériel_Client = New Matériel 'Créé un nouveau matériel
     
                If ComboBox.SelectedIndex <> 7 Then 'Si l'item sélectionné dans la ComboBox est différent de "Autre :", alors :'
     
                    type_produit = ComboBox.SelectedItem
                    Matériel_Client.Type_Produit = type_produit 'Le type de produit dans matériel client est égal au texte de l'item sélectionné dans la ComboBox.'
     
                Else 'Sinon, si l'item sélectionné dans la ComboBox est "Autre ",'
     
                    type_produit = InputBox("Quel est le type de produit ?", "Type de produit.") 'Créé une fenêtre de saisie pour nommer le produit et entre ce nom dans la variable "type_produit".'
                    type_produit = "Autre : " & type_produit
     
                    If type_produit <> "" Then 'Si la variable type_produit contient du texte, alors :' 
     
                        Matériel_Client.Type_Produit = type_produit 'Type_Produit prends la valeur "Autre : " suivit de la valeur de type_produit. 
     
                    End If 'Fin de la condition.'
     
                End If 'Fin de la condition.'
     
                Nom_Client.Matériel.Add(Matériel_Client) 'Ajoute le matériel client au client.'
            Else
     
                If ComboBox.SelectedIndex <> 7 Then 'Si l'item sélectionné dans la ComboBox est différent de "Autre :", alors :'
     
                    type_produit = ComboBox.SelectedItem
                    index = Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(type_produit)) 'Détermine la position du matériel, dans Nom_Client.'
                    Nom_Client.Matériel(index).Type_Produit = type_produit 'Le type de produit dans matériel client est égal au texte de l'item sélectionné dans la ComboBox.'
     
                Else 'Sinon, si l'item sélectionné dans la ComboBox est "Autre ",'
     
                    type_produit = InputBox("Quel est le type de produit ?", "Type de produit.") 'Créé une fenêtre de saisie pour nommer le produit et entre ce nom dans la variable "type_produit".'
                    type_produit = "Autre : " & type_produit
                    index = Nom_Client.Matériel.FindIndex(Function(x) x.Type_Produit.Contains(ComboBox.SelectedItem)) 'Détermine la position du matériel, dans Nom_Client.'
     
                    If type_produit <> "" Then 'Si la variable type_produit contient du texte, alors :' 
     
                        Nom_Client.Matériel(index).Type_Produit = type_produit 'Type_Produit prends la valeur "Autre : " suivit de la valeur de type_produit. 
     
                    End If 'Fin de la condition.'
     
                End If 'Fin de la condition.'
     
            End If
     
            Enregistrement_Matériel() 'Exécute le sous-programme Enregistrement_Matériel.
     
        End Sub
    Mais (ça aurait été trop beau sans mais...), deja si j'annule lors de la saisie de l'inputbox j'enregistre quand même (ça c'est pas un gros souci je saurais m'en depatouiller), mais quand j'ai ajouté un type de matériel "Autre :" avec donc un paramètre "Test" dans l'inputbox j'ai eu un type "Autre : Test" de créé avec mes valeurs tension d'alim etc et un autre type "Autre :" qui lui était vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Matériel Type_De_Produit="Autre :"/>
    ...
    Je cherche d'ou viens cette erreur !

  19. #19
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Pourquoi faire le Else (et tout ce qu'il contient) à la ligne 32 ?

    Si le type de materiel existe... pourquoi as tu besoins de mettre à jour le type du matériel ??
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  20. #20
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    car comme je l'ai dis
    Si mon type de matériel existe déja, il me rentre ma nouvelle référence dans le dernier type de matériel utilisé :/ (La c'est les bons termes :p)
    et que je ne vois pas comment faire autrement à dire vrai :/

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème lors de la suppression d'un enregistrement
    Par Salamander24 dans le forum Modélisation
    Réponses: 3
    Dernier message: 15/03/2008, 15h30
  2. [SQL] Problème lors de l'insertion d'un enregistrement dans ma base de données.
    Par Velkan.nexus dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/10/2007, 11h59
  3. Réponses: 1
    Dernier message: 24/08/2006, 23h35
  4. Liste : Pb lors du second enregistrement
    Par Rouanou dans le forum Access
    Réponses: 11
    Dernier message: 24/11/2005, 15h53

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