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

IHM Discussion :

Atteindre un contrôle de l'enregistrement précédent


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Conducteur Trains
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conducteur Trains
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 28
    Points
    28
    Par défaut Atteindre un contrôle de l'enregistrement précédent
    Bonjour,

    Je poursuis la création de mon petit logiciel de comptabilité et je sollicite de nouveau votre aide.
    J'ai réussi à effectuer le calcul du nouveau solde à partir d'un formulaire F_Saisie_Operation pour la première ligne de la table T_Comptabilite. Cf mon précédant post.

    J'arrive maintenant sur un point qui me semble bien compliqué pour mon niveau. Il faudrait, pour la saisie des opérations suivantes, que j'atteigne le SoldeNouveau de l'enregistrement précédant (qui deviendrait le SoldeAncien de ce nouvel enregistrement).

    J'ai cherché sur le Net et j'ai trouvé ceci.

    La première solution via RechDom semble relativement simple à mettre en œuvre, mais une condition n'est pas remplie, il manque des enregistrements (des ID).
    La seconde solution via la programmation semble hors de portée compte tenu de mon niveau.

    Est il possible de modifier les ID de mes enregistrements afin de rendre les ID consécutifs, et y aurait il des conséquences sur les tables liées avec T_Comptabilite ?
    Sinon, existe t'il une autre solution que celles proposées ?

    Merci.
    @+

  2. #2
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Salut,

    Tu as mis un champ NumAuto c'est pour ça qu'il manque des enregistrements ?

    Une solution pourrais être de créer une requête, avec les champs id et solde, qui va te sélectionner les enregistrements < à ton Id puis les classer par ordre décroissant et mettre dans ta requête un Top 1 ensuite tu n'as plus qu'à récupérer cette valeur dans ton formulaire.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Conducteur Trains
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conducteur Trains
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Merci pour ton aide.

    Il manque des enregistrements car je tâtonne pour mettre en œuvre mon projet et j'en ai supprimés quelques uns, souvent en faisant des essais pour voir si mes actions fonctionnaient...
    Oui, j'ai une clé Num Auto.

    Ton idée semble intéressante. Peux tu me dire ce qu'est un Top 1 ?

    @+

  4. #4
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Salut,

    Tu peux faire une sauvegarde de ta table, changer la méthode d'incrémentation de ton champ ID et réimporter les données en ayant préalablement combler les trous dans la suite logique du champ ID.

    Pour ce qui est du TOP dans une requête, au lieu de récupérer l'ensemble des données de ta requête ça va te récupérer que les X première lignes.

    Un exemple :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TOP 1 CX, CY, CZ FROM TaTable WHERE X=D;

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Conducteur Trains
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conducteur Trains
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Je te tiens au courant du développement de tes propositions. Il me faudra certainement un certain temps... Ou plutôt un temps certain
    Merci.
    @+

  6. #6
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Bon courage

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Conducteur Trains
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conducteur Trains
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Hou la la, j'ai la tête comme une courge !

    J'ai créé une requête,R_Dernier_SoldeNouveau, qui cherche les derniers enregistrements de SoldeNouveau, classé par ordre décroissant et sélectionné le premier enregistrement :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TOP 1 T_Comptabilite.SoldeNouveau
    FROM T_Comptabilite
    WHERE (((T_Comptabilite.SoldeNouveau) Is Not Null))
    ORDER BY T_Comptabilite.ID_Comptabilite DESC , T_Comptabilite.JourOperation DESC;

    Seule la première ligne de ma table contient un SoldeAncien et un SoldeNouveau. Pour les lignes suivantes, les 2 champs sont vides. D'où la condition WHERE.

    Cette requête fonctionne.

    J'ai ensuite ajouté un champ DernierSoldeNouveau à T_Comptabilite.

    Sur le formulaire F_Saisie_Operation, j'ai créé un champ indépendant, DernierSoldeNouveau, ayant comme source R_Dernier_SoldeNouveau. Expression créée avec le générateur. Source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[R_Dernier_SoldeNouveau]![SoldeNouveau]
    Lorsque j'ouvre F_Saisie_Operation, j’obtiens une erreur #nom? sur le contrôle créé.

    J'ai cherché la signification de cette erreur et j'ai trouvé une personne qui a eu le même souci ici.
    Si j'ai bien compris, l'erreur viendrait du fait que le contrôle n'est pas repris dans la source du formulaire, mais je n'arrive pas à le rajouter.
    Source:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT T_Comptabilite.JourOperation, T_Comptabilite.Mouvement, T_Comptabilite.CaisseBanque, T_Comptabilite.Piece, T_Comptabilite.LibelleCompteResultat, T_Comptabilite.NumeroCompteResultat, T_Comptabilite.Commentaire, T_Comptabilite.Montant, T_Comptabilite.RefContact, T_Comptabilite.NumCheqRem, T_Comptabilite.ID_Comptabilite, T_Comptabilite.DateValidation, T_Comptabilite.RefAnnee, T_Comptabilite.TypePaiement, T_Comptabilite.SoldeAncien, T_Comptabilite.SoldeNouveau, T_Comptabilite.Indice, T_Comptabilite.DernierSoldeNouveau FROM T_Comptabilite;

    Quelqu'un peut il m'éclairer ?

    Merci.

  8. #8
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Salut,

    Tu as cette erreur car ta requête [R_Dernier_SoldeNouveau] n'est pas dans la source de donnée de ton formulaire.

    Soit tu le rajoute dans le select de ta source de donnée du formulaire soit tu fais un =RechDom("[[SoldeNouveau]]";"[R_Dernier_SoldeNouveau]") dans ton champ.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Conducteur Trains
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conducteur Trains
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Je suis passé à Access 2013

    Je pensais avoir avancé sérieusement sur mon pb et je suis tombé sur un autre...

    J'obtiens une erreur "Impossible mettre à jour recordset" sur le formulaire F_Saisie_Operation.

    Pour essayer de comprendre ce pb, j'ai inséré un contrôle indépendant CurrentRecordset avec dans la source :
    Lorsque je suis en mode création, j'ai la mention d'une erreur circulaire. En mode formulaire le champ semble fonctionné sauf qu'il indique 7225 lors de l'affichage du dernier, alors que la table T_Comptabilite n'en comporte que 85...

    Les 2 erreurs sont elles liées?

    @+

  10. #10
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Je ne sais pas si c'est lié, par contre tu peux regarder si la propriété Type de Recorset de ton formulaire, de ta source donnée ou ta requêté, est sur Feuille rép.dyn.(MAJ globale)

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Conducteur Trains
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Conducteur Trains
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    Non, et une fois fait, je peux à nouveau modifier le formulaire. Cette option existait elle dans access 2007 ?
    Je vais essayer, maintenant, de comprendre le nombre d'enregistrements.
    Merci.

Discussions similaires

  1. Valeur par défault = Enregistrement précédent
    Par Aost dans le forum Access
    Réponses: 8
    Dernier message: 04/07/2006, 22h07
  2. Réponses: 4
    Dernier message: 23/06/2006, 13h29
  3. Affichage suivant enregistrement précédent
    Par cdumas dans le forum Access
    Réponses: 8
    Dernier message: 30/04/2006, 13h11
  4. impossible d'atteindre le contrôle !
    Par gyzmo84 dans le forum Access
    Réponses: 5
    Dernier message: 11/04/2006, 14h22
  5. Récuperer l'enregistrement précédent.
    Par zebiloute dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/04/2004, 13h01

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