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 :

Suppression record dans sous-formulaire [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    644
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 644
    Par défaut Suppression record dans sous-formulaire
    Bonjour,

    Dans un sous-formulaire, je fais appel à une fonction pour calculer le total de toutes les lignes
    Quand je supprime une ligne de mon sous-formulaire, la fonction, que j'appelle sur l'événement après suppression de mon sous-formulaire me renvoie une erreur
    Voici la fonction :
    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
    Public Function pFctTotal(Ref As String) As Single
        Dim dbmadb As DAO.Database
        Set dbmadb = CurrentDb
        Dim RecGraux As DAO.Recordset
        Dim StrSql As String
        StrSql = "SELECT TblGrauxDet.edref, Sum(TblGrauxDet.edprixnet) AS SommeDeedprixnet FROM TblGrauxDet GROUP BY TblGrauxDet.edref HAVING TblGrauxDet.edref=" & Chr(34) & Ref & Chr(34)
        Set RecGraux = dbmadb.OpenRecordset(StrSql)
        'MsgBox StrSql
         If RecGraux.EOF Then
            pFctTotal = 0
         Else
            pFctTotal = RecGraux!sommedeedprixnet
        End If
        RecGraux.Close
        Set RecGraux = Nothing
        Set dbmadb = Nothing
    End Function
    Merci pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Bonjour

    Ce n'est sans doute pas cela, mais essayez en ajoutant le type de recordset qui est ouvert (c'est facultatif, mais sait on jamais)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set RecGraux = dbmadb.OpenRecordset(StrSql, dbOpendynaset))
    Bonne journée

    Pierre

  3. #3
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Juin 2011
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2011
    Messages : 162
    Par défaut
    Bonjour,

    Je ne vois pas d'erreur si les champs edref et edprixnet sont bien respectivement en texte et numérique.

    Quel est le message d'erreur et comment appelez vous la fonction ?

    Bcdt

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    644
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 644
    Par défaut
    dbopendynaset ne corrige pas le problème

    edref est bien alpha
    edprixnet est bien numérique

    la fonction est appelée via un contrôle CtlTotal dans mon sous-formulaire

    source du contrôle = pfcttotal([edref])

    événement après suppression de mon sous-formulaire

  5. #5
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Juin 2011
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2011
    Messages : 162
    Par défaut
    Je ne vois tjrs rien ... quel est le message d'erreur ?

    Bcdt

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    644
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 644
    Par défaut
    Il n'y a pas de message d'erreur
    Mon contrôle CtlTotal indique #Erreur

  7. #7
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Juin 2011
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2011
    Messages : 162
    Par défaut
    Vous avez bien :

    source du contrôle CtlTotal ayant comme valeur ?

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

Discussions similaires

  1. Suppression dans sous formulaire
    Par pat17 dans le forum IHM
    Réponses: 8
    Dernier message: 10/02/2012, 09h50
  2. [AC-2007] jongler entre les records dans sous-formulaire
    Par fastpulse dans le forum IHM
    Réponses: 1
    Dernier message: 15/06/2010, 16h48
  3. [AC-2000] Suppression interdite dans sous formulaire
    Par Wchef dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/10/2009, 16h34
  4. Réponses: 7
    Dernier message: 16/09/2009, 16h27
  5. Suppression donnée dans sous-formulaire
    Par Marcopololo dans le forum IHM
    Réponses: 12
    Dernier message: 15/08/2008, 20h38

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