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 :

Probleme regroupement et ajout info [AC-2007]


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Août 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Août 2014
    Messages : 139
    Points : 63
    Points
    63
    Par défaut Probleme regroupement et ajout info
    Bonjour à tous
    Dans le cadre du développement de ma base, je bloque sur un problème mais j'ai une alternative mais qui me parait lourde
    Je suis donc persuadé qu'il y a une solution plus simple

    J'ai 2 tables
    Une pour mes données générales, l'autre contenant un champ que je souhaite utiliser pour mettre a jour ma table "générale"

    Dans ma requête, je cherche a afficher la dernière date de visite chez mon client afin d'y ajouter une annotation dans un champ prévu et provenant de ma 2eme table
    J'ai donc effectué un regroupement avec affichage de la dernière date de visite (D'ailleurs je n'ai jamais trop compris si je devais utiliser "dernier" ou "max")
    J'ai ensuite un formulaire avec un menu déroulant des noms de ma clientèle.
    Je souhaite créer un 2eme menu déroulant provenant de l'autre table pour y afficher mes valeurs a rajouter mais la valeur ne peut être sectionnelle

    Mais là je bloque

    J'ai bien compris que le problème était sur le regroupement qui ne permet pas ensuite d'y ajouter une donnée sur la dernière ligne de visite de mon client

    Je precise que par principe je ne connais pas la date à laquelle cette personne a ete vue. Je ne donc pas construire ma requête sur "quelle date"
    Je sais que j'ai un client qui s'appelle Dupont Marcel vu a différentes reprise et sur lequel je souhaite ajouter aujourd’hui un mot clef.

    Ma solution trouvée en alternative est une requête ajout qui va chercher la dernière ligne de mon client pour y ajouter un mot clef mais n'y a t il pas plus simple?

    merci à vous

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    A ta question sur Max ou Dernier, si tu as un critère il faut TOUJOURS utiliser Max (ex Max([TaDate]).

    Dernier te donne le dernier enregistrement dans l'ordre physique dans la table. Généralement c'est le dernier enregistrement entré mais ce n'est pas toujours vrai car il n'y a pas de contrainte sur l'emplacement physique d'un enregistrement.
    Access pourrait décider de placer le dernier enregistrement saisi au tout début de la table si cela l'arrange.

    Même chose avec Min() et First(), toujours utiliser Min().

    Pour ta sélection et si tu as peu de données tu pourrais utiliser Dmax(). Un truc du genre :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select [taTable].* from [taTable] 
    where [TaTable].[TonChampDate]=DMax("TonChampDate", "TaTable", "[TonCodeClient]=" & [TaTable].[TonCodeClient])

    Qui va sélectionner tous les derniers (selon la date) enregistrements de chacun de tes clients.

    Note que DMax() peut être un peu lent.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Août 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Août 2014
    Messages : 139
    Points : 63
    Points
    63
    Par défaut
    Bonjour
    Merci pour ton aide
    Je rencontre cependant différents soucis
    1er, en SQL, après avoir adapté le texte à mon usage, il me demande l’accès à un programme extérieur
    Si j'ai bien compris après avoir regardé sur le net, c'est une forme de sous traitance? En mode SQL Access fait appel à un programme extérieur pour faire exécuter une requête et lui restituer le résultat.
    Donc j'ai surement un truc-module-programme à rajouter mais quoi?

    2 J'ai donc essayé d'utiliser DMAX ou MAXDOM directement dans ma requête.
    MaxDom("[T - Revision].[Date visite]";"[T - Revision].[Nom]=" & [T - Revision].[Nom])

    Lors de l'execution j'ai un message en boucle reprenant "toute" ma clientele en la citant 1 par 1 avec le message suivant:
    Le moteur de la base de donnees access ne peut pas trouver la table ou la requete source "[T - Revision].[Nom]=DUPONT Marcel" Assurez vous qu'elle existe et correctement ortographiée
    et ainsi de suite pour chaque client ou je dois cliquer sur OK pour passer au suivant
    Seule solution CTRL ALT SUP

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    1er, en SQL, après avoir adapté le texte à mon usage, il me demande l’accès à un programme extérieur
    Si j'ai bien compris après avoir regardé sur le net, c'est une forme de sous traitance? En mode SQL Access fait appel à un programme extérieur pour faire exécuter une requête et lui restituer le résultat.
    Donc j'ai surement un truc-module-programme à rajouter mais quoi?
    Non probablement que tu as créé une requête de type SQL Direct (qui sert à mettre du SQL d'une autre base de données directement dans Access).
    Il faut changer l'affichage de la requête (avec l'icône équerre et crayon en haut à gauche) pas son type.

    2 J'ai donc essayé d'utiliser DMAX ou MAXDOM directement dans ma requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaxDom("[T - Revision].[Date visite]";"[T - Revision].[Nom]=" & [T - Revision].[Nom])
    Lors de l'exécution j'ai un message en boucle reprenant "toute" ma clientèle en la citant 1 par 1 avec le message suivant:
    Le moteur de la base de donnees access ne peut pas trouver la table ou la requête source "[T - Revision].[Nom]=DUPONT Marcel" Assurez vous qu'elle existe et correctement orthographiée
    et ainsi de suite pour chaque client ou je dois cliquer sur OK pour passer au suivant
    Seule solution CTRL ALT SUP
    C'est une erreur classique quand on commence avec les fonctions de domaine et je l'ai faite moi-même. il ne faut pas mettre le nom de la source dans le champ ou les critères.

    Cela devrait ressembler à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaxDom("[Date visite]";"[T - Revision]";"[Nom]=""" & [T - Revision].[Nom] & """")
    Les fonctions de domaine (DMax, DMin, DFirst, DLast, DCount ...) ne travaillent qu'avec une et une seule source qui peut être une requête ou une table.

    Autre attrape : les délimiteurs
    • Si ton champ est numérique ou booléen : il n'y a pas de délimiteur
    • Si ton champ est texte ou mémo : utiliser le guillemet (") ou l'apostrophe (') pour délimiter la chaîne.
      Personnellement je préfère le guillemet car l'apostrophe apparaît souvent ne français et peut donc terminer ta chaîne plus tôt que prévu.
      Ici j'ai doublé le guillemet car pour avoir un guillemet dans une chaîne sans qu'il soit vu comme un délimiteur il faut le répéter.
    • Si ton champ est une date : utiliser le dièse (#)


    Je te suggère aussi les modifications suivantes :
    • Pour les noms d'objets internes (ex : tables, champs, requête, rapport, formulaire) se limiter aux lettres majuscules et minuscules non accentuées et non "décorées" (pas ce Ç), aux chiffres et au souligné (_). Pas d'espace et surtout pas de tiret (-) que Access a la fâcheuse tendance à confondre avec la soustraction. Cela évites quelques bugs vicieux et sournois.
    • Ne pas utiliser le nom (si c'est celui d'une personne) comme identifiant de client car plusieurs personnes peuvent avoir le même nom.
      Personnellement je connais une douzaine de Martin ROY dans mon environnement proche.


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Août 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Août 2014
    Messages : 139
    Points : 63
    Points
    63
    Par défaut
    Partagé entre l'admiration et la déception...

    Ca fonctionne, c'est génial
    Comment faites vous tous pour connaitre toutes ces choses "si simples" une fois ecrites

    Et moi je cherchais des alternatives à mon problème pour le contourner

    Bravo et merci pour la solution et tous ces conseils

    J'ai voulu faire propre et lisible pensant bien faire mais je corrigerais des que possible.

    Suite au prochain épisode 'blocage)

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Comment faites vous tous pour connaitre toutes ces choses "si simples" une fois ecrites
    Avec le temps et Google (en anglais) qui est d'une grande aide.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Août 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Août 2014
    Messages : 139
    Points : 63
    Points
    63
    Par défaut
    Je passe mon temps sur Google (en Français)
    Mais je n'arrive pas toujours à adapter ce que je trouve.

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

Discussions similaires

  1. Réponses: 35
    Dernier message: 10/11/2008, 20h14
  2. Probleme avec requête Ajout dans VBA
    Par deglingo37 dans le forum Access
    Réponses: 1
    Dernier message: 26/05/2006, 11h49
  3. [Delestage]Probleme nouveau forum/ ajouter dans le bon topic
    Par K-Kaï dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 19/04/2006, 15h31
  4. Probleme avec saisie d'infos et affichage avec ONCHANGE
    Par angelevil dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/03/2006, 21h35
  5. [Requete] Probleme regroupement dates
    Par looser92 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 01/12/2005, 12h13

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