Lecture de fichier et ecriture dans une base mysql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 461 fois - Téléchargée 28 fois

Contenu du snippet

Ce petit programme en Visual Basic 6 permet de lire un fichier texte et de stocker les données dans une table d'une base de données MySQL Control Center
qu'il faut avoir préalablement créée. Attention, ce programme ne gere pas les doublons, je n'ai pas encore trouvé comment faire!!!!!!!!!!!!

Source / Exemple :


'déclarer un type personnalisé 
Private Type Fournisseur
        codeFournisseur As String * 8 'la longueur du champs permet de prendre en compte que cette donnée
        nomFournisseur As String * 30       
        adresse1 As String * 30      
        adresse2 As String * 30      
        codePostal As String * 5       
        ville As String * 20    
        pays As String * 3       
        correspondantFournisseur As String * 20       
        code_devise As String * 3      
        numTel As String * 12  
        numFax As String * 15     
        email As String * 40
    End Type

Private Sub Fournisseur_Click()

Dim Conn As New ADODB.Connection 'Connecteur à la base
Dim Chaine As String 'Chaîne de connexion à ODBC
Dim four As Fournisseur

Dim Fichfour As Variant

Dim req As String

'Initialisation
Chaine = "driver={MySQL ODBC 3.51 Driver};" _
& "database=nom_base;" _
& "server=adresse_serveur;" _
& "uid=nom_utilisateur;" _
& "pwd=mot_passe;" _
& "port=;" _
& "option=;" _
& "stmt=;"

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

    'On lit le fichier des fournisseurs
        Fichfour = FreeFile

        Open "adresse du fichier" For Random Access Read As #Fichfour Len = Len(four)

        While Not EOF(Fichfour)
            Get #Fichfour, , four

            With four
                'On crée la requête
                req = "INSERT INTO fournisseur VALUES ('" _
                    & Replace(Trim(.codeFournisseur), "'", "\'") & "','" _
                    & Replace(Trim(.nomFournisseur), "'", "\'") & "','" _
                    & Replace(Trim(.adresse1), "'", "\'") & "','" _
                    & Replace(Trim(.adresse2), "'", "\'") & "','" _
                    & Replace(Trim(.codePostal), "'", "\'") & "','" _
                    & Replace(Trim(.ville), "'", "\'") & "','" _
                    & Replace(Trim(.pays), "'", "\'") & "','" _
                    & Replace(Trim(.correspondantFournisseur), "'", "\'") & "','" _
                    & Replace(Trim(.code_devise), "'", "\'") & "','" _
                    & Replace(Trim(.numTel), "'", "\'") & "');"
                    
            End With

           'On met à jour la base
            If Asc(four.codeFournisseur) <> 0 Then
                With Record
                    .ActiveConnection = Conn
                    .Source = req
                    Debug.Print req
                    .Open
                End With
            End If  
            
        Wend
        
        Close #Fichfour

End Sub

Conclusion :


si il y a un souci merci de me prévenir et de me corriger.

A voir également

Ajouter un commentaire

Commentaires

kkhuet
Messages postés
92
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
3 juin 2009
1
Bonjour,

Et où est-ce qu'on lit le fichier dans la BdD ici ??
cs_Squallou
Messages postés
250
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
15 juillet 2006

De rien. Je peux pas tout t'expliquer là car c'est un peu long lol. Regarde sur le net si tu peux trouver des cours ou tuto sur Microsoft ActiveX Data Object (ADO quoi lol). Il suffit juste de savoir maitriser les objets Connection (pour se connecter) et Recordset (pour exploiter des résultats de requêtes, ...).
elisabeth_nov
Messages postés
103
Date d'inscription
jeudi 2 mars 2006
Statut
Membre
Dernière intervention
4 février 2009

Merci Squallou, c'est sympa de m'aider!!
cs_Squallou
Messages postés
250
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
15 juillet 2006

Pour gérer les doublons, le mieux est de passer par ADO. Utiliser l'objet Recordset, y stocker les résultats de ta requête, et voir si la valeur à insérer y est déjà (avec une boucle ou la méthode find de l'objet Recordset). Après, un simple if permet déviter les doublons...

Bonne continuation :)

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.