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 :

stockage et réutilisation de données copiées


Sujet :

VBA Access

  1. #1
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut stockage et réutilisation de données copiées
    Bonjour,

    je souhaite copier plusieurs enregistrements (et quand je dis plusieurs c'est variable, entre 1 et 20 grosso modo, mais ce n'est pas fixé) d'un formulaire1 vers un formulaire2 que l'on ouvre par un bouton sur le 1.
    Pour ça, j'ai créé cette commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Commande67_Click() 
    DoCmd.RunCommand acCmdSelectAllRecords
    DoCmd.RunCommand acCmdCopy
    DoCmd.OpenForm "formulaire2", acNormal, "", "", acAdd, acNormal
    DoCmd.SetWarnings False
    DoCmd.RunCommand acCmdSelectAllRecords
    DoCmd.RunCommand acCmdPaste
    DoCmd.Close acForm, "formulaire1"
    DoCmd.SetWarnings True
    End Sub
    Qui fonctionne très bien (les instructions "setwarnings" c'est parce que je ne copie pas tout mon premier formulaire et que les noms de champs changent entre les deux, ça évite les messages d'erreur sur le sujet).

    Cependant, l'ouverture du formulaire2 est conditionné par un mot de passe. Donc forcément, quand on n'a pas le mot de passe et que l'on ferme le formulaire de mot de passe qui s'ouvre à l'ouverture du formulaire2, j'ai un message d'erreurdu type "l"action OpenForm a été annulée", ce qui fait planter ma base de donnée.

    Donc j'ai essayé de faire coller les données à l'ouverture du formulaire2 plutôt qu'à la fermeture du formulaire1, mais ça me met que "la commande ou l'action "coller" n'est pas disponible pour le moment". Le code utilisé pour ce faire est le suivant:

    sur le formulaire1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Commande67_Click()
    DoCmd.RunCommand acCmdSelectAllRecords
    DoCmd.RunCommand acCmdCopy
    DoCmd.OpenForm "formulaire1, acNormal, "", "", acAdd, acNormal
    End Sub
    sur le formulaire 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Form_Open(Cancel As Integer)
    DoCmd.SetWarnings False
    DoCmd.RunCommand acCmdPaste
    DoCmd.SetWarnings True
    End Sub
    (j'ai viré entre les deux le formulaire de mot de passe pour simplifier dans un premier temps mon truc).

    En bref, il semble qu'il faille utiliser "acCmdcopy" et "acCmdpaste" dans le même formualire sinon Access ne trouve pas les données "copiées". Comment faire pour stocker plusieurs enregistrements copiés pour les utiliser dans un autre formulaire ?

    Je vous remercie!

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour,

    On a toujours tendance à contourner les erreurs. Mais ici, il faudrait je pense que tu insères une gestion d'erreurs dans ton action pour ouverture ton formulaire2 à partir du formulaire de mot de passe :
    Cependant, l'ouverture du formulaire2 est conditionné par un mot de passe. Donc forcément, quand on n'a pas le mot de passe et que l'on ferme le formulaire de mot de passe qui s'ouvre à l'ouverture du formulaire2, j'ai un message d'erreurdu type "l"action OpenForm a été annulée", ce qui fait planter ma base de donnée.
    Utiliser les instructions ON ERREUR GOTO et/ou ON ERROR RESUME NEXT dans le module d'ouverture du formulaire2.

    Sinon, vu que tu sélectionnes TOUS les enregistrements, pourquoi ne pas faire passer tes données dans une requête SQL et en faire la source de ton formulaire2. Je pense que même dans ce cas, tu devras gérer l'erreur lors de l'annulation de l'ouverture du formulaire2.

    Cordialement,

Discussions similaires

  1. [PHP 5.0] Upload d'image et stockage en base de données
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 20/05/2009, 21h58
  2. Réutiliser des données d'une requête dans une requête
    Par mims1664 dans le forum Requêtes
    Réponses: 12
    Dernier message: 06/02/2009, 14h12
  3. Réponses: 4
    Dernier message: 15/10/2006, 19h51
  4. [MySQL] stockage image base de données
    Par digger dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/11/2005, 08h49
  5. Réutilisation de données à l'intérieur d'un même document
    Par sebi77 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 24/08/2005, 11h05

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