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 :

Problème en création d'un nouvel enregistrement [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2012
    Messages : 80
    Par défaut Problème en création d'un nouvel enregistrement
    Bonsoir,

    Je bloque sur une erreur 3075 donc un problème de syntaxe... mais une fois la syntaxe juste cela ne fonctionne toujours pas...
    Je m'explique, j'ai un formulaire "organisme" avec un bouton d'ajout d'un nouvel enregistrement "accord" attaché à ce formulaire...

    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
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub btn_AjoutAccord_Click()
    'déclaration variables
    Dim num_ej_cna As Long  'pour entier long
    Dim département As String 'pour le code département
    Dim Ajout 'test la réponse aux questions
     
    'initialisation
    num_ej_cna = Forms![frm_Ej_Org_New].[ej-no_cna].Value
    département = Forms![frm_Ej_Org_New].[ej-code_départ].Value
     
        'ouverture du formulaire accords
        DoCmd.OpenForm "frm_Accords_New"
     
        'retrait des protections de modification
        Set formulaire = Forms![frm_Accords_New]
        formulaire.AllowEdits = False
        formulaire.AllowAdditions = True
        formulaire.AllowDeletions = False
        Set formulaire = Nothing
     
        DoCmd.GoToRecord , , acNewRec
     
        'remplissage automatique du numéro EJ et ET en fonction d'EJ du formulaire principal
        Forms![frm_Accords_New]![ej-no_cna] = num_ej_cna
        'remplissage automatique du numéro département en fonction d'EJ du formulaire principal
        Forms![frm_Accords_New]![ac_codedépartement] = département
     
        'passage de la programmation sur frm_Accords_New
        'pour test de remplissage des champs et ajout dans frm_Accords_New
        'et mise à jour dans frm_Accords_New sous-formulaire_Ent_jur de frm_EJ_Org_New
     
    End Sub
    en soit cette partie là : ne bloque pas...
    par contre, j'ai une partie de code dans le formulaire "Accords" form_current qui bloque et je ne vois pas pourquoi,

    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
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub Form_Current()
    '---------------------------------------------------------
    ' passage d'une fiche à l'autre
    '---------------------------------------------------------
    
    Dim num_ac As Variant 'entier long
    Dim nb_accord As Long
    
    'test existence de la correspondance entre accord et financement de l'accord
    num_ac = Me.[ac_num].Value
    
    ' c'est là que cela bloque !!! 
    nb_accord = DCount("ac_num", "tbl_finances_accord", "ac_num = " & num_ac)
    
    If nb_accord = 0 Then
        'si décompte du nb_accord est 0 alors mise à blanc des zones finances
        'Me.F_fin_date = ""
        
        Me.btn_Ajout_FAccord.Visible = True
        Me.btn_Modif_FAccord.Visible = False
        
        'sauf la correspondance entre le n° d'accord et le financement
        Me.[Id_accord] = num_ac
    Else
        'sinon, si existe affiche des informations Finances
        Me.Id_accord = DLookup("ac_num", "tbl_finances_accord", "ac_num=" & num_ac)
       
        Me.btn_Ajout_FAccord.Visible = False
        Me.btn_Modif_FAccord.Visible = True
    End If
    
    End Sub
    Merci pour vos éclairages... car j'ai la même erreur sur d'autres formulaires !
    et là je ne vois plus...

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Vérifie que num_ac n'est pas null.

    De plus si tu sais que c'est un entier long, il vaudrait mieux typer mum_ac comme suit :

    et de faire un test avant d'assigner la valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if not isnull(me.ac_num) then
         num_ac=me.ac_num
      else
         'faire quelque chose quand la valeur est nulle
    end if
    Il est recommandé d'éviter les variants dans la mesure du possible.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2012
    Messages : 80
    Par défaut
    Merci !

    J'avais mis la variable en variant pour voir
    s'il ne fallait pas utiliser Nz() ....

    Mais la solution, à laquelle j'aurais du penser, au vu du commentaire
    que j'avais juste au-dessus, fonctionne !

    Un grand merci, je vais pouvoir avancer...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/01/2011, 18h29
  2. Arrêter la création d'un nouvel enregistrement
    Par ndukuliki dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/02/2010, 10h43
  3. problème de création d'un nouvel utilisateur
    Par sebac dans le forum Windows Vista
    Réponses: 1
    Dernier message: 23/01/2010, 22h38
  4. Création d'un nouvel enregistrement
    Par matdrap dans le forum VBA Access
    Réponses: 18
    Dernier message: 16/06/2008, 16h43

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