Requête prenant en compte 6 des 8 chiffres d'un formulaire

Résolu
maxime 25 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
gloutonbargeot Messages postés 349 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je travail sur une base de données qui comprend le nom de tous les salariés de mon entreprise et tous les pointages qu'ils effectuent aux postes.

Dans l'entreprise les matricules du personnel sont composé de 8 chiffres.
Le souci est que dans le logiciel de gestion de la production, nous ne pouvons excèder les 6 chiffres.

Le logiciel de production va donc prendre les 6 chiffres de droite.

Exemple :

- Matricule entreprise = 12345678
- Le même matricule dans le logiciel de production = 345678

Ils me faut donc une solution pour que ma première requête ne lisent que les 6 chiffres de droite de mes matricules entreprise afin d'associer les personnes aux pointages.

Avant, je procèdais sur excel avant d'importer mes pointages je copiais tous les matricules employées et je fesais un " =RECHERCHEV(L2;Matricule!A$2:B$281;2;FAUX) ".

J'aimerais trouver une méthode plus simple car maintenant une maccro me permet de supprimer toutes les lignes de pointage inutiles et d'importer mon fichier texte dans ma base.

Dans l'attente de vos réponse.

Je vous remercie d'avance et reste à votre disposition pour toutes questions.


A voir également:

4 réponses

gloutonbargeot Messages postés 349 Date d'inscription   Statut Membre Dernière intervention   124
 
Bonjour,

Tu peux découper le matricule directement dans le SQL avec la fonction SUBSTRING. il y a des différences de fonctionnement entre les types de bases de données (MySQL, SQL Server, Oracle).

Regarde ce lien: http://www.1keydata.com/fr/sql/sql-substring.php

Concrètement tu peux dire : je veux découper mon matricule du caractère 3 au caratère 8 en faisant :

SELECT SUBSTR (matricuel, 3, 8) FROM employes;

et tu récupèreras les 6 chiffres de droite :)

J'espère que c'est ce que tu cherches à faire! Tiens moi au courant
1
Heikro Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   8
 
Salut,

si tu es bien sur Access, utilise la fonction RIGHT() :
SELECT RIGHT(Personnels.Mat_Pe, 6), Personnels.Nom_Pe, Personnels.Prenom_Pe, [Nom_Pe] & " " & [Prenom_Pe] AS NomPrenom, Personnels.Naissance_Pe, Personnels.Section_Pe, Personnels.Contrat_Pe, Personnels.Entree_Pe, Personnels.Sortie_Pe, Personnels.CentreCharge_Pe
FROM Personnels
ORDER BY [Nom_Pe] & " " & [Prenom_Pe];
1
maxime 25 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
SELECT SUBSTR(Personnels.Mat_Pe, 3, 8), Personnels.Nom_Pe, Personnels.Prenom_Pe, [Nom_Pe] & " " & [Prenom_Pe] AS NomPrenom, Personnels.Naissance_Pe, Personnels.Section_Pe, Personnels.Contrat_Pe, Personnels.Entree_Pe, Personnels.Sortie_Pe, Personnels.CentreCharge_Pe
FROM Personnels
ORDER BY [Nom_Pe] & " " & [Prenom_Pe];

Quand je met ca dans mon SQL il m'affiche :

Fonction "SUBSTR" non définie dans l'expression.

Ai-je-omis quelques choses ?

PS : Je ne maitrîse pas du tout SQL.

Merci d'avance
0
maxime 25 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Nickel ! Ca fonctionne super bien c'est exactement ce que je voulais :)

Merci beaucoup Heikro, merci gloutonbargeot !
0
gloutonbargeot Messages postés 349 Date d'inscription   Statut Membre Dernière intervention   124
 
Bonjour,

Je n'avais pas compris que tu travaillais sur Access :) La réponse de Heikro est donc plus adaptée :)
0