importer dans access donnée depuisTXT en vb

importer dans access donnée depuisTXT en vb - VB/VBA/VBS - Programmation

Marsh Posté le 14-10-2004 à 17:42:03    

Bonjour,
 
J’ai un problème. J’ai une base de donnée MS Access avec tous mes clients.
 
Quand j’ai le nom d’un nouveau client je vais sous twixtel et je recherche tout les infos sur la personne (numéro de téléphone, natel etc..)
 
Lexique : Twixtel est un annuaire électronique.
 
Ce que j’aimerai faire c’est que je puisse importer les données du client directement dans MS Access.
 
Twixtel me permet d’exporter ces infos sous forme de fichier txt :
 
[LIGNE 1]Formule d'appel;Rubrique;Prénom;Nom;JOKER;Rue + N°;Case postale;NPA;Localité;JOKER;Téléphone 1;Fax;Mobile;JOKER;E-mail
[LIGNE 2];;Jaque;Dupont;;laRue 5;;3425;laVille;;032 968 45 96;032 849 85 47;;;
 
Mon but est donc de créer un bouton dans mon formulaire que et que la je puise choisir ou se trouve le fichier et que MS Access rajoute ces infos a la base.
 
Es-ce possible ??
 
Quelqu'un as t'il une iddé comment faire ? meme toute petite ??
 
Je vous remercie de votre éventuelle aide !!  :wahoo:  
 
 
Merci
 
Marco Eberhard

Reply

Marsh Posté le 14-10-2004 à 17:42:03   

Reply

Marsh Posté le 19-10-2004 à 20:18:12    

choisir ou se trouve le fichier risque d'etre un peu problematique , j'avais a l'epoque cherche le controle en question et je ne l'ai pas trouve sous access (tu peux a la limite faiere un combo contenant tous les fichiers du repertoire courant)
Pour ce qui est de l'importation des donnees tu n'as qu a creer une macro de type "transfertext"(en anglais)

Reply

Marsh Posté le 27-10-2004 à 00:23:32    

Voici le code qui permet d'ouvrir la fenêtre de sélection d'un fichier à importer :  
' Début du code
Option Compare Database
 
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Boolean
'
Type MSA_OPENFILENAME
    strFilter As String
    lngFilterIndex As Long
    strInitialDir As String
    strInitialFile As String
    strDialogTitle As String
    strDefaultExtension As String
    lngFlags As Long
    strFullPathReturned As String
    strFileNameReturned As String
    intFileOffset As Integer
    intFileExtension As Integer
End Type
'
Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As Long
    nMaxCustrFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    Flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustrData As Long
    lpfnHook As Long
    lpTemplateName As Long
End Type
'
Const ALLFILES = "All Files"
Private Sub OF_to_MSAOF(of As OPENFILENAME, msaof As MSA_OPENFILENAME)
' This sub converts from the Win32 structure to the Microsoft Access structure.
     
    msaof.strFullPathReturned = Left(of.lpstrFile, InStr(of.lpstrFile, vbNullChar) - 1)
    msaof.strFileNameReturned = of.lpstrFileTitle
    msaof.intFileOffset = of.nFileOffset
    msaof.intFileExtension = of.nFileExtension
    '
End Sub
Private Sub MSAOF_to_OF(msaof As MSA_OPENFILENAME, of As OPENFILENAME)
    ' This sub converts from the Microsoft Access structure to the Win32 structure.
    '
    Dim strFile As String * 512
    '
    ' Initialize some parts of the structure.
    of.hwndOwner = Application.hWndAccessApp
    of.hInstance = 0
    of.lpstrCustomFilter = 0
    of.nMaxCustrFilter = 0
    of.lpfnHook = 0
    of.lpTemplateName = 0
    of.lCustrData = 0
    '
     of.lpstrFilter = msaof.strFilter
    '
    of.nFilterIndex = msaof.lngFilterIndex
    of.lpstrFile = msaof.strInitialFile _
        & String(512 - Len(msaof.strInitialFile), 0)
    of.nMaxFile = 511
    of.lpstrFileTitle = String(512, 0)
    of.nMaxFileTitle = 511
    of.lpstrTitle = msaof.strDialogTitle
    of.lpstrInitialDir = msaof.strInitialDir
    of.lpstrDefExt = msaof.strDefaultExtension
    of.Flags = msaof.lngFlags
    of.lStructSize = Len(of)
    '
End Sub
 
 
Function GetFicName(stTypeofFile As String, stTitle As String) As String
    ' stTypeofFile :  "MDB" = Base de données ACCESS, "TXT"... , "*" = Tout
    '  Renvoie le chemin choisi par l'utilisateur dans la boîte
    '  de dialogue Ouvrir fichier.
    'stTitle : Légende de la fenêtre
    Dim msaof As MSA_OPENFILENAME
    Dim of As OPENFILENAME, intRet As Integer
    Dim stParmFile As String
    Dim strSearchPath As Variant
     
    'stParmFile     : légende type de fichiers
    'strSearchPath  : chemin du fichier
     
    stTypeofFile = Left(stTypeofFile, 3)
    stTypeofFile = UCase(stTypeofFile)
     
    Select Case stTypeofFile
        Case "MDB"
            stParmFile = "Base de données (*.mdb)" & vbNullChar & "*.mdb" & vbNullChar
        Case "TXT", "DTA"
            stParmFile = "Fichiers texte (*." & stTypeofFile & " )" & vbNullChar & "*." & stTypeofFile & vbNullChar
        Case "*", ""
            stParmFile = ""
        Case Else
            stParmFile = "Fichiers " & stTypeofFile & " (*." & stTypeofFile & " )" & vbNullChar & "*." & stTypeofFile & vbNullChar
    End Select
    If stTitle = "" Then
        msaof.strDialogTitle = "Sélection d'un fichier"
    Else
        msaof.strDialogTitle = stTitle
    End If
    msaof.strInitialDir = strSearchPath
    msaof.strFilter = stParmFile & "Tous les fichiers (*.*)" & vbNullChar & "*.*" & vbNullChar
    '
    MSAOF_to_OF msaof, of
    intRet = GetOpenFileName(of)
    If intRet Then
        OF_to_MSAOF of, msaof
    End If
    MSA_GetOpenFileName = intRet
     
    ' retrouve le fichier et son emplacement
     
    GetFicName = Trim(msaof.strFullPathReturned)
    '
End Function
 
' Fin du code
 
 
Ensuite sur le click de ton bouton tu utilises la fonction de cette manière :  
Monfichier = getFicname("*.txt","Importer un fichier depuis Twixtel" )  
il te renvoie le nom complet du fichier à importer. Il ne te reste plus qu'à importer ton fichier.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed