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

Access Discussion :

Annuler enregistrement hors de BeforeInsert


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut Annuler enregistrement hors de BeforeInsert
    Bonjour!

    j'ai (encore) une question...

    Voilà : je voudrais annuler une insertion d'enregistrement si une certaine condition est vérifiée.

    Vous allez me dire que la solution est toute trouvée avec l'évènement BeforeInsert !
    Malheureusement, je ne peux pas utiliser cette procédure car si elle fonctionne au début, ça finit par ruiner tous mes efforts : en fait dès que je mets du code dans un BeforeInsert, mon formulaire refuse de s'ouvrir (j'avais déja fait un post sur ce pb particulier) , access ne le reconnait plus.
    Heureusement que je fais régulièrement des copies de sauvegarde...


    Quelqu'un aurait une solution pour moi? merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Points : 268
    Points
    268
    Par défaut
    en fait, si je comprend bien, tu veux annuler un nouvel enregistrement en cour c est ca?
    si c est ca, essayes de mettre
    Me.undo

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    J'ai essayé de le mettre dans l'évènement AfterInsert mais ça marche pô...

    Etant donné que je veux absolument éviter le BeforeInsert, je ne vois pas où le mettre à part dans AfterInsert?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Points : 268
    Points
    268
    Par défaut
    que fais ton formulaire exactement, expliques car je comprends pas tres bien (meme en lisant l autre post)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    Ok tamerlan voilà toute l'histoire :

    C'est un formulaire fClient qui affiche des données sur des clients (mode simple)

    fClient contient un sous-formulaire fInterlocuteur qui affiche des données sur les interlocuteurs-clients (pour un client donné, une liste d'interlocuteurs)

    Pour être brève, disons que si dans fClient, on est placé sur un nouvel enregistrement(donc n° de client inexistant), on ne doit pa pouvoir ajouter un nouvel interlocuteur . C'est là que je veux annuler l'ajout d'enregistrement(sinon il enregistre un interlocuteur dans la table mais avec un n°client=null) , tu comprends?

    En algo :

    Si (N°client=NULL) alors

    'mess d'erreur+annuler l'enregistrement

    FinSi

    (Pour ce cas précis, c'est clair k'il y a d'autre solutions...Mais le fait est que la situation est plus compliquée que ça...)

    Le principe reste le même : il faut que j'annule cet ajout d'interlocuteur dans l'évènement AfterInsert (de préférence)

    Pour résumer :

    -On se trouve sur un nouvel enregistrement (le client n'existe pas encore)
    -On veut ajouter un interlocuteur
    -On remplit trankilement les données sur l'interlocuteur
    -L'interlocuteur est enregistré avec le champs N°Client à null
    -Message d'erreur : "T fou ou koi? on ajoute pas un interlocuteur avant de créer le client!!!Votre ajout est annulé!"
    -Annulation effective de l'ajout

    Jme comprends...mais si tu n'as tjs pas compris, n'abandonne pas, demande-moi!

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Points : 268
    Points
    268
    Par défaut
    et pourquoi tu ne rend pas les sous formulaires inaccessible jusqu'à ce que l'utilisateur est cliquer sur enregistrer le client? ce qui rend les sous formulaires accessibles.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Points : 268
    Points
    268
    Par défaut
    je mexprime mal. en fait, je pense qu il faudrait faire
    - rendre les sous formulaires inaccessibles dans un premier temps
    -si lutilisateur commence a taper les donnees du client, un numéro va etre créé. donc la tu peux rendre accessible les sous formulaires.

    etant donne que le numéro du client existera, plus de pb!!!!! non? essaye un truc comme ca....

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut Mes excuses tamerlan
    Merci et désolé pour le retard de la réponse.

    En fait on accède à mon fichier par mot de passe : les préparateurs ouvrent le fichier client filtré et 'les privilégiés' ont accès à tous les clients

    Chaque client est associé à un préparateur.

    Mais certains clients n'ont pas encore de préparateur associé. C'est le rôle des privilégiés de leur en associer.

    Ce que je voulais éviter, c'est qu'un privilégié ajoute un interlocuteur à un client sans préparateur -> dans ce cas : message d'erreur et annulation (la fameuse annulation...)


    J'ai voulu expliker le pb de façon simple et au final , tes réponses correspondait au pb mais pas vraiment à ce que je recherchais.
    C'est ma faute, merci quand meme pour ton aide!

    Finalement au lieu d'annuler l'enregistrement, j'enregistre bien puis je supprime .
    Un peu lourd...Je me contente de ça pour l'instant mais si qq à une ot' solution...

  9. #9
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    bonjour,
    Donc comme le dis si bien Tamerlan tu n'affiches pas le sous-formulaire s'il n'y a pas de préparateur à ton client.

    Tu mets le test sur From_Current

    A+

Discussions similaires

  1. [AC-2007] Annulation enregistrement table via formulaire
    Par maximilien59 dans le forum IHM
    Réponses: 24
    Dernier message: 28/11/2012, 08h55
  2. [AC-2007] Annulation enregistrement - commande non disponible
    Par lio33 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/07/2012, 03h47
  3. [AC-2007] Annulation enregistrement fermeture formulaire
    Par maximilien59 dans le forum IHM
    Réponses: 18
    Dernier message: 20/04/2012, 11h42
  4. [AC-2003] Annuler enregistrements ajoutés par fonction
    Par nawakbling dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/04/2010, 11h00
  5. Code Gear Delphi 2007 Enregistrement hors ligne
    Par Bernard B dans le forum EDI
    Réponses: 2
    Dernier message: 21/03/2008, 14h28

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