Mise à jour base ACCESS

cs_leodine Messages postés 5 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 8 juillet 2003 - 1 juil. 2003 à 13:33
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 9 juil. 2003 à 10:13
Salut à tous!
Je développe une petite appli ACCESS dans laquelle j'ai une fonctionnalité qui permet de remplir des infos divers : je remplis formulaire après formulaire (c'est comme une install) et j'arrive à un dernier formulaire ou je peux valider ma saisie et accéder à un bouton d'impression (qui reprend toutes les données enregistrées de toutes les tables). Pour passer d'un formulaire à l'autre, je met le formulaire en cours non visible et j'ouvre un nouveau formulaire (je pense que c'est pas forcement une bonne méthode d'ailleurs....). Le problème c'est que je dois quitter l'appli et la relancer pour avoir les dernieres données saisies dans la base sinon ma requete (pour mon état) SQL ne donne rien.
Je pense que c'est un problème assez fréquent sous ACCESS mais j'avoue que je ne sais pas comment le résoudre.
Pourriez vous m'aider??

10 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
1 juil. 2003 à 17:54
salut

tu peux surement mettre un recordset.update quelque part dans ton code

voila

ShareVB
0
cs_leodine Messages postés 5 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 8 juillet 2003
7 juil. 2003 à 15:34
J'ai essayé d'utiliser la procédure suivante pour automatiser la mise à jour mais ça ne fonctionne pas.

Private Sub MiseAJourBase()

Dim index As Variant

For Each index In Forms
If intX <> 0 Then
Forms(index).Recordset.Update
End If
Next

End Sub

Est-ce qu'il existe une autre solution pour faire l'actualisation de la base?
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
7 juil. 2003 à 16:30
salut

je me demande ce que sont Forms et intX

Private Sub MiseAJourBase()

Dim index As long

For index = 1 to Forms.count 'si forms est une collection quelconque
If intX <> 0 Then
Forms(index).Recordset.Update
End If
Next
End Sub

si tu fais un for each, index contient un objet de la collection Forms

faut attendre un peu et faire Tabledefs.refresh (DAO) ou tu fait ta_connection.close et tu la rouvre (ADO)

bon sinon : application.RefreshDatabaseWindow ou application.runcommand acCmdRefresh

voila

ShareVB
0
cs_leodine Messages postés 5 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 8 juillet 2003
8 juil. 2003 à 09:35
Merci pour ton aide.

A propos de l'ouverture et de la fermeture de la connection, j'ai fait :

CurrentProject.Connection.Close CurrentProject.Connection.Open

mais j'ai un message me disant que l'objet ne doit pas etre ouvert pour cette opération.....

Donc, comment doit-je faire pour éviter ce problème?

Encore merci pour ton aide.
0

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

Posez votre question
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
8 juil. 2003 à 09:41
salut

deja ca serait plutot ca :
CurrentProject.Connection.Close CurrentProject.Connection.Open connectionstring
avec connectionstring ta cahaine de connection

voila

ShareVB
0
cs_leodine Messages postés 5 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 8 juillet 2003
8 juil. 2003 à 10:25
Oui, exact.

Mais il me met toujours que l'opération est impossible si l'objet est ouvert???

As-tu une solution?
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
8 juil. 2003 à 10:33
tu peux essayer :
CurrentProject.closeConnection
CurrentProject.openConnection connectionstring

voila

ShareVB
0
cs_leodine Messages postés 5 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 8 juillet 2003
8 juil. 2003 à 14:07
Marche pas.....

Il me met dans ce cas que l'opération à échouée

J'ai essayé une méthode plus brutale :

CurrentProject.Application.CloseCurrentDatabase CurrentProject.Application.OpenCurrentDatabase "c:\mon_projet.mdb"

Il me ferme bien mon projet mais ne le rouvre pas.......
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
9 juil. 2003 à 09:56
salut

apres ce que tu as fais la opencurrentdatabase

tu peux essayer : CurrentProject.openConnection connectionstring

normalement une fois le projet ouvert il faut une connexion

sinon je vois pas

voila

ShareVB
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
9 juil. 2003 à 10:13
salut

si ca marche toujours pas tu peux essayer : en ajoutant la reference à microsoft dao 3.6

sans fermer la connection

Application.CurrentDb.Recordsets.Refresh
Application.CurrentDb.tabledefs.Refresh

voila

ShareVB
0
Rejoignez-nous