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 :

Erreur macro ouverture sur formulaire avec incrementation auto


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Points : 18
    Points
    18
    Par défaut Erreur macro ouverture sur formulaire avec incrementation auto
    Bonjour à tous,

    J'ai un soucis lors de l'ouverture d'un formulaire en VBA.

    J'utilise dans une première macro un simple DoCmd.OpenForm mais j'ai inséré dans mon formulaire une macro qui se déclenche à l'ouverture afin d'alimenter certains champs. Le problème c'est que le formulaire n'est pas positionné sur un nouvel enregistrement (malgré l'appel en "acFormAdd") car rien n'a encore été saisie. Je ne peux donc pas utiliser l'ID en cours pour mettre à jour certains champs à l'ouverture ...

    J'ai fouillé mais je n'arrive pas à trouver de solution. Merci pour votre aide bienvenue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub open_facture()
     
    DoCmd.OpenForm "frm_facture", , , , acFormAdd
     
    End Sub
    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
    24
    Private Sub Form_Open()
     
    Dim oRst As dao.Recordset
    Dim oDb As dao.Database
    Dim crit_sql As String
    Dim num_fact_tmp As Long
    Dim num_fact As String
     
    crit_sql = "SELECT sys_fact_id, sys_fact_val FROM tbl_sys_facture WHERE sys_fact_id='sys_num_fact'"
     
    Set oDb = currentdb
    Set oRst = oDb.OpenRecordset(crit_sql, dbOpenDynaset)
     
    num_fact_tmp = oRst.Fields("sys_fact_val").Value
     
    num_fact = "FA" & Left("0000000", 7 - Len(num_fact_tmp)) & num_fact_tmp
     
    crit_sql = "UPDATE tbl_bdd_facture SET fact_num='" & num_fact & "' WHERE fact_id=" & Me.fact_id.Value
     
    oDb.Execute (crit_sql)
     
    Me.fact_num.Requery
     
    End Sub
    C'est "Me.Fact_id.Value" qui ne suit pas ... Ici à "Null" car pas d'enregistrement en cours ...

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    tu pourrais essayer de separer la gestion de tes compteurs (et valeurs par defaut) de l'affichage par des macro de donnees au moment de la creation

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Ok j'ai bien l'impression que je n'ai pas le choix :-(

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/05/2010, 15h35
  2. Réponses: 19
    Dernier message: 26/01/2006, 08h44
  3. Test sur formulaire avec liste des erreurs
    Par Nicos77 dans le forum Langage
    Réponses: 37
    Dernier message: 17/11/2005, 10h22
  4. erreur ASM inline sur 'INT' avec delphi7
    Par the_magik_mushroom dans le forum Langage
    Réponses: 1
    Dernier message: 03/11/2005, 01h41
  5. Réponses: 4
    Dernier message: 23/06/2005, 15h07

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