begin process at 2012 02 13 00:56:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > EXTRACTION DEPUIS UN FICHIER TEXTE ET REMPLISSAGE D'UN BASE DE DONNEES ACCESS EXISTANCES

EXTRACTION DEPUIS UN FICHIER TEXTE ET REMPLISSAGE D'UN BASE DE DONNEES ACCESS EXISTANCES


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de Donnees Niveau :Débutant Date de création :18/09/2002 Date de mise à jour :19/09/2002 10:23:58 Vu / téléchargé :6 525 / 841

Auteur : PrX

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce code est là à titre d'exemple pour ceux qui se posent deux questions :
            1) Comment j'extrait une chaîne de taille variable ? (Rq : la mettre en début de ligne)
            2) C'est comment qu'on fait pour remplir une base de données ACCESS existante ?

Special thanks to Processus qui m'a permis d'éviter de faire gratter mon disque dur pour faire l'extraction.

PS: ce code fonctionne avec la bibliothèque DAO 3.51 de Microsoft
      l'exemple est tiré d'une appli pour mon boulot, alors pas de question du genre (qu'est ce qui veux avec ses palettes?)
      une dernière chose, la base doit être vide pour qu'il fonctionne sinon vous changer les données du fichier texte.  

Source

  • Dim fs As New FileSystemObject
  • Dim db As DAO.Database
  • Dim rc As DAO.Recordset
  • Dim fil As String, rep As String
  • Dim str As String
  • Dim i As Integer
  • Dim strtable(1 To 13) As String
  • Dim start, pause
  • Private Sub transfert_Click()
  • Dim strtbl
  • pause = 2
  • Form2.Show
  • ' parametre du chemin et du fichier source
  • rep = slash(Dir.Path)
  • fil = rep & File
  • 'ouverture de la dase de donnees
  • Set db = OpenDatabase(rep & "palette.mdb")
  • Form2.work.Caption = "Extraction des données..."
  • Form2.Refresh
  • 'On extrait les donnees
  • Open fil For Input As #1
  • i = 1
  • Do While Not EOF(1)
  • Line Input #1, str
  • strtbl = Split(str)
  • str = Trim(strtbl(0))
  • Debug.Print i & " " & str
  • stock str, i 'pour ranger les donnees extraites
  • str = ""
  • i = i + 1
  • Loop
  • Close #1
  • 'une pause pour faire beau
  • start = Timer
  • Do While Timer < start + pause: Loop
  • Form2.work.Caption = "Transfert des données..."
  • Form2.Refresh
  • 'on remplit la première table de la base
  • Set rc = db.OpenRecordset("palette", dbOpenTable)
  • rc.AddNew
  • For i = 1 To 7
  • rc.Fields(i - 1).Value = strtable(i)
  • Next i
  • rc.Update
  • rc.Close
  • Set rc = Nothing
  • 'on remplit la 2eme table de la base
  • Set rc = db.OpenRecordset("caisses")
  • For i = 0 To 4 Step 2
  • rc.AddNew
  • rc.Fields(0).Value = strtable(1)
  • rc.Fields(2).Value = strtable(i + 8)
  • rc.Fields(1).Value = strtable(i + 9)
  • rc.Update
  • Next i
  • rc.Close
  • db.Close
  • Set rc = Nothing
  • Set db = Nothing
  • ' du remplissage pour le fun
  • start = Timer
  • Do While Timer < start + pause: Loop
  • Form2.work.Caption = "Fin du travail"
  • Form2.Refresh
  • start = Timer
  • Do While Timer < start + pause: Loop
  • Unload Form2
  • End Sub
  • Private Sub Dir_Change()
  • File.Path = Dir.Path
  • File.Refresh
  • End Sub
  • Private Sub Drive_Change()
  • Dir.Path = Drive
  • Dir.Refresh
  • End Sub
  • ' un test sur "\" dans le chemin de fichier
  • Function slash(pathname As String) As String
  • If Right(Path, 1) <> "\" Then
  • slash = pathname + "\"
  • Else
  • slash = pathname
  • End If
  • End Function
  • 'Faut bien mettre les donnees quelque part
  • 'Un tableau est une idée
  • Sub stock(str As String, i As Integer)
  • If i > 7 Then GoTo Choix Else GoTo Simple
  • Choix: Select Case i
  • Case 8: strtable(8) = Left(str, 2)
  • strtable(9) = Right(str, 2)
  • Case 9: strtable(10) = Left(str, 2)
  • strtable(11) = Right(str, 2)
  • Case 10: strtable(12) = Left(str, 2)
  • strtable(13) = Right(str, 2)
  • End Select
  • Exit Sub
  • Simple: strtable(i) = str
  • End Sub
Dim fs As New FileSystemObject
Dim db As DAO.Database
Dim rc As DAO.Recordset
Dim fil As String, rep As String
Dim str As String
Dim i As Integer
Dim strtable(1 To 13) As String
Dim start, pause



Private Sub transfert_Click()

    Dim strtbl
    
    pause = 2
    Form2.Show
' parametre du chemin et du fichier source
    rep = slash(Dir.Path)
    fil = rep & File
'ouverture de la dase de donnees
    Set db = OpenDatabase(rep & "palette.mdb")
    
    Form2.work.Caption = "Extraction des données..."
    Form2.Refresh
 
'On extrait les donnees 
    Open fil For Input As #1
    i = 1
    Do While Not EOF(1)
        Line Input #1, str
        strtbl = Split(str)
        str = Trim(strtbl(0))
        Debug.Print i & " " & str
        stock str, i 'pour ranger les donnees extraites
        str = ""
        i = i + 1
    Loop
    Close #1

'une pause pour faire beau
    start = Timer
    Do While Timer < start + pause: Loop
    Form2.work.Caption = "Transfert des données..."
    Form2.Refresh

'on remplit la première table de la base    
    Set rc = db.OpenRecordset("palette", dbOpenTable)
    rc.AddNew
    For i = 1 To 7
        rc.Fields(i - 1).Value = strtable(i)
    Next i
    rc.Update
    rc.Close
    
    Set rc = Nothing
   
'on remplit la 2eme table de la base 
    Set rc = db.OpenRecordset("caisses")
    For i = 0 To 4 Step 2
        rc.AddNew
        rc.Fields(0).Value = strtable(1)
        rc.Fields(2).Value = strtable(i + 8)
        rc.Fields(1).Value = strtable(i + 9)
        rc.Update
    Next i
    
    rc.Close

    db.Close
    Set rc = Nothing
    Set db = Nothing
 
' du remplissage pour le fun   
    start = Timer
    Do While Timer < start + pause: Loop
    Form2.work.Caption = "Fin du travail"
    Form2.Refresh
    start = Timer
    Do While Timer < start + pause: Loop
    Unload Form2
    
End Sub

Private Sub Dir_Change()
    File.Path = Dir.Path
    File.Refresh
End Sub

Private Sub Drive_Change()
    Dir.Path = Drive
    Dir.Refresh
End Sub

' un test sur "\" dans le chemin de fichier
Function slash(pathname As String) As String
    If Right(Path, 1) <> "\" Then
        slash = pathname + "\"
    Else
        slash = pathname
    End If
End Function

'Faut bien mettre les donnees quelque part
'Un tableau est une idée
Sub stock(str As String, i As Integer)
        If i > 7 Then GoTo Choix Else GoTo Simple

Choix:  Select Case i
        Case 8: strtable(8) = Left(str, 2)
                strtable(9) = Right(str, 2)
        Case 9: strtable(10) = Left(str, 2)
                strtable(11) = Right(str, 2)
        Case 10: strtable(12) = Left(str, 2)
                strtable(13) = Right(str, 2)
        End Select
        Exit Sub
        
Simple: strtable(i) = str

End Sub

  

 Conclusion

Ne vous géner pas et donner votre avis, ca peut motiver à mettre d'autres sources, bien meilleures je l'espère.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture IMPRIMER UN CONTRÔLE
Source avec Zip Source avec une capture TEST DE COMMUNICATION PC-PC PAR NULL MODEM (PORT SÉRIE RS232...

 Sources de la même categorie

Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa
Source avec Zip VBA EXEL GESTION DE PERSONEL NOUVEAU CONTRAT DE TRAVAI par oudlarbi
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source .NET (Dotnet) MISAHORAIRE par MdelM
Source avec Zip Source avec une capture BASEDEDONNEES,GESTIONDEMALADES,DATABASSE par shadkitenge

Commentaires et avis

Commentaire de PrX le 20/09/2002 16:18:34

Faut le dire les gars...
chuis pas 1 lumière en VB mais faut le dire

A ce propos ça cété du DAO 3.51, j'me mé a ADO maintenant.
A leur ou j'ecris ces lignes j'ai pas enco reussi 1 connect et ca fait déja 1 heure que chuis dssus.

Des idees????

Commentaire de Mumuri le 12/10/2002 11:42:33

merci

Commentaire de PrX le 16/10/2002 17:50:52

De rien,

Maintenant, je suis à fond dans ADO.
C'est vraiment très puissant, mais bcq plus dur.

Un jour, je mettrais une grosse source en ADO, prise sur l'appli sur laquelle je travaille pour le boulot...

A plus

Commentaire de Ouneufe le 07/01/2003 23:43:34

ADO c'est beaucoup plus performant, mais pas vraiment plus dur je trouve.

Commentaire de pinacolada le 23/10/2003 19:15:36

Je ne vois pas l'utilié de la première variable (FS)
On m'aurait menti ?
;-)

Commentaire de kusanaji le 09/07/2004 13:31:26

bon travai c'est gentil de votre part

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales