Visual Basic et access

Résolu
lilouhama Messages postés 32 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 11 septembre 2008 - 6 mars 2008 à 13:50
BeuheC Messages postés 16 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 15 juin 2010 - 6 mars 2008 à 19:36
bonjour à tous
quelqu'un pourrait-il m'aider car je dois mettre àa en place au plus vite pour ma boite. je débute en vb et je vous demande de l'aide en vous remerciant d'avance
en fait je vous explique je dois importer des fichiers textes (plus de 3 millions d'enregistrements) plus de 3 milllions de lignes les importer dans access puis nettoyer la table une fois importer supprimer des pipes supprimer des blancs et convertur un champ texte en num reel double. sachant que je dois faire ça toutes les 2 semaines. j'aimerai un programme, des modules permettant d'optimiser tt ça.
en fait les etapes seraient les suivantes:
- import des fichiers textes
- suppression des colonnes inutiles
- formatage des montants en numerique
- ajouts des données à une table unique

12 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2008 à 14:01
- lecture des fichiers texte
- nettoyage/formatage
- insertion dans la base de données

tu n'a rien pour débuter, pas ecrit la moindre ligne de code ?

a quoi ressemble ton fichier texte ?
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2008 à 15:18
Private Type Enregistrement
S As String
Montant As Single
Npiece As Long
DM As Long
CB As String
End Type

Private Sub Form_Load()
Dim iFile As Integer
Dim sBuffer As String
Dim xsParts() As String
Dim tRec As Enregistrement
iFile = FreeFile
Open "C:\a.txt" For Input As iFile
'# On saute la première ligne
Line Input #iFile, sBuffer
Do Until EOF(iFile)
Line Input #iFile, sBuffer
xsParts = Split(sBuffer, "|")
With tRec
.S = Trim$(xsParts(1))
sBuffer = Trim$(Left$(xsParts(2), Len(xsParts(2)) - 1))
sBuffer = Replace(sBuffer, ".", vbNullString)
sBuffer = Replace(sBuffer, ",", ".")
If Right$(xsParts(2), 1) = "-" Then
.Montant = -Val(sBuffer)
Else
.Montant = Val(sBuffer)
End If
.Npiece = xsParts(3)
.DM = xsParts(4)
.CB = Trim$(xsParts(5))

'# Lecture terminée, insertion dans la base de données
End With
Loop
Close iFile
End Sub
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
6 mars 2008 à 14:02
Bonjour

Résurgence de http://www.vbfrance.com/infomsg_VB-ACCESS_1087929.aspx#3

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
lilouhama Messages postés 32 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 11 septembre 2008
6 mars 2008 à 14:58
salut renfield

oui exactement je n'ai rien comme code comme je te dis je debute

mon fichier texte ressemble à à
| S|Montant       | Nº pièc  |DM|  CB                 |
| S|    7.165,00-|2252783|     3|Dépenses          |
| S|    2.401,53-|2252312|     3|Dépenses          |
| S|    3.525,23-|2251958|     3|Dépenses          |

L'idée serait d'automatiser mon traitement des données:
- importer les fichiers textes
- suppression des colonnes inutiles  (exemple:champ1, champ2)
- formatage du champ montant en numerique (car ds le fichier texte montant est en texte ( car il y ades points alors qu'access seulemnt en decimal)
- réunir tous les fichiers textes importés une fois nettoyés en une table unique.
 
et d'y integrer un formulaire pour simplement cliquer sur un bouton et le traitement lancé

merci pour ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2008 à 15:21
En passant, le format est bancal... on évite en général de sortir les montant formattés ainsi... on transmettra plutot

3525.23
ou encore
3 525.23

là, on se retrouve à jongler avec les regional settings
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2008 à 15:26
à noter que le code ci-dessus n'est qu'un exemple. il n'est absolument pas performant (lecture ligne à ligne de gros fichiers => suicide)

ca te sert de base algorithmique de départ, mais il faut lire tes 52 caractères (+2 pour les sauts de ligne) par blocs, pour limiter les opérations de lecture/ecriture
0
lilouhama Messages postés 32 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 11 septembre 2008
6 mars 2008 à 15:30
merci encore renfield
et comment faire pour supprimer des colonnes du fichier
et aussi creer un formulaire pour qu'il suffise de cliquer pour lancer le traitement

please aide moi

merci
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2008 à 15:34
supprimer les colonnes du fichier ? suffit de les ignorer et de ne pas les insérer dans ta base...
0
lilouhama Messages postés 32 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 11 septembre 2008
6 mars 2008 à 15:41
ok merci  et pour le formulaire  tu peux m'aider?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2008 à 15:45
pour placer deux commondialogs ? euh....

regarde sur le site, tu trouveras des exemples.
0
lilouhama Messages postés 32 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 11 septembre 2008
6 mars 2008 à 15:51
merci encore desolé de t'avoir pris de ton temps

je vais essayer tant bien que mal à trouver la solution

merci encore
0
BeuheC Messages postés 16 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 15 juin 2010
6 mars 2008 à 19:36
Moi je suis intéressé par la partie insertion des données.
Voir à cette adresse : http://www.vbfrance.com/tutoriaux/BASES-CONNECTER-BASE-DONNEES-ACCESS-AVEC-VB-NET_281.aspx

Question de BeuheC le 05/03/2008

Merci
0
Rejoignez-nous