IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

equivalent du bouton "actualiser tout" de access en VB


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 45
    Points
    45
    Par défaut equivalent du bouton "actualiser tout" de access en VB
    Bonjour a tous,

    Je souhaite raffraichir mon formulaire principal sans avoir a cliquer sur le bouton "Actualiser tout" edans l'onglet accueil de Access 2007.
    En effet, c'est le seul moyen d'afficher le contenu des champs du formulaire, la requete sql s'executant avant le code visual basic qui rempli la table qui sert a remplir les champs du formulaire..
    Comment, en code visual basic, je peux faire la meme chose que ce boutton actualiser ?

    Merci de vos reponses

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 324
    Points : 470
    Points
    470
    Par défaut
    Tu veux que les données se rafraichissent toutes seules ou tu veux cliquer quand même sur un bouton pour que relancer la requête?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 45
    Points
    45
    Par défaut
    Bonjour, merci d'avoir repondu.
    Je souhaite que les donnees de la requete soient raffraichies automatiquement, sans que j'aie a cliquer sur ce bouton "raffraichir".

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Regardes dans l'aide du coté de Requery

    Philippe

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 45
    Points
    45
    Par défaut
    Merci de ta reponse, mais des que je fais un Forms("Nom du formulaire").Requery , je me retrouve avec une page blanche, le formulaire ne s'affiche meme plus ...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Points : 492
    Points
    492
    Par défaut
    Bonjour ,

    Pourrais-tu être plus clair sur l'utilisation ?

    Ce qui rejoind Philippe JOCHMANS :

    Pour rafraichir un formulaire Classic sur l'action d'un bouton tu met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![F_Principal].Requery
    Cordialement ,
    Si ma réponse ou ma question vous semble pertinente un clique sur le pouce vert.
    La base des Expression Access à Connaitre : http://office.microsoft.com/fr-ca/ac...295.aspx?CTT=3
    Un livre de chevet parfait : "Développement Android": http://www.editions-eyrolles.com/Livre/9782212125870/

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 45
    Points
    45
    Par défaut
    J'ai un formulaire principal, j'ai genere un code en visual basic au moment de l'ouverture de ce formulaire. Ce code vide puis remplis une table. Le formulaire contient 2 champs qui sont remplis par un select sur cette table. Losrsque je ne fais pas re requery, les champs concernes sont remplis par "#supprime", et lorsque j'appuye sur le bouton "actualiser tout" dans la barre d'accueil de access 2007, les champs se remplissent correctement.
    Quand je fais un Me.Requery dans le code genere au moment de l'ouverture du formulaire, je me retrouve avec un formulaire vide, sans cases blanches ni de messages d'erreur, je peux remplir ce formulaire en cliquant sur le bouton "actualiser tout" dans la barre d'accueil de access 2007.
    Je souhaite que ce raffraichissement se fasse tout seul, sans que j'aie a cliquer sur ce fichu bouton !

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 324
    Points : 470
    Points
    470
    Par défaut
    Essaie Me.Repaint ou Me.recalc ou...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Points : 492
    Points
    492
    Par défaut
    Je pense que tu as dit la solution la ...

    qui sont remplis par un select sur cette table.

    Tu as donc une function public qui fait ton select , c'est bien ça ?

    Du coup il te reste plus que a créer un bouton avec évenement sur click du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Coucou_Click()
    'Appel de la procédure
    LancementDesSelect
    End Sub
    Qui appelera la public function "LancementDesSelect".

    Dans cette fonction tu aurais tes select , tes order by ... etc en VBA-SQL.


    Enfin moi je vois ça comme cela , d'après ce que j'en est compris.

    Cordialement ,
    Si ma réponse ou ma question vous semble pertinente un clique sur le pouce vert.
    La base des Expression Access à Connaitre : http://office.microsoft.com/fr-ca/ac...295.aspx?CTT=3
    Un livre de chevet parfait : "Développement Android": http://www.editions-eyrolles.com/Livre/9782212125870/

  10. #10
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Points : 51
    Points
    51
    Par défaut
    Quand on fait me.Requery c'est le formulaire qui set mis à jour. Pour actualiser il faut faire un saverecord. Essaie ce code où tu veux que le reresh se fasse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    Bon courage

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 45
    Points
    45
    Par défaut
    Me.repaint, me.recalc, me.refresh, me.requery ne fonctionnent pas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    ne fonctionne pas non plus

    J'ai a moitie resolu le probleme en creeant un bouton actualiser dans le formulaire, avec la maccro "Actualiser" mais il faut que j'appuye au moins 2 fois sur ce bouton pour que le formulaire s'affiche correctement. J'ai essaye de lancer une maccro actualiser au chargement du formulaire, mais je pars en boucle infinie ...

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 324
    Points : 470
    Points
    470
    Par défaut
    Essaie Docmd.Requery sinon... Je pense que si tu met le code dans la procédure à l'ouverture, ton problème serait certainement résolu...

  13. #13
    jojo5650
    Invité(e)
    Par défaut regarde du coté sendkeys
    essaye ceci
    à la fin de ton module de modifiaction fait ceci
    sendkey{^F9},true
    Ce qui correspond à l'action du menu

  14. #14
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Voici une alternative au Requery.
    Déconnecter le formulaire de sa source de données pendant qu'on manipule celles-ci,
    puis reconnecter le formulaire à sa source.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Form_Load()
    Dim db As DAO.Database
    Dim strFmRecSce As String
     
    Set db = CurrentDb
    strFmRecSce = Me.RecordSource
    Me.RecordSource = ""
     
    db.Execute "DELETE FROM LaTable"
    db.Execute "INSERT INTO LaTable(.. , .. , ...) SELECT .. , .. , ... FROM ..."
     
    Me.RecordSource = strFmRecSce
     
    End Sub
    A+

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Points : 45
    Points
    45
    Par défaut
    Merci pour votre aide.
    En tant que parfait debutant et etourdi que je suis, je ne vous ait pas dit que je souhaitais faire le requery sur un sous formulaire, j'ai donc essaye la methode du backup de recordsource puis de reasignation en utilisant ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim strFmRecSce As String
     
    strFmRecSce = Me.[Form Detail1].RecordSource
    Me.[Form Detail1].RecordSource = ""
    Me.[Form Detail1].RecordSource = strFmRecSce
    mon sous-formulaire s'appelant "Form Detail1"

    Mais je tombe sur une erreur d'execution 2465, mydsn ne trouve pas le champ '|' auquel il est fait reference.
    Cela voudrait donc dire que le nom de mon sous-formulaire n'est pas "Form Detai1" mais comment puis-je m'en assurer svp ?

  16. #16
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    On peut faire un Requery sur le sous-formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Form_Load()
    Dim db As DAO.Database
     
    Set db = CurrentDb
     
    ' Manipulations données sources du sous-formulaire
    db.Execute "DELETE FROM LaTable"
    db.Execute "INSERT INTO LaTable(.. , .. , ...) SELECT .. , .. , ... FROM ..."
     
    ' Requery sous-formulaire
    Me.[Nom du controle sous-formualire].Requery
     
    End Sub
    ou bien la méthode alternative
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub Form_Load()
    Dim db As DAO.Database
    Dim strFmRecSce As String
     
    Set db = CurrentDb
    strFmRecSce = Me.[Nom du controle sous-formualire].Form.RecordSource
    Me.[Nom du controle sous-formualire].Form.RecordSource = ""
     
    ' Manipulations données sources du sous-formulaire
    db.Execute "DELETE FROM LaTable"
    db.Execute "INSERT INTO LaTable(.. , .. , ...) SELECT .. , .. , ... FROM ..."
     
    Me.[Nom du controle sous-formualire].Form.RecordSource = strFmRecSce
     
    End Sub
    Tu noteras que j'ai .Form entre le nom du contrôle sous-formulaire et la propriété RecordSource.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[Nom du controle sous-formualire].UnMembre
    UnMembre est une propriété ou une méthode du contrôle sous-fourmulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[Nom du controle sous-formualire].Form.UnMembre
    UnMembre est une propriété ou une méthode du formulaire inclut dans le contrôle sous-formulaire.

    A+

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 1
    Points : 6
    Points
    6
    Par défaut
    Bonjour, il faudra essayer la solution suivante car j'étais confronté à ce même problème et cette solution a marché:


  18. #18
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par treuss Voir le message
    Bonjour, il faudra essayer la solution suivante car j'étais confronté à ce même problème et cette solution a marché:
    Me.Refresh
    bonjour,
    Et oui quand on veut rafraichir un formulaire c'est sur ce formulaire qu'il faut agir!

  19. #19
    Membre du Club Avatar de jonathan.chaf
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Points : 51
    Points
    51
    Par défaut sous formulaire refresh vc requery
    Juste un grand merci à treuss

    J'avais un sous formulaire qui reagissait bien sauf pour une listbox individuelle j'ai essayer plein de truc et le me.refresh marche a perfection si je l'inclu dans la macro de la liste box de mon 1er formulaire.

    Encore merci.

Discussions similaires

  1. Bouton sauvegarder tout
    Par idefix54 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 29/09/2006, 14h17
  2. bouton actualiser qui ne marche plus
    Par DjBeGi dans le forum Access
    Réponses: 1
    Dernier message: 07/06/2006, 17h09
  3. Equivalent du 'DECODE' d'Oracle dans Access ?
    Par leMi_ dans le forum Access
    Réponses: 4
    Dernier message: 06/06/2006, 20h53
  4. problème d'actualisation sur formulaire access
    Par abhleza dans le forum Access
    Réponses: 5
    Dernier message: 31/03/2006, 08h07
  5. Bouton actualiser
    Par mcbrett dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/03/2006, 09h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo