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

Access Discussion :

Mise à jour dans un formulaire avec condition


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Mise à jour dans un formulaire avec condition
    Bonjour à tous,

    Voici mon problème, j'ai un formulaire principal (FDossiers)et un
    sous-formulaire (FClients). Dans mon formulaire principal (FDossiers) j'ai un
    champs "Fermeture" qui est un chamsp de type Oui/Non et qui par défaut est à
    Non, lorsque je le mets à Oui je voudrais que dans mon sous-formulaire
    (FClients) mon champs "Actif" (qui est de type Oui/Non aussi) se met à
    "Non", mon problème est que dans mon sous-formulaire (FClients) lorsque j'ai
    plusieurs "Clients" il fait la mise à jour seulement sur mon premier client !


    Voici la méthode que j'ai utilisé :

    Private Sub Fermeture_AfterUpdate()
    Dim Rep As Integer

    Rep = MsgBox("ATTENTION! Désirez-vous vraiment mettre l'entreprise en
    FERMETURE ? Si oui, vous modifierez les données de tous les contacts de
    l'entreprise !", vbQuestion + vbYesNo)
    If Rep <> 6 Then SendKeys "{Esc}": Exit Sub
    End If

    If ([Fermeture]) = -1 Then
    Me!FDossiersClient![Actif] = 0
    End If
    End sub

    Merci à l'avance pour la réponse !

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Tu dois utiliser un update query avec les critères de ton formulaire principal et mettre à jour le champ oui/non de tous les enregistrements qui correspondent aux critères.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Heureux-oli
    Tu dois utiliser un update query avec les critères de ton formulaire principal et mettre à jour le champ oui/non de tous les enregistrements qui correspondent aux critères.

    Le problème est que je ne veux pas que se soit tous mes dossiers, mais seulement les clients du dossier du formulaire principal.

    Merci !

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    C'est le cas, seuls les enregistrements concernés seront mis à jour.

    Si tu utilises le critère de ton formulaire principal sur le query, tu ne sortira que les enregistrement qui sont sur ton sous-formulaire.

    Si tu ne mets pas de critères, alors tu les modifie tous.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Heureux-oli
    C'est le cas, seuls les enregistrements concernés seront mis à jour.

    Si tu utilises le critère de ton formulaire principal sur le query, tu ne sortira que les enregistrement qui sont sur ton sous-formulaire.

    Si tu ne mets pas de critères, alors tu les modifie tous.

    J'ai de la difficulté, est-ce que si j'utilise :
    MonSQL=UPDATE Dossiers LEFT JOIN DossiersClient ON Dossiers.[N° dossier] = DossiersClient.[N° dossier] SET DossiersClient.[Actif] = No
    WHERE (((Dossiers.[N° dossier])=ici je met quoi?));

    Je suis désolée mais je crois que j'ai de la difficulté à comprendre ta solution, je débute en VBA

    Car la solution je l'ai essayé et comme tu m'as mentionné si je ne met pas de critère tous mes champs "Actif" se modifie c'est le critère pour sélectionner l'enregistrement en cours que j'ai de la difficutlé. Est-ce que tu peux me dire si c'est OK :

    Private Sub Fermeture_AfterUpdate()
    Dim REP As Integer
    Dim MonSQL As String
    Dim MaBase As Database
    'Dim MonDossier As Recordset

    If ([Fermeture]) = -1 Then
    REP = MsgBox("ATTENTION! Désirez-vous vraiment mettre l'entreprise en FERMETURE ? Si oui, vous modifierez les données de tous les contacts de l'entreprise !", vbQuestion + vbYesNo)
    If REP <> 6 Then SendKeys "{Esc}": Exit Sub
    End If


    If ([Fermeture]) = -1 Then

    MonSQL = "UPDATE Dossiers LEFT JOIN DossiersClient ON Dossiers.[N° dossier] = DossiersClient.[N° dossier] SET DossiersClient.[Actif] = No" _
    & "WHERE (((Dossiers.[N° dossier])=ici je met quoi?));

    Set MaBase = CurrentDb
    MaBase.Execute MonSQL
    MaBase.Close
    End If

    End Sub

    Merci encore, je suis en apprentissage et c'est pas toujours facile !

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/05/2015, 13h10
  2. Réponses: 0
    Dernier message: 24/06/2009, 15h05
  3. Champ calculé dans formulaire avec conditions
    Par applefield dans le forum IHM
    Réponses: 4
    Dernier message: 30/08/2007, 16h59
  4. [Conception] Mise à jour dans un formulaire
    Par Maxi-môme dans le forum IHM
    Réponses: 1
    Dernier message: 20/07/2007, 19h32
  5. Mise a jour dans un formulaire
    Par assane dans le forum Access
    Réponses: 2
    Dernier message: 05/07/2006, 08h57

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