locked
Numero Auto RRS feed

  • Question

  • Bom dia

    Tenho um formulário ligado a uma tabela com númlero automático.

    Quando abro o formulário vou directamente para um novo registo. Com dois botões aceito ou anulo(Me.Undo) os registos.

    O meu problema é que ao anular o registo, o número automático não é anulado, e a nova abertura do formulário tenho um novo número, ficando com uma linha vazia na tabela.

    Há alguma maneira de não ser atribuído numero automático quando não se validam os dados do formulário?

    Muito obrigado pela ajuda

    A. Costa

    lundi 4 octobre 2010 08:29

Toutes les réponses

  • Hi,

    May be in English ?! (or in French)
     


    En espérant avoir pu rendre service (MehdiH)
    Retrouvez moi sur Office Users
    lundi 4 octobre 2010 08:45
  • Bonjour,

    J’ai un formulaire liée à une table avec AutoNumber.

    Dans les proprietes du form j’ai

    Allow Edits = Yes

    Allow Deletions = Yes

    Allow Additions = Yes

    Data Entry = Yes

    Donc, à chaque ouverture du form je me positionne dans un nouveau enregistrement.

    J’ai deux boutons (Ok et Annuler) pour valider ou non les enregistrements.

    Si je clique dans le bouton « Annuler », ou j’ai mis les commands « Me.Undo, DoCmd.Close acForm »j’annule les enregistrements, mais à la nouvelle ouverture du form j’ai un nouveau numéro automatique et une ligne vide dans ma table.

    Comment faire pour ne pas avoir ce nouveau numéro,

    Un grand merci d’avance

    A. Costa

    lundi 4 octobre 2010 11:43
  • Bonjour,

    Essayez ceci :

    Pour qu'Access n'enregistre pas les modifications faites dans un formulaire, il faut utiliser l'événement BeforeUpdate et y placer la ligne suivante :
    Cancel = True
    

    Source : access.developper.com

     


    En espérant avoir pu rendre service (MehdiH)
    Retrouvez moi sur Office Users
    lundi 4 octobre 2010 14:01
  • Bonjour et Merci pour votre réponse.

    Mais, si dans le form, je mets Cancel = True dans l'événement BeforeUpdate, aucun enregistrement ne se fait pas, meme si je valide avec le bouton Ok

    Dams ma table "Table1" j'ai les champs:

    NrAuto - AutoNumber (clé primaire); Nr - Numero; Nom - Text

    Dans le form "Form1" j'ai les boutons Ok et Annuler et j'ai ça dans vba

    Option Compare Database

    Private Sub Ok_Click()
        DoCmd.Close , , acSaveYes
    End Sub

    Private Sub Annuler_Click()
    Me.Nom = Null
    Me.Nr = Null
       DoCmd.Close , , acSaveNo
    End Sub

    Private Sub Form_BeforeUpdate(Cancel As Integer)
        Cancel = True
    End Sub

    Il manque quelque chose?

    Merci d'avance

    A. Costa

     

    lundi 4 octobre 2010 14:43