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