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

Requêtes et SQL. Discussion :

MAJ Dans une table


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut MAJ Dans une table
    Bonjour,
    J'ai 2 tables :
    Loueurs qui a pour donnée NomLoueur
    Mouvement qui a une donnée Loueur

    Probleme le créateur de l'application n'a pas fait d'integrité référentiel. Ce qui fait que dans ma table Loueur je me retrouve avec les données du type Nom&Prenom alors que dans l'autre table je me retrouve avec Nom&INITIALE.

    C'est assez génant pour effectuer des recherches donc je voudrais savoir si je ne pourrais pas changé automatiquement les données de ma table Mouvement pour y retrouver Nom&Prenom.

    J'ai pensé à faire une requete Update mais je ne sais pas comment m'y prendre.

    Merci.

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Ne me dis pas que la jointure entre les deux tables se fait sur le nom et le prénom ?

    Tu n'as pas d'identifiant unique pour un loueur ?

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    L'id c'est le nom & prénom. Non y'a pas de numéro loueur ... Je crois que j'vais reprendre à zéro l'application.

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    L'id c'est le nom & prénom. Non y'a pas de numéro loueur ...
    Oufff, je cours me cacher loin, très loin pour que l'on ne m'entende pas crier (Ben oui, j'ai plus beaucoup de cheveux déjà !)

    Je crois que j'vais reprendre à zéro l'application
    Ou du moins apporter des modifications sur la structure de vos tables dans un premier temps !

    Un identifiant est de nature unique, la concaténation du nom et du prénom revient à avoir un clé composé de 2 colonnes. Et des Jean Dupond j'en connais un paquet .


  5. #5
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Je sais bien tout ca, en fait je suis stagiaire dans une boite et je dois débugger une application crée sous ACCESS...

  6. #6
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    Je voudrais faire une requete Update.
    J'ai deux tables encore les memes ... Avec dans ma table Loueur la donnée:NomLoueur par exemple Jean Dupont et dans l'autre Mouvement la donnée:Loueur par exemple Jean D.
    Je voudrais faire une requete qui mettrai a jour ma deuxieme table afin de modifier Jean D par Jean Dupont.

    J'ai essayé ca mais marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Mouvement, Loueurs SET Mouvement.Loueur = NomLoueur
    WHERE (((Loueurs.NomLoueur) Like [Loueur] & "%"));

  7. #7
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir OCB37,

    Tu aurais du ouvrir une nouvelle discussion à ce sujet !

    Mais néanmoins ont reste sur la première ! Comment peux-tu être sur que le Jean D. est le même ????

    Jean Dupont
    Jean Dupras
    Jean Du69
    Jean DuRien

    Ou est le caractère unique ici ?

    Définis tes tables et essais de suivre les FM le plus possible !


  8. #8
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Le gros probleme c'est que moi je viens d'arriver sur cette application, j'ai redéfinit mon MRD et maintenant il n'y aura plus ce genre de probleme. Mais le gros probleme actuel c'est de pouvoir recuperer les données de mon application pour pouvoir les mettre dans mes nouvelles tables en respectant les contraintes.

    J'ai aucune sureté que Jean D = Jean Dupont, je retrouve aussi pas mal de probleme du genre Jean Christophe dans une table et Jean-Christophe dans l'autre.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour les gens,
    OCB je pense que dans un premier temps tu devrais te faire un listing de non correspondance et un listing des correspondances possibles.
    Ca te permettra de voir si les loueurs de la table Mouvement ont tous un et un seul correspondant NomLoueur dans la table Loueurs. Et donc de corriger

    Exemple de requête SQL de non correspondance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Loueur 
    FROM Mouvements 
    WHERE Loueur Not In (SELECT Left(NomLoueur,len(Loueur)) FROM Loueurs)
    GROUP BY Loueur;
    Exemple de requête de correspondances
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Loueur, NomLoueur
    FROM Mouvements,Loueurs
    WHERE Loueur=Left(NomLoueur,Len(Loueur))
    GROUP BY Loueur, NomLoueur;

  10. #10
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Merci Ilan, ton post m'a aidé a y voir plus clair...

    C'est pire que ce que je pensais, car meme dans les non correspondances il y'a des correspondances ... entre elles.
    Du genre Dupont.J et ensuite Dupont J et encore Dupont Jean...

    La solution ne serait ce pas de faire une procédure qui par rapport a ces requetes modifie soit les noms des Loueurs dans la table mouvements et/ou insert dans ma table Loueur ceux qui sont trouvés dans la requete de non correspondance ???

  11. #11
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Si le résultat des requêtes le permet. Oui.
    Mais je pense que la moulinette VBA devra enregistrer les données dans de nouvelles tables correctement structurées. Et dans cet objectif, il te faut disposer d'une table de références contenant la liste des loueurs. Donc, si tu n'as pas ailleurs que dans la table Loueurs la liste des loueurs; voir si il est nécessaire de la nettoyer.

  12. #12
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Points : 90
    Points
    90
    Par défaut
    Bonjour les gens,
    Ilan la requête de correspondance m'a beaucoup aidé.
    Maintenant je souhaiterai m'en servir dans un formulaire. Un formulaire qui permet de créer un nouveau loueur.
    Je souhaiterai vérifier lors du clique sur le bouton valider si un loueur existant ne correspond pas a celui entré par l'utilisateur.

    Voici le code que j'ai mis en place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set res1 = CurrentDb.CreateQueryDef("SELECT Loueurs.NomLoueur FROM  Loueurs WHERE '" & lblNewNomLoueur.Value & "' =Left(Loueurs.NomLoueur,Len('" & lblNewNomLoueur.Value & "'));")
    If res1.ReturnsRecords = True Then
        nom = res1("NomLoueur")
        MsgBox ("Un loueur ayant le nom '" & nom & "' existe, êtes vous sur de vouloir créer ce loueur quand même ?")
    End If
    Le programe bloque sur la premiere ligne (voir image jointe).

    Merci de votre aide.
    Images attachées Images attachées  

Discussions similaires

  1. Déterminer la Valeur la plus grande dans une table
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 9
    Dernier message: 22/08/2014, 23h35
  2. MAJ dans une table conditionnée par la valeur d'un de ses champs
    Par NicolasTT dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 24/03/2011, 15h31
  3. MAJ d'une table en output dans un job
    Par yoaugoulo dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 19/11/2009, 15h24
  4. recherche date de maj de données dans une table
    Par Switch03 dans le forum SQL
    Réponses: 5
    Dernier message: 05/03/2008, 13h15
  5. MAJ d'une table sous SQL Server par insertion
    Par keish dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/06/2003, 16h23

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