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 :

Enregistrement de donnée via sous formulaire


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut Enregistrement de donnée via sous formulaire
    Bonjour à tous,

    Voici mon problème j'utilise un formulaire de recherche ( valeur à saisir + bouton recherche) qui ouvre un sous-formulaire avec les données que je peux modifier.
    Dans ce sous-formulaire j'ai un bouton valider qui me permet d'enregistrer les modifications.

    jusque la rien d'anormal me direz vous mais le problème provient du fait que si j'utilise le bouton de recherche du formulaire principal, cela me met à jour les données ce que je ne veux pas... j'ai essayé diverses méthodes pour empêcher cela mais cela ne fonctionne pas.

    J'ai l'impression qu'il me manque un peu de code adns la procédure du clic du bouton rechercher pour éviter cela....un petit coup de pouce ne serait pas de refus

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    tu peux nous montrer le code de ton form de recherche et celui de ton bouton qui permet d'enregistrer stp ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut
    Je pense m'être un peu compliqué la vie mais bref

    Donc ma recherche se déclenche sur l'évènement "clic" voici ce que cela fait:
    • Suppression de ma requête
    • Recherche de l'enregistrement
    • Création de la requête
    • Ouverture du sous formulaire si l'enregistrement existe


    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
    16
    17
    18
    19
    20
    21
    22
    23
    'variable intermédiaire
    sql2 = "Select * FROM arrivee1 where  arrivee1.[Work Order Number]=  '" & rep & "'"
     
    'création de la requête
    Set sql = CurrentDb.CreateQueryDef("PV receptionne", sql2)
     
    'comptage des lignes si WO alors affichage sinon msg erreur
    Set rst = CurrentDb.OpenRecordset("PV receptionne", dbOpenDynaset)
     
    If rst.EOF Then
    'rendre le formulaire invisible
    PV_receptionne.Visible = False
    MsgBox "Ce WO n'existe pas"
    Else
    'afficher un sous formulaire
        PV_receptionne.Form.RecordSource = sql2
        PV_receptionne.Form.Requery
        PV_receptionne.Visible = True
     
     
    End If
    rst.Close
    Set rst = Nothing
    Dans le sous-formulaire j'ai donc mes champs à renseigner et le bouton valider.

    Le problème vient du fait que si je clic sur le bouton recherche et non valider ca me prends quand même mes modifications en compte....ce que je ne veux pas.

  4. #4
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Ton code n'est semble-t-il pas tout à fait complet...

    Un moyen simple serait peut-être d'inactivé le bouton Recherche si un enregistrement est trouvé et de le réactiver dans le code du bouton Valider.

    Domi2

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    Pour te simplifier la vie:
    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
    'variable intermédiaire
    sql2 = "arrivee1.[Work Order Number]=  '" & rep & "'"
     
    If dcount("*","arrivee1",sql2) = 0 Then
    'je ne suis pas sûre de mon "=0", sinon tu peux essayer avec "=null"
    'rendre le formulaire invisible
    PV_receptionne.Visible = False
    MsgBox "Ce WO n'existe pas"
    Else
    'afficher un sous formulaire
        sql2 = "Select * FROM arrivee1 where  " & sql2
        PV_receptionne.Form.RecordSource = sql2
        PV_receptionne.Form.Requery
        PV_receptionne.Visible = True
    End If
    pour empêcher ma mise à jour du form, et le faire uniquement lorsque tu cliques sur ton bouton valider, regarde les posts dans le forum, j'en ai déjà vu qui parlaient de ça.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut
    Ok merci pour ce bout de code il me met un message d'erreur de syntaxe rien n'est jamais facile ha ha

    Bref je continue de regarder pour le reste (après un bon repas )
    Si quelqu'un veux aider pour un lien ou une piste, je laisse le post ouvert.

  7. #7
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    jette un oeil au code de ce post, nicolas2603 cite son code qui permet d'empêcher la sauvegarde, et qui se fait uniquement sur demande:

    http://www.developpez.net/forums/sho...ht=cancel+true

    à réadapter à ton code bien entendu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/06/2015, 13h58
  2. [AC-2000] enregistrement données dans sous formulaire
    Par otaquet dans le forum IHM
    Réponses: 7
    Dernier message: 29/10/2009, 18h43
  3. [AC-2007] problème enregistrement de données via formulaire
    Par Pier-A dans le forum Modélisation
    Réponses: 1
    Dernier message: 06/05/2009, 13h27
  4. [Formulaire] Alerte avant suppression d'une donnée via un formulaire
    Par leloup84 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/01/2006, 10h50
  5. Réponses: 7
    Dernier message: 20/03/2005, 14h53

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