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

Modélisation Discussion :

Archiver / réactiver un enregistrement


Sujet :

Modélisation

  1. #41
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Ok..je crois que nous avons tous compris ce que tu voulais faire......
    D'ailleurs Lou Pitchoun te donnais déjà la voie à suivre dès le début....
    1 form de saisie où j'ai pas le champ staut ni de case à cocher
    La pas de problème, c'est juste un formulaire qui permet une nouvelle saisie, avec les champs "Archive" et "Statut" mis sur Invisible.
    Ton champ "Statut" doit avoir sa valeur par défaut sur "En Cours", ainsi même s'il n'est pas visible, ce champ sera renseigné lors de la création d'un nouvel enregistrement.....
    1 form consult où je veux avoir par défaut....toutes mes fiches ...sur le statut "en cours" et la case à cocher "ARCHIVER" invisible. Quand je changerai de statut, j'aurai les zones de texte et la case à cocher qui apparaîtront.
    Une fois la case cochée, cela voudra dire que l'archive (donc disparaitre du form de consult)
    Sur la propriété "Après MAJ" de ta zone de liste (Statut)....:
    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
    Private Sub Statut_AfterUpdate()
    'Si la valeur de la ZdL est différente de "En cours"
    If Me.Statut.Value <> "En cours" Then
     
    'Alors j'affiche ma case à cocher + ma zone de texte
        Me.Actif.Visible = True
        Me.txtObservation.Visible = True
        '..et je coche ma case à cocher automatiquement
            Me.Actif.Value = True
    Else
    'Sinon, je décoche et repasse à Invisible mes contrôles
        Me.Actif.Visible = False
        Me.txtObservation.Visible = False
        Me.Actif.Value = False
    End If
    End Sub
    ..Voila le principe général de la chose.........que te dire de plus......à part d'essayer par toi même....
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  2. #42
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par FreeAccess Voir le message
    Ok..je crois que nous avons tous compris ce que tu voulais faire......
    D'ailleurs Lou Pitchoun te donnais déjà la voie à suivre dès le début....
    Je te rappelle que c'est ce que je me tue à te dire depuis le départ ! Je ne fais que suivre ce qu'on m'a dit de faire !

    Citation Envoyé par FreeAccess Voir le message
    La pas de problème, c'est juste un formulaire qui permet une nouvelle saisie, avec les champs "Archive" et "Statut" mis sur Invisible.
    Ton champ "Statut" doit avoir sa valeur par défaut sur "En Cours", ainsi même s'il n'est pas visible, ce champ sera renseigné lors de la création d'un nouvel enregistrement.....
    Suis-je obligée de mettre le champ dans mon form de saisie ? Il n'a aucune utilité en saisie ! Actuellement, il n'y est pas !

    Citation Envoyé par FreeAccess Voir le message
    Sur la propriété "Après MAJ" de ta zone de liste (Statut)....:
    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
    Private Sub Statut_AfterUpdate()
    'Si la valeur de la ZdL est différente de "En cours"
    If Me.Statut.Value <> "En cours" Then
     
    'Alors j'affiche ma case à cocher + ma zone de texte
        Me.Actif.Visible = True
        Me.txtObservation.Visible = True
        '..et je coche ma case à cocher automatiquement
            Me.Actif.Value = True
    Else
    'Sinon, je décoche et repasse à Invisible mes contrôles
        Me.Actif.Visible = False
        Me.txtObservation.Visible = False
        Me.Actif.Value = False
    End If
    End Sub
    ..Voila le principe général de la chose.........que te dire de plus......à part d'essayer par toi même....

    ça ce n'est pas un problème, je l'ai fait ! Je sais faire apparaître mes zones de texte ! l'événement il y est déjà sur mon contrôle !

    Le truc que je voulais c'était à l'ouverture du form consult, avoir le statut de toutes mes fiches par défaut "en cours" c'est tout !

    Et je voulais qu'une fois coché "ARCHIVER", cela fasse comme quand je clique sur "SUPPRIMER", que ça disparaisse (bien sûr pas que ce soit supprimé)
    C'est là où j'ai un doute, je me dit que ce n'est peut-être pas possible.

  3. #43
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour....

    Suis-je obligée de mettre le champ dans mon form de saisie ? Il n'a aucune utilité en saisie ! Actuellement, il n'y est pas !
    Non, tu n'es pas obligé de l'avoir directement sur ton Formulaire, du moment ou sa valeur par défaut est mise sur "En cours".
    Dans mon exemple, je mettais ces différents champs sur "Invisible", de façon à pouvoir utiliser le même formulaire ausi bien en Saisie qu'en modification.....
    Et je voulais qu'une fois coché "ARCHIVER", cela fasse comme quand je clique sur "SUPPRIMER", que ça disparaisse (bien sûr pas que ce soit supprimé)
    C'est là où j'ai un doute, je me dit que ce n'est peut-être pas possible.
    .tu as déjà eu la réponse à cette question......voir mon post en haut de page...

    ... il suffit de faire un "rafraichissement" de tes données....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'On modifie la source de données dans le cas ou
    'on à "désactiver" un enregistrement
    Dim strSource As String
    strSource = "SELECT * FROM T_Nom" _
    & " WHERE Actif= False AND Statut= '" & "En cours" & "'"
     
    Me.RecordSource = strSource
     
    End Sub
    En clair, à chaque fois que tu cliquera sur ton bouton "Supprimer".....il faut remettre à jour la source du formulaire, de façon à ne filtrer (faire afficher) que les enregistrements non cochés et ayant le statut "En cours"....
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  4. #44
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Ok donc, pourquoi je n'arrive pas à mettre mon champ sur "en cours" par défaut ?
    J'ai tout essayé avec Lou Pitchoun ?

  5. #45
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Ok..petite explication hyper détaillée.....

    (Tu teste sur une copie de ta table.....ou tu en crée une nouvelle...)

    ** Champ Statut = afficher par défaut la valeur "En cours" et permettre sa modification par choix dans une liste déroulante **

    Champ Statut doit être de type "Texte"

    -Onglet "Général"
    Valeur par défaut = "En cours"....(avec les guillemets.)

    -Onglet "Liste de choix"
    Afficher le contrôle = Zone de liste déroulante
    Origine source = Liste valeurs
    Contenu = "Satisfaite";"Abandonné";"En cours"
    Colonne liée = 1
    Nbr colonne = 1

    Voila, c'est tout....maintenant tu ouvre simplement ta table en mode visualisation, et tu peux constater...que pour chaque nouvel enregistrement, le champ Statut affiche bien la valeur "En cours".(valeur par défaut)

    Tu peux également tester ceci en créant un formulaire ayant comme source cette table.....

    Alors......heureuse......
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  6. #46
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Il semblerait que ce soit une histoire "d'occupation" de la table par le formulaire...


  7. #47
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par FreeAccess Voir le message

    Alors......heureuse......
    Oui heureuse ! lol !

    en fait, c'est ce que j'ai fait au départ, sur conseil de Lou ! C'est juste que je pensais que cela s'appliquerait au enregistrements existants ! Alors que non ! Vu que je ne voyais pas le changement sur les existants bah, je pensais que j'avais encore un bean dans ma base

    Pour les nouveaux oui ça marche ! Mais pour les anciens, va t-il falloir que je les change tous manuellement ?

  8. #48
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Au temps pour moi.

    Oui. Malheureusement (s'il y en a moins de 20 ça va vite).
    A moins d'écrire une fonction de mise à jour en ouvrant un recordset, ça ira peut être plus vite.

  9. #49
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par Lou Pitchoun Voir le message
    Il semblerait que ce soit une histoire "d'occupation" de la table par le formulaire...

    Possible !

  10. #50
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Bon, j'ai manuellement modifié les enregistrements existants (il y en avait 43...).
    Le problème par défaut est réglé.

    Reste à tester le code de Free pour avoir mes enregistrements cochés archiver ne soient pas supprimés mais juste rafraichis de suite ...

  11. #51
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    J'ai suivi tes instructions Free avec mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim strSource As String
    strSource = "SELECT * FROM DETAIL" _
    & " WHERE ARCHIVER = False  "
     
    Me.RecordSource = strSource
    Donc ça me rafraichit comme je le souhaite sauf que (je ne sais pas comment l'expliquer), une fois le statut entré et les commentaires faits, la case "Archiver" cochée, l'enregistrement disparait, mais je reviens au tout premier enregistrement (et pas à celui d'avant) et les zones de texte qui ont été commentées pour archiver, restent avec les commentaires eux-mêmes

  12. #52
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    ...les zones de texte qui ont été commentées pour archiver, restent avec les commentaires eux-mêmes
    Vérifie bien que cette zone de texte soit bien "dépendante"

    Source contrôle = le nom du champ correspondant dans ta table

    ....et bien sur pour que ce champ n'apparaise plus après le "rafraichisement" de ton formulaire, repasse sa propriété sur Invisible

    ...je reviens au tout premier enregistrement (et pas à celui d'avant)
    Jusqu'à là, c'est normal puisque tu change le source de ton formulaire, donc par défaut il t'affiche les nouveaux enregistrement à partir du premier.

    Maintenant, as-tu vraiment besoin de "faire disparaitre" les enregistrements archivés dès que tu les à coché..
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  13. #53
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Bonjour Free et Lou.

    Bon ça a l'air de fonctionner ! Hé hé ! Merci à vous pour votre aide et votre patience.
    Par contre ........ Une fois la fiche archivée, la consultation se fait dans le désordre, exemple : j'archive la fiche 12, une fois cliqué OK, je retombe sur le première fiche puis quand je clique sur le bouton de déplacement "dernier enregistrement", je tombe sur une fiche au hasard mais pas la dernière...

    Une idée ?

    En espérant que je ne sois pas pénalisée car je ne sais pas trop si je dois poster à nouveau ou continuer ce post...

  14. #54
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Dans la requete il faut ajouter la clause de tri (order by) pour que ce soit trié...
    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

  15. #55
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Oui je vois de quoi tu parles, rassure-toi mais voici la requête :
    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
    Private Sub archiv_Click()
    If MsgBox("Voulez-vous vraiment archiver cette fiche ?", vbQuestion + vbYesNo, "INFORMATION") = vbNo Then
    Me.Undo
    Me.collstatut.Visible = False
    Me.datestatut.Visible = False
    Me.commentstatut.Visible = False
    
    Me.AllowEdits = False
    Else
    Dim strSource As String
    strSource = "SELECT * FROM DETAIL" _
    & " WHERE Statut= '" & "En cours" & "'"
    
    Me.RecordSource = strSource
    MsgBox "Fiche archivée"
    End If
    End Sub
    et j'ai voulu insérer ORDER BY numdetail après ce qui est en gras mais...

  16. #56
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Exactement !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strSource = "SELECT * FROM DETAIL" _
    & " WHERE Statut= '" & "En cours" & "'  c'est ici"
    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

  17. #57
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    euh.......j'avais un peu mis le code hors des guillemets...

    Donc c'est OK ça me permet une consult dans l'ordre mais retombe à la première fiche une fois l'enregistrement archivé, alors que ce serait bien que ça retombe sur l'enregistrement juste avant...

  18. #58
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    C'est normal tu fait l'équivalent d'un requery en réaffectant la source.

    Il faut repérer le précédent avant de t'y replacer.
    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

  19. #59
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    peux-tu developper ?

  20. #60
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Il te faut utiliser le recordset du formulaire pour retrouver le précédent. DAO obligatoire.

    Pour détailler : Lorsque tu réaffecte une source au formulaire, c'est comme si tu le réouvrais, tu te retrouve au début de la plage d'enregistrement. Donc il te faut sauvegarder la position à retrouver avant la réaffectation/ouverture.

    Le code suivant est très simplifié, à toi de mettre la gestion d'erreur et de l'adapter pour tes besoin.

    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
     
    Dim rst As DAO.Recordset
    Dim CurrentId As Long   ' l'id qui va être archivé
    Dim PreviousId As Long  ' l'id précédent
     
    CurrentId = Me.id          
     
    Set rst = Me.Recordset
    rst.MovePrevious
    PreviousId = rst.Fields("id")
    ' ta requete actuelle
    Me.RecordSource = "Select * From Table where id<>" & CurrentId & ";"
     
    Set rst = Me.Recordset
    rst.FindFirst "Id=" & PreviousId
    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. Supression enregistrement sans affecter les archives logs
    Par dmeignen dans le forum Administration
    Réponses: 2
    Dernier message: 27/07/2010, 16h57
  2. supprimer un enregistrement.. mais en garder une archive..
    Par Jedi49 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 13/11/2009, 11h24
  3. [AC-2003] Transfert enregistrement vers table archive
    Par rberniga dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/08/2009, 14h41
  4. archiver un enregistrement automatiquement
    Par MCarole dans le forum Access
    Réponses: 3
    Dernier message: 17/07/2006, 13h30
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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