Acceder à un fichier texte et mettre le contenu dans une table bdd

Description

Bonjour
ce code n'est pas une invention mais j'espere qu'il peut vous aider MAY et qui en a besoin.

NB:il faut regarder le code et creer une BDD dans C:\
vous trouvez le fichier et la BDD dans le zip (.rar)placer les dans c:\

Source / Exemple :


Option Explicit

'déclaration de la variable qui contiendra le provider et le chemin de la B.D
Public bd As New ADODB.Connection

'déclaration de la variable qui contiendra la commande
Public cmdado As New ADODB.Command

'déclaration de la variable qui contiendra le nom de la table
Public tb As New ADODB.Recordset

'déclaration de la variable qui contiendra le choix de l'utilisateur dans les msgbox
Dim msg1 As String

'déclaration des variables pour le redimmensionnement des contrôles de la form
Dim lar As Long, lng As Long

Private Sub ajouter_Click()
 Dim Import As Object

 On Error Resume Next
 'permet d'importer le fichier texte dans la bdd
 Import = CreateObject("Access.Application")
 Import.OpenCurrentDatabase ("c:\basefichier.mdb")                  'pour importer les données d'un .txt
 DoCmd.TransferText AcTextTransferType.acImportDelim, "Test Import Specification ", "test", "c:\test.txt"
 bd.Refresh
 MsgBox "Création Bd terminée"
ListView1.ListItems.Clear
        ListView1.ColumnHeaders.Clear
        ListView1.ColumnHeaders.Add , , "ID", (ListView1.Width * (2 / 22)), lvwColumnLeft
        ListView1.ColumnHeaders.Add , , "Prenom", (ListView1.Width * (4 / 22)), lvwColumnLeft
        ListView1.ColumnHeaders.Add , , "nom", (ListView1.Width * (4 / 19)), lvwColumnLeft
        ListView1.ColumnHeaders.Add , , "Tel", (ListView1.Width * (4 / 22)), lvwColumnLeft
        ListView1.ColumnHeaders.Add , , "ville", (ListView1.Width * (4 / 22)), lvwColumnLeft

ListView1.View = lvwReport
cmdado.CommandText = "select * from test"
tb.Requery
 Dim ListItem As ListItem           ' Pour affichage du résultat
   
    
    ' M.A.j de la ListView
    ListView1.ListItems.Clear
    
    
    ' Préparation de la commande
    cmdado.CommandText = "select * from test"
        
    ' Execution de la commande
    tb.Requery
    On Error Resume Next
    ' tant qu'il y a un enregistrement l'afficher (fin du fichier)
    While (Not tb.EOF)

      If (tb.RecordCount <> 0) Then
          Set ListItem = ListView1.ListItems.Add(, , CStr(tb!ID))
          If Not IsNull(tb!prenom) Then ListItem.SubItems(1) = CStr(tb!prenom)
          If Not IsNull(tb!nom) Then ListItem.SubItems(2) = CStr(tb!nom)
          If Not IsNull(tb!tel) Then ListItem.SubItems(3) = CStr(tb!tel)
          If Not IsNull(tb!ville) Then ListItem.SubItems(4) = CStr(tb!ville)
          
End If
   
      ' enregistrement suivant
      tb.MoveNext
           
    Wend
 
End Sub

Private Sub decouper_Click() ' ouvrir un fichier avec SPLIT
Dim VarTimeBase() As String ' tableau de ligne sans delimitateur
Dim a As String
Dim i, j As Integer
i = 0
Text1 = Text1 + Chr$(13) + Chr$(10)
Open "C:\test.txt" For Input As #1
While Not EOF(1)
    Input #1, a$            ''' lire la 1ere ligne tel kelle et mets la dans la variable a
    VarTimeBase() = Split(a$, ";")  ' tableu ki contient la ligne splité
   
    For i = 0 To UBound(VarTimeBase)
    Text1 = Text1 + VarTimeBase(i)
    Next i
    Text1 = Text1 + Chr$(13) + Chr$(10)  ' retour chariot apres chake ligne
       
Wend
Close #1
End Sub

Private Sub Form_Load()
bd.Provider = "Microsoft.jet.oledb.4.0"
        bd.ConnectionString = "c:\basefichier.mdb"
        bd.Open
        cmdado.ActiveConnection = Me.bd
         
        cmdado.CommandText = "select * from test"
        tb.CursorLocation = adUseClient
        tb.CursorType = adOpenDynamic
        tb.LockType = adLockPessimistic
        tb.Open cmdado

'' pour acceder a un fichier et l afficher tel qu il est
Dim stream As New ADODB.stream
stream.Charset = "UTF-8"
stream.Open
stream.LoadFromFile "C:\test.txt"
Text1.Text = stream.ReadText
Text1 = Text1 + Chr$(13) + Chr$(10)
Text1 = Text1 + Chr$(13) + Chr$(10)
stream.Close

End Sub

Codes Sources

A voir également

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.