importer dans access donnée depuisTXT en vb - VB/VBA/VBS - Programmation
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)
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. 
Marsh Posté le 14-10-2004 à 17:42:03
Bonjour,
 
  
Jai un problème. Jai une base de donnée MS Access avec tous mes clients.
Quand jai le nom dun 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 jaimerai faire cest que je puisse importer les données du client directement dans MS Access.
Twixtel me permet dexporter 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 !!
Merci
Marco Eberhard