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 :

Insérer une valeur dans un sous formulaire par double clic


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Insérer une valeur dans un sous formulaire par double clic
    Bonjour,

    Voila je suis actuellement en stage de développement informatique. Ma mission consiste a créer un logiciel sous access 2000 qui ferait de la relance client. J'ai déjà pas mal avancer dans mon projet mais la je suis bloqué...

    Je vous explique : J'ai un formulaire relance client avec dedans tous mes sous formulaires répartis dans des onglets. Dans un onglet "facture", j'ai donc un sous-formulaire "facture" avec le code facture comme clé primaire et ses autres champs (date facture, montant...) et dans un autre onglet "gammes" j'ai un sous-formulaire "liste des actions" (de la gamme) avec également le code facture comme clé primaire et aussi d'autres champs (code action,date action...).
    A savoir bien sur que mes 2 tables (facture et liste action) sont bien liées entre elles dans mon modèle relationnel via le code facture (1 facture peut avoir plusieurs actions possibles).

    Ce que je veux faire : j'aimerai, grâce à un double clic sur le code facture que j'aurai taper moi même dans le sous-formulaire facture, insérer ce fameux code facture directement dans le sous-formulaire liste action. J'espère que je me suis fait comprendre

    Ainsi j'ai donc créer une procédure événementielle pour taper le code sous VBA. Et c'est là que les ennuis commencent...

    J'ai récupérer le code d'un collègue qui ne peut pas vraiment m'aider à dire comment il fonctionne ni comment l'adapter (vous savez, c'est un ami d'un ami d'un ami qui m'a refiler le code ).
    Je l'ai récupérer et "essayer" de l'adapter à mon formulaire, le voici :

    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 CODE_FACTURE_DblClick(Cancel As Integer)
     
    Dim nom_facture As Integer
    Dim NOMBRE As Integer
     
    nom_facture = Me.Form.Recordset.Fields("Code_Facture").Value
    [Form_Gestion Relance Client].CtlTab21.Value = 0
    [Form_Gestion Relance Client].Recordset.MoveLast
    NOMBRE = [Form_Gestion Relance Client].Recordset.RecordCount
     
    Dim Rs As DAO.Recordset
    Set Rs = [Form_Gestion Relance Client].RecordsetClone
     
    Rs.MoveFirst
    For i = 1 To NOMBRE
    If Rs.Fields("CODE_FACTURE").Value = nom_facture Then
    GoTo valid
    Else
    Rs.MoveNext
    End If
    Next
    valid:
    [Form_Gestion Relance Client].Recordset.Absolute = i + 1
    End sub
    Je vous avouerai que je ne comprend pas la moitié, VB n'étant pas vraiment ma tasse de thé
    Après quelques manip' et résolutions d'erreurs, le code ne fonctionne toujours pas.
    Mon problème est cette ligne qui ne veut pas s'exécuter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Form_Gestion Relance Client].Recordset.Absolute = i + 1
    (c'est la dernière ligne du code)

    Le message d'erreur est : propriété ou méthode non gérée par cette objet.
    Ma petite idée sur cette erreur serait que ce code n'envoie pas sur le bon onglet et donc le bon formulaire.
    Au cas où je vous met l'ordre des onglets : clients(avec 2 sous-formulaires) - factures(avec sous 1 formulaire) - gammes(avec 1 sous formulaire)

    Voilà j'espère avoir été assez clair dans mon explication !!!
    En vous remerciant d'avance pour vos réponses,

    Alex

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Points : 415
    Points
    415
    Par défaut
    ce n'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [Form_Gestion Relance Client].Recordset.Absolute
    MAIS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Form_Gestion Relance Client].Recordset.AbsolutePosition

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour Taoueret ! Merci pour ta réponse

    Donc j'ai mis "AbsolutePosition" et maintenant je n'ai plus le même problème

    Je t'explique :
    Dès que je double clic sur un numéro de facture (n'importe lequel) il me renvoie sur l'onglet client (le 1er onglet) au lieu de me renvoyer sur l'onglet gamme (le 3e onglet). Je réessaye donc une 2e fois la même manip' et là il me renvoie un message d'erreur '3021' : "Aucun enregistrement en cours". Le message d'erreur ne survient que quand je clic une 2e fois sur le même code facture.

    Dès lors, il me renvoie sur mon code et il me montre que l'erreur se trouve dans cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_facture = Me.Form.Recordset("CODE_FACTURE").Value (la 3e ligne)
    Maintenant je suis à peu près sur que c'est un problème de position des onglets.

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 007
    Points : 24 579
    Points
    24 579
    Par défaut
    Bonjour,

    Ce n'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_facture = Me.Form.Recordset.Fields("Code_Facture").Value
    Mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_facture = Me.Recordset.Fields("Code_Facture").Value
    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour loufab,

    J'ai comme tu m'as dit enlevé "form" et j'ai toujours la même erreur

    Est-ce qu'il se pourrait que ce soit un problème dans les paramétrages ???

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 007
    Points : 24 579
    Points
    24 579
    Par défaut
    Pour insérer un enregistrement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim rst as dao.recordset
    set rst = me.monsousform.form.recordset  'cas d'un sous form
    rst.addnew
    rst.fields("monnumero") = me.moncontrolecontenant  ' on copie la valeur
    rst.update
    C'est tout il n'y a pas de déplacement à faire.

    Regarde le tuto sur DAO et celui sur les appel formulaires.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Excuse moi loufab mais je ne comprend pas très bien ce que je dois remplacer dans le code. Je test tout et il me renvoie toujours une erreur.
    Pourrait tu m'indiquer plus précisément ce que je dois remplacer ???

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 007
    Points : 24 579
    Points
    24 579
    Par défaut
    La méthode que tu utilises ne me semble pas la bonne dans sa globalité. Je te conseille de réécrire tout dans les règles en essayant de bien comprendre comment ça fonctionne.

    D'abord lire le tuto sur les appels formulaires, puis le tuto DAO pour comprendre comment fonctionne l'écriture/lecture d'une table via un recordset.

    Les déplacements avec un absolute n'est pas adapté à ce que tu recherche.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Salut loufab,

    Pourrait tu me mettre les liens vers ces 2 tutos ? J'arrive pas à les trouver

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 007
    Points : 24 579
    Points
    24 579
    Par défaut
    Bonjour,

    Tous nos tutos sont ici

    http://access.developpez.com/cours/

    Bonne lecture.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. [AC-2007] Rechercher une valeur dans un sous-formulaire
    Par Crachover dans le forum IHM
    Réponses: 2
    Dernier message: 28/01/2010, 14h26
  2. [AC-2003] remonter une valeur dans un sous-formulaire
    Par MarLoZ dans le forum IHM
    Réponses: 1
    Dernier message: 09/04/2009, 03h51
  3. [A-07] Recuperer une valeur dans un sous-formulaire
    Par lucienkany dans le forum IHM
    Réponses: 6
    Dernier message: 03/11/2008, 09h45
  4. Réponses: 2
    Dernier message: 02/04/2007, 18h41
  5. Réponses: 3
    Dernier message: 01/02/2007, 12h08

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