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 :

je n'arrive pas à ajouter multilignes dans un seul champ da ma table access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2020
    Messages : 5
    Par défaut je n'arrive pas à ajouter multilignes dans un seul champ da ma table access
    Bonjour tout le monde

    je suis débutant, je viens de débuter a développer une application pour le suivi des dossiers d'associations
    je veux que les éléments cochés de ma CheckedListBox soit insérés dans le même champ (pieces_fourni) de ma table (tab_asso) Access
    et ceux qui ne sont pas cochés soit insérés dans le même champ(pieces_manquant) de la meme table
    est ce que quelqu’un peut vérifier avec moi le code j'ai passé pas mal de temps essayant de résoudre ce problème mais sans résultats
    voici le code
    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
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
    cn.Open()
     
    Dim dt As New DataTable
    Dim da As New OleDbDataAdapter
    Dim x, z As Integer
     
    Dim cmd As New OleDbCommand("INSERT INTO tab_asso(id_dossier,denomination,date_recep,nom_prenom,adresse,wilaya,code_wilaya,region,pieces_fourni,pieces_manquant) values('" & TextBox1.Text & "','" & TextBox2.Text & "','" & DateTimePicker1.Value.Date & "','" & TextBox6.Text & "','" & TextBox7.Text & "','" & ComboBox1.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & CheckedListBox1.Items(x).ToString & ",""',""' , '" & CheckedListBox1.Items(z).ToString & "' ", cn)
     
            cmd.Connection = cn
            da = New OleDbDataAdapter(cmd)
            da.Fill(dt)
            CheckedListBox1.DataSource = dt
            CheckedListBox1.DisplayMember = "dossier_ass"
            CheckedListBox1.ValueMember = "DESIGNATIONS"
            CheckedListBox1.Text = ""
            cmd.CommandType = CommandType.Text
     
            For i = 0 To CheckedListBox1.Items.Count - 1
     
     
                If CheckedListBox1.GetItemChecked(i) = True Then
                    i = x
                Else
                    i = z
                End If
     
            Next
            cmd.ExecuteNonQuery()
     
            MessageBox.Show("Data inserted successfuly")
     
            cn.Close()
     
        End Sub

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    Je ne suis pas sûr que ce soit une bonne idée de structure de données.... mais bon, il suffit de concaténer les champs dans 2 chaines
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim Chaine_fourni as String, Chaine_manquant as String
    For i = 0 To CheckedListBox1.Items.Count - 1
     
     
                If CheckedListBox1.GetItemChecked(i) = True Then
                    Chaine_fourni &= CheckedListBox1.Items(i).Text
                Else
                    Chaine_manquant &= CheckedListBox1.Items(i).Text
                End If
     
            Next
    ou quelque chose comme ça.

    PS: ta requête n'est pas sécurisée; on pourrait mettre "); drop table tab_asso;" dans un des champs et adieu ta table

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Je suis du même avis que umfred.
    Ta structure n'est pas bonne.

    Et ce, pour 2 raisons très simples.
    La première, tu dois faire un traitement pour transformer tes données dans un sens et dans l'autre.
    La seconde, en cas d'ajout de pièces, tu devras allonger la taille de tes colonnes pieces_fourni et pieces_manquant (au passage si tu dois écrire des nom de colonnes en française, c'est mieux de respecter les accords en genre et en nombre).

    Je pourrai éventuellement rajouter une troisième raison : l'une des informations est inutile.
    Si tu as la liste des pièces et que tu sais lesquelles sont fournies, tu peux aisément déduire celles qui manquent sans avoir besoin de les stocker.

    Je verrai bien une table "association", une table "piece" et une table "lien_piece_association" pour les relier.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 624
    Par défaut
    Bonjour,

    Ne surtout pas utiliser cette possibilités d'Access, car si un jour tu passes sur une base plus robuste cette fonctionnalité n'existe pas.

    Philippe

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    Tu peux préciser la fonctionnalité dont tu parles?

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 624
    Par défaut
    Citation Envoyé par umfred Voir le message
    Tu peux préciser la fonctionnalité dont tu parles?
    Re

    Il s'agit des champs multivalués sous Access : https://access.developpez.com/actu/3...de-Denis-Hulo/

    C'est une aberration d'utiliser ce genre de truc, car si on est amené à changer des SGBD on est mort cela ne respecte pas les règles.

    ONTAYG

  7. #7
    Inactif  
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2020
    Messages : 5
    Par défaut
    Citation Envoyé par popo Voir le message
    ... Ta structure n'est pas bonne...

    je dois les stocker pour d’autres traitement sur un autre formulaire

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    Citation Envoyé par brahounidz Voir le message
    je dois les stocker pour d’autres traitement sur un autre formulaire
    Non tu n'as pas besoin de les stocker ainsi, tu dois juste savoir si les pièces ont été fournies ou pas, pour un dossier; donc tu peux récupérer une liste des documents manquants par une requête et ensuite traiter cette liste.

Discussions similaires

  1. [AC-2013] Recherche de plusieurs valeurs dans un seul champ d'une table de jonction
    Par Vijinn dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 12/09/2017, 11h33
  2. Je n'arrive pas à poster dans une rubrique
    Par Virginia95 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 25/06/2014, 14h25
  3. je n'arrive pas a ecrire dans un fichier !
    Par lucastof dans le forum C
    Réponses: 1
    Dernier message: 01/11/2011, 09h17
  4. [FTP] je n'arrive pas à uploader dans un dossier
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 11/03/2008, 01h57
  5. j'arrive pas a inserer dans une table vide
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 16
    Dernier message: 03/05/2005, 14h24

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