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 :

[A-07] Comment éviter ajout enregistrement ?


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de AlainL
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 178
    Par défaut [A-07] Comment éviter ajout enregistrement ?
    Bonjour à tous

    Question sur la manière dont Access gère les enregistrements:

    J'ai un formulaire qui contient un sous-formulaire.

    Dans le formulaire principal, au chargement, je renseigne automatiquement certains champs (défauts pour ces champs, évitant d'avoir à chaque fois à introduire la donnée concernée).

    Si je ne fais rien d'autre (je ne passe pas à l'un des champs soit du formulaire, soit du sous-formulaire, et que je passe simplement à l'enregistrement principal suivant via les flèches en bas du formulaire, Access me crée quand même l'enregistrement principal correspondant.

    Je présume que c'est à cause du fait que les champs par défaut sont renseignés, et qu'il considère donc qu'une action a bien été effectuée (comme si j'avais atteint l'un de ces champs manuellement, et y avait introduit la donnée concernée). Ces champs sont liés à ceux de la table (source = champ).

    Si tel est le cas, comment éviter qu'il me crée cet enregistrement ?

    Question subsidiaire:
    Si, dans les contrôles en bas du formulaire (flèches précédent, suivant, premier, dernier, nouvel enregistrement) y a-t-il in moyen d'utiliser ces contrôles en VBA ?

    Par ex., si je clique sur "Nouvel enregistrement", de lui faire exécuter en ce cas une certaine procédure ? Ou cela est-il couvert par "Avant Insertion" ?

    Merci de votre aide.

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Par défaut
    Salut AlainL,

    En ce qui concerne le nouvel enregistrement, tu peux regler le probleme en modifiant la propriete de ton formulaire « Allow Additions » a NO (en francais ca doit etre « Autorisation d’ajouter » ou qqc de ce genre). Ainsi le formulaire ne va pas plus loin que le dernier record i.e. il n’affiche plus de nouveau record.
    Pour tes boutons de navigations, ils ne sont pas programmables. Mais tu peux ne plus les afficher en mettant le parametre de la propriete « Navigation Buttons » a NO. Puis tu crees tes propres buttons qui font ce que tu veux, pour naviguer dans les records aussi bien que pour ajouter un nouveau record.

    PS. : je n’ai les softs qu’en anglais.

  3. #3
    Membre confirmé Avatar de AlainL
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 178
    Par défaut
    Merci NguyenRD

    mais je ne souhaite pas inhiber la possibilité d'ajout d'enregistrements.

    Et, effectivement, je n'y avais pas pensé, la question de boutons spécifiques est peut-être à envisager. Mais si je peux l'éviter...

  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,

    Dans l'événement Avant insertion du formulaire, peux-tu mettre ce petit bout de code et dire ce que ça donne ? Pas testé, c'est juste pour me faire une idée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Not Me.Dirty Then
     
        MsgBox "Nouvel enregistrement a annuler"
     
        DoCmd.CancelEvent
     
    End if
    Domi2

  5. #5
    Membre confirmé Avatar de AlainL
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 178
    Par défaut
    Bonjour Domi2... toujours fidèle au poste

    C'est justement sur cet événement Avant Insertion que je crée un numéro que j'insère (également avec Sur Chargement).

    Ton code, placé après la création de ce numéro ne me donne aucun changement. Il estime toujours que je viens de cliquer sur un champ pour le modifier.

    Si je n'insère aucun numéro, tout est OK.

    La solution serait probablement de ne le créer que lors de l'ajout réel d'un détail... à moins que tu n'aies une meilleure idée ?

    L'idée de base était que ce numéro de référence soit visible dès l'accès à ce formulaire. Mais on pourrait aussi le faire plus tard.

  6. #6
    Membre confirmé Avatar de AlainL
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 178
    Par défaut
    Oui, finalement... je vais créer ce numéro de référence après.

    Merci de votre aimable aide à tous.

  7. #7
    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
    Re,

    C'est justement sur cet événement Avant Insertion que je crée un numéro que j'insère (également avec Sur Chargement).
    Je me disais aussi...

    La solution serait probablement de ne le créer que lors de l'ajout réel d'un détail...
    A essayer...

    à moins que tu n'aies une meilleure idée ?
    Pas vraiment...

    Tu "détournes" un peu le comportement normal d'Access et sans la base, c'est plutôt difficile (enfin, je dis ça pour moi...)...

    Ceci dit, NguyenRD a parfaitement raison...

    Si ton histoire se complique, tu aurais meilleur temps d'envisager une mainmise totale sur le comportement de ton appli.

    Blocage et déblocage contrôlé des ajouts et des modifs, boutons de navigation personnalisés, etc...

    Domi2

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/03/2012, 17h31
  2. Réponses: 3
    Dernier message: 20/09/2011, 18h53
  3. Réponses: 3
    Dernier message: 13/09/2008, 10h09
  4. Comment créer un bouton ajouter enregistrement ?
    Par deuval dans le forum VBA Access
    Réponses: 5
    Dernier message: 31/05/2007, 18h33
  5. [VB6] [ADO] Pb ajout enregistrement table liée
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/10/2002, 11h49

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