Stockage de champs d'un fichier dans un tableau pour remplissage de base mysql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 637 fois - Téléchargée 28 fois

Contenu du snippet

Voici un code qui permet douvrir un fichier, de le parcourir et de stocker les champs qui sont separes par un ";"
dans un tableau afin quune insertion dans une table dune base de donnees mysql sexecute sans probleme.

Source / Exemple :


Dim record As New adodb.Recordset
'CONNEXION A LA BASE DE DONNÉS
Dim Conn As New adodb.Connection 'Connecteur à la base
Dim Chaine As String 'Chaîne de connexion à ODBC

Private Type article
        codeArticle As String * 15 'correspond au premier champs
        designationArticle As String * 35
        designationAnglaise As String * 35
        designation2 As String * 35
        unité_de_mesure As String * 2
        codeSource As String * 1
        prixVente As String * 14
        coutUnitaireStandart As String * 14
        cycleDappro As String * 4
        dateModifEdition As String * 11
        edition As String * 4
        FormatPlan As String * 1
        dateDernMAJ As String * 11
        dateCreation As String * 11
        unitéAchat As String * 2
        coeff As String * 13
        unitedeVente As String * 2
        coeffUV As String * 13
        codeFamilleProduit As String * 2
        codeFamilleArticle As String * 4
        groupeProduction As String * 2
        caractere1 As String * 2
    End Type
    

Private Function FillArticles(LaLigne As String) As article

Dim TesDonnees() As String
Dim TmpArticle As article

TesDonnees = Split(LaLigne, ";")'créer un tableau avec les données 

With TmpArticle
    .codeArticle = TesDonnees(0)
    .designationArticle = TesDonnees(1)
    .designationAnglaise = TesDonnees(2)
    .designation2 = TesDonnees(3)
    .unité_de_mesure = TesDonnees(4)
    .codeSource = TesDonnees(5)
    .prixVente = TesDonnees(6)
    .coutUnitaireStandart = TesDonnees(7)
    .cycleDappro = TesDonnees(8)
    .dateModifEdition = TesDonnees(9)
    .edition = TesDonnees(10)
    .FormatPlan = TesDonnees(11)
    .dateDernMAJ = TesDonnees(12)
    .dateCreation = TesDonnees(13)
    .unitéAchat = TesDonnees(14)
    .coeff = TesDonnees(15)
    .unitedeVente = TesDonnees(16)
    .coeffUV = TesDonnees(17)
    .codeFamilleProduit = TesDonnees(18)
    .codeFamilleArticle = TesDonnees(19)
    .groupeProduction = TesDonnees(20)
End With

FillArticles = TmpArticle

'REMPLISSAGE DE LA TABLE         
       With TmpArticle
        'On crée la requête
        req2 = "INSERT INTO article VALUES ('" _
                & Replace(Trim(.codeArticle), "'", "\'") & "','" _
                & Replace(Trim(.designationArticle), "'", "\'") & "','" _
                & Replace(Trim(.designationAnglaise), "'", "\'") & "','" _
                & Replace(Trim(.unité_de_mesure), "'", "\'") & "','" _
                & Replace(Trim(.codeSource), "'", "\'") & "','" _
                & Replace(Trim(.edition), "'", "\'") & "','" _
                & Replace(Trim(.FormatPlan), "'", "\'") & "');"

        End With
        'On met à jour la base
        If Asc(TmpArticle.codeArticle) <> 0 Then
               With record
                    .ActiveConnection = Conn
                    .Source = req2
                    .Open
               End With
        End If

End Function

Private Sub form_Load()

'Initialisation
Chaine = "driver={MySQL ODBC 3.51 Driver};" _
& "database=ordre_de_fabrication;" _
& "server=localhost;" _
& "uid=root;" _
& "pwd=123456;" _
& "port=;" _
& "option=;" _
& "stmt=;"

'Connexion à MySQL
With Conn
.ConnectionString = Chaine
.Open
End With

Dim LaLigne As String
Dim LesArticles() As article
ReDim LesArticles(0)
Open "chemin du fichier/fichier" For Input As #1

    While Not EOF(1)
        Line Input #1, LaLigne
        LesArticles(UBound(LesArticles)) = FillArticles(LaLigne)
        ReDim Preserve LesArticles(UBound(LesArticles) + 1)
    Wend

Close #1

End Sub

A voir également

Ajouter un commentaire

Commentaire

elisabeth_nov
Messages postés
103
Date d'inscription
jeudi 2 mars 2006
Statut
Membre
Dernière intervention
4 février 2009
-
salut, je voulais juste remercier ceux qui mont aider a faire ce code. merci a jrivet pour tout laide quil ma apporter.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.