Accueil > Forum > > > > base de donnée
base de donnée
vendredi 5 mai 2006 à 19:05:22 |
base de donnée

inconnu2nulpar
|
slt, je voudrai savoir, comment sous access je peut remplir une table a partir d'un fichier text.txt. il faudrais que je crée une macro car le fichier .txt est sans cesse remis a jour, dc il faudrais que je crée une macro qui a la demande de l'utilisateur met à jours la table access. En gros je voudrai avoir une macro qui remplis une table access depuis un fichier .txt merci
|
|
vendredi 5 mai 2006 à 22:20:33 |
Re : base de donnée

XtremDuke
|
Access a un un assistant pour l'importation de données externes au format txt. Si ca peut t'aider....
|
|
samedi 6 mai 2006 à 14:30:34 |
Re : base de donnée

inconnu2nulpar
|
ouai mais cette assistant le fait qu'une fois. Moi il me faut une macro qui le fasse a chaque fois que je clic sur un bouton, qq un sait comment on fait?
|
|
samedi 6 mai 2006 à 19:33:30 |
Re : base de donnée

metalcoder
|
salut, voici une solution a ton probleme
ouvre un nouveau projet VB avec trois boutons sur la feuille et colle le code dans ta feuille.
ajoute ensuite la reference suivante a ton projet (menu projet/reference et choisis microsoft activex data objects 2.5 ou superieur si tu as .
ensuite il te faut un fichier texte que j'ai appeler essai.txt (le nom doit etre identique si tu veut que cela marche) il te faut une base access vide avec une table que j'ai appeler Table1 et qui possede un champs que j'ai appeler donnée. le champs "donnée" est au format texte avec une longueur de 255.
le fichier access doit s'appeler essai.Mdb et tout comme le fichier texte il faut qu'il soit située dans le meme repertoire ou tu sauvegardera ce petit programme.
'************CODE************************* Public Ct As ADODB.Connection Public rc As ADODB.Recordset
Private Sub Command1_Click() Set rc = New ADODB.Recordset rc.Open "Table1", Ct, adOpenKeyset, adModeReadWrite
Open App.Path & "\essai.txt" For Input As #1 While Not EOF(1) Line Input #1, a With rc .AddNew !Donnée = a .Update End With Wend Close #1
MsgBox "Mise a Jour OK"
err: If err.Number = 53 Then MsgBox "Fichier essai.txt introuvable" Exit Sub End If
End Sub
Private Sub Command2_Click() Set rc = New ADODB.Recordset rc.Open "Table1", Ct, adOpenKeyset, adModeReadWrite While Not rc.EOF rc.Delete rc.MoveNext Wend
MsgBox "Table1 Effacée" End Sub
Private Sub Command3_Click() rc.Close End End Sub
Private Sub Form_Load() On Error GoTo err Set Ct = New ADODB.Connection
Ct.Provider = "Microsoft.Jet.Oledb.4.0" Ct.ConnectionString = App.Path & "\Essai.Mdb" Ct.Open
err: If err.Number = -2147467259 Then MsgBox "fichier essai.mdb introuvable" End End If
End Sub
|
|
samedi 6 mai 2006 à 20:47:40 |
Re : base de donnée

inconnu2nulpar
|
Merci bcp, mais est ce que tu peut me mettre des commentaire pour que je puisse modifier ton prog, car mon fichier text a plusieur champs, il y aura une clé primaire et a coté séparé par une virgule ou un point virgule, une date, et dc je voudrais copier ces 2 champs ds ma table
|
|
samedi 6 mai 2006 à 21:36:44 |
Re : base de donnée

metalcoder
|
Bon j'ai pas changé grand chose donc je te met juste le code qui a changé.
Public Ct As ADODB.Connection 'Declaration des variables pour se connecter en mode ADO Public rc As ADODB.Recordset
Private Sub Command1_Click() Set rc = New ADODB.Recordset 'Declaration d'une nouvelle connection ADO rc.Open "Table1", Ct, adOpenKeyset, adModeReadWrite 'Ouverture de la table "Table1" de la base essai.Mdb
Open App.Path & "\essai.txt" For Input As #1 'Ouverture du fichier texte en lecture While Not EOF(1) 'Tant que ce n'est pas la fin du fichier texte Input #1, a, b 'la valeur a contient la premiere valeur et B la deuxieme valeur du fichier texte With rc 'les valeurs du fichier texte doivent etre séparer par des , .AddNew 'On ajoute un enregistrement dans la table1 !Index = a 'Le champs Index prend la valeur de A !Heure = b 'Le champs Heure prend la valeur de B .Update End With Wend Close #1 'On ferme le fichier texte
MsgBox "Mise a Jour OK"
err: 'Si le fichier essai.txt n'est pas trouvé on affiche un message If err.Number = 53 Then MsgBox "Fichier essai.txt introuvable" Exit Sub End If
End Sub
Private Sub Command2_Click() Set rc = New ADODB.Recordset 'Declaration d'une nouvelle connection ADO rc.Open "Table1", Ct, adOpenKeyset, adModeWrite 'Ouverture de la table "Table1" en ecriture seulement While Not rc.EOF 'On boucle tant que la fin n'est pas arrivée rc.Delete 'Effacement de l'enregistrement courant rc.MoveNext 'On passe a l'enregistrement suivant Wend
MsgBox "Table1 Effacée" End Sub
Private Sub Command3_Click() rc.Close 'Fermeture de la connection ADO End End Sub
Private Sub Form_Load() On Error GoTo err Set Ct = New ADODB.Connection 'Declaration
Ct.Provider = "Microsoft.Jet.Oledb.4.0" Ct.ConnectionString = App.Path & "\Essai.Mdb" 'Chemin ou se trouve la base access Ct.Open
err: If err.Number = -2147467259 Then MsgBox "fichier essai.mdb introuvable" End End If
End Sub
|
|
dimanche 7 mai 2006 à 12:26:51 |
Re : base de donnée

inconnu2nulpar
|
ok merci bcp ! et au fait est ce que c'est possible de suprimé les données que j'ai écrite ds la table access du fichier text.txt? et aussi comment je peut tester ma table access pour que lorsqu'il y a des doublons, j'écrase l'ancien et je mais la nouvelles donner ds ma table ?
|
|
dimanche 7 mai 2006 à 12:28:35 |
Re : base de donnée

inconnu2nulpar
|
Et aussi, ds ton programme losrque tu met "ajoute un champs ds la table " cela ajoute un champs sans suprimer ceux qui existe déja ?
|
|
dimanche 7 mai 2006 à 12:38:38 |
Re : base de donnée

inconnu2nulpar
|
excuse moi d'écrire plusieur msg , mais pourquoi tu utilise le bouton 2? pourquoi tu efface la table1?
je sait pas si c'est possible, mais je voudrais rajouter a la suite les champs qui se trouvent ds mon fichier text.txt.
et aussi à la place des virgule il faudrai que j'utlise qqch d'autre car l'assistant access ne veut pas prendre les virgyule comme séparateur car il exporte des date/heure, je sait pas si c'est importatnt ds ton programme ça.
|
|
dimanche 7 mai 2006 à 13:11:17 |
Re : base de donnée

metalcoder
|
le bouton 2 sert juste a effacer toute la table1 si tu en a besoin. Je vais pas te faire le programme completement, je te donne juste une piste ;-))
le probleme c'est que tu va mettre ton fichier texte dans la table1 mais si tu recommence aussitot apres tu va ajouter a la suite, ce qui va faire plein de doublons dans ta table, c'est pour ca que j'avais mis le bouton 2.
mon programme tel qu'il est fait prend la virgule comme separateur
ex: 154,15/05/2006 tu va avoir le chiffre 154 dans le champs index de la table1 et 15/05/2006 dans le champs heure de la table1 essaye de le modifier, il y a que comme ca que tu va comprendre
Metalcoder
|
|
Cette discussion est classée dans : fichier, access, base, macro, table
Répondre à ce message
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : VITESSERE : VITESSE par Renfield
Cliquez pour lire la suite par Renfield RE : VITESSERE : VITESSE par ucfoutu
Cliquez pour lire la suite par ucfoutu MACRO VBA EXCELMACRO VBA EXCEL par sigma17
Cliquez pour lire la suite par sigma17
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|