Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : base de donnée [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (inconnu2nulpar)

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

Membre Club
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

Membre Club
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

Membre Club
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


1 2

Cette discussion est classé dans : fichier, access, base, macro, table


Répondre à ce message

Sujets en rapport avec ce message

copier table dans une autre base access [ par lezardjet ] BonjourJ'ai chercher sur le forum mais les réponses que je trouve sont trop confuse.J'ai une table. 2 bases. Et je veux copier ma table dans l'autre b Renommer table dans access [ par Spawn3107 ] Bonjour tout le monde,J'ai un petit probleme avec ma base de donnée. Je veux renommer ma table dans la base à l'aide d'un bouton. J'ai fait une macro supprimer une table d'une base de donnée access [ par cricri_b34 ] Je vient de créer un petit programme qui enregistre ce qu'il y a dans le textbox dans un fichier access.***le nom de mon controle data est: data1le no a l'aide!!! pb pour supprimer les donnée d'une table!!! [ par cricri_b34 ] Je vient de créer un petit programme qui enregistre ce qu'il y a dans le textbox dans un fichier access.***le nom de mon controle data est: data1le no VBA Excel + Access : PB de MoveFirst, MoveNext, BOF et EOF [ par hebus16 ] Bonjour Tout le monde :) !! Bon ben voilà je vais essayer d'être clair sur un problème bête et assez surprenant ( du moins je suis assez surpris supprimer une table dans une autre base Access (vba) [ par madmax34 ] Hello, je cherche une commande vb me permettant de supprimer une table attachée. Je précise, pas le lien mais bien la table situé dans une base distan Probleme de transfert de table Access dans un fichier excell [ par cancolegnako ] A partir d un module de ma base de donnees Access je dois exporter des donnees d une de mes tables dans un fichier excell au format dependant de la da table liée [ par yannsurf ] hello,j'ai un base de donnée que je souhaite distribuée avec access run time. Le pb , c'est qu'avec ART, le gestionnaire de table liée n'est pas dispo table liée [ par yannsurf ] hello,j'ai un base de donnée que je souhaite distribuée avec access run time. Le pb , c'est qu'avec ART, le gestionnaire de table liée n'est pas dispo Importation access/excel [ par fab101 ] Bonjour a tous et a touteVoilaj'ai des données d'un fichier excel dans une table accessLe problème est que les données sont éparpillées dans le fichie


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,577 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.