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

Windows Forms Discussion :

Problème En BDD access


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Points : 131
    Points
    131
    Par défaut Problème En BDD access
    Bonjour,

    J'utilise vs2005 pour créer une application qui "dialogue" avec une base de données access.
    J'utilise la méthode déconnecté : les dataset
    ma base access est très simple,



    Mon but est d'enregistré dans cette base de donnée les noms de fichiers et de répertoires, mais aussi la possibilité d'obtenir l'arborescence des dossiers grâce à L'id_Rep_Parent.

    Ci-joint le code me permettant de parcourir les dossiers et d'ajouter les fichiers et dossiers dans la base de données.

    Mon problème est : Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table 'CD'.

    L'ajout de fichier se trouve dans la première sub


    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
    Private Sub parcourir(ByVal mydir As String, ByVal z As Integer)
            connex = New OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" & _
            My.Application.Info.DirectoryPath + "\Gamma2.mdb")
            commande_sql_repertoire = "SELECT * FROM repertoire;"
            commande_sql_fichier = "SELECT * FROM fichier;"
     
            'z = recherche_Id_repertoire()
     
            For Each sous_repertoire As String In Directory.GetDirectories(mydir)
     
     
                une_commande = New OleDb.OleDbCommand(commande_sql_repertoire, connex)
                un_dataAdapter = New OleDb.OleDbDataAdapter(une_commande)
                un_data_set_Repertoire = New Data.DataSet
                un_CommandBuilder = New OleDb.OleDbCommandBuilder
                une_commande.Connection() = connex
                un_dataAdapter.Fill(un_data_set_Repertoire, "Repertoire")
                un_DataTable = un_data_set_Repertoire.Tables("Repertoire")
                un_DataRow = un_data_set_Repertoire.Tables("Repertoire").Rows.Add
                un_DataRow(1) = Tronque_repertoire(sous_repertoire)
                un_DataRow(5) = valeur_max_cd
     
                If z = Nothing Then
                Else
                    un_DataRow(6) = z
                End If
     
                ListBox_dossier_parent_2.Items.Add(sous_repertoire)
                mise_a_jours_bdd("Repertoire", un_data_set_Repertoire)
                Application.DoEvents()
                For Each fichier As String In Directory.GetFiles(sous_repertoire)
     
                    une_commande = New OleDb.OleDbCommand(commande_sql_fichier, connex)
                    un_dataAdapter = New OleDb.OleDbDataAdapter(une_commande)
                    un_data_set_Fichier = New Data.DataSet
                    un_CommandBuilder = New OleDb.OleDbCommandBuilder
                    une_commande.Connection() = connex
                    un_dataAdapter.Fill(un_data_set_Fichier, "Fichier")
                    un_DataTable = un_data_set_Fichier.Tables("Fichier")
                    un_DataRow = un_data_set_Fichier.Tables("Fichier").Rows.Add
                    un_DataRow(1) = Tronque_repertoire(fichier)
                    un_dataAdapter.ContinueUpdateOnError = True
                    MsgBox(retrouve_id_par_nom_rep(Tronque_repertoire(sous_repertoire), 1))
                    un_DataRow(4) = retrouve_id_par_nom_rep(Tronque_repertoire(sous_repertoire), 1)
                    mise_a_jours_bdd("Fichier", un_data_set_Fichier)
     
                Next
     
            Next
     
            For Each repertoire As String In Directory.GetDirectories(mydir)
     
                parcourir(repertoire.ToString, retrouve_id_par_nom_rep(Tronque_repertoire(repertoire), 1))
     
            Next
     
     
        End Sub
     
     Private Sub mise_a_jours_bdd(ByVal table As String, ByVal un_data_set_mise_a_jours As Data.DataSet)
            'un_dataAdapter.ContinueUpdateOnError = True
            un_CommandBuilder.DataAdapter = un_dataAdapter
            un_dataAdapter.UpdateCommand = un_CommandBuilder.GetUpdateCommand
            un_dataAdapter.Update(un_data_set_mise_a_jours, table)
        End Sub
     
    Private Function Tronque_repertoire(ByVal chemin As String) As String
            Dim nom_repertoire() As String
            Dim repertoire As String = ""
            nom_repertoire = chemin.Split("\")
            For Each element As String In nom_repertoire
                repertoire = element
            Next
            Return repertoire
        End Function
     
    Private Function retrouve_id_par_nom_rep(ByVal nom_rep As String, ByVal x As Integer) As Integer
            Dim choix_de_recherche As String
     
            If x = 1 Then
                choix_de_recherche = "Repertoire.ID_Rep"
            Else
                choix_de_recherche = "Repertoire.ID_Rep_Parent"
            End If
            connex = New OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" & _
            My.Application.Info.DirectoryPath + "\Gamma2.mdb")
            commande_sql_Cd = "SELECT " + choix_de_recherche + " FROM Repertoire WHERE Repertoire.Nom_Rep = '" + nom_rep + "';"
            une_commande = New OleDb.OleDbCommand(commande_sql_Cd, connex)
            un_dataAdapter = New OleDb.OleDbDataAdapter(une_commande)
            un_data_set_Repertoire = New Data.DataSet
            un_CommandBuilder = New OleDb.OleDbCommandBuilder
            une_commande.Connection() = connex
            un_dataAdapter.Fill(un_data_set_Repertoire, "Repertoire")
            un_DataTable = un_data_set_Repertoire.Tables("Repertoire")
            Return un_DataTable.Rows(un_DataTable.Rows.Count - 1).Item(0)
        End Function
    Or cette erreur survient lors de l'ajout d'un fichier !!

    Merci à vous

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    tu essaies d'ajouter une valeur de id_cd dans la table repertoire, alors qu'elle n'existe pas encore dans la table CD !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème importation BDD Access
    Par Jean-Luc80 dans le forum VB.NET
    Réponses: 2
    Dernier message: 22/08/2013, 06h20
  2. Problème relations BDD Access
    Par bidulee dans le forum Modélisation
    Réponses: 4
    Dernier message: 04/08/2010, 13h22
  3. [C#]Problème OleDbCommand.ExecuteReader avec BdD Access
    Par Renesis57 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2006, 18h36
  4. [VB6]problème bdd access
    Par ica89 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/04/2006, 19h41
  5. Problème d'ajout multiples dans un BDD Access
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/05/2004, 13h34

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