Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/03/2011, 14h15   #1
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
Par défaut concatener plusieurs enregistrements

Bonjour tout le monde,
Je me pose la question de savoir s’il est possible de récupérer dans un champ texte plusieurs enregistrements provenant d’un même champ dans une table.
Plus clairement :
Aujourd’hui j’ai 3 employés en arrêt de travail, je les enregistre dans une table avec la date correspondante. Ca donne donc 3 lignes d’enregistrements.
Je veux récupérer ces 3 noms (après filtrage sur la date bien sûr), concaténés dans un champ texte du formulaire. Est-ce faisable ?
J’ajoute les noms à partir d’une liste déroulante et j’insère l’enregistrement dans la table en validant avec un bouton, donc dans l’idéal, à chaque nom ajouté, il faudrait que la concaténation soit mise à jour.
Je sais filtrer mais je ne vois pas comment rabouter les enregistrements ensemble…
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 15h53   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 742
Points : 10 742
Envoyer un message via MSN à jpcheck
Hello,

une solution est disponible dans la
http://access.developpez.com/sources...QLLigneColonne

bien penser a utiliser la avant de poster
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 18h38   #3
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
Merci pour la réponse JP

effectivement j'ai crié avant d'avoir mal....

j'ai trouvé cet article juste après avoir posté, et effectivement ça semble correspondre pile poil à ce dont j'ai besoin.

Vous pouvez supprimer mon post qui ne sert donc à rien ni à personne, toutes mes excuses...
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 13h45   #4
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
J’ai commencé à tester ce petit bout de code avant de l’adapter à mes besoins

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Public Function RecupParticipant(Projet As Long) As String
Dim res As DAO.Recordset
Dim SQL As String
'Selectionne les participant du projet     "Projet = " & Projet
SQL = "SELECT NomParticipant FROM Tbl_Projet where Projet = " & Projet
Set res = CurrentDb.OpenRecordset(SQL)
'Concatene les différents enregistrement
While Not res.EOF
RecupParticipant = RecupParticipant & res.Fields(0).Value & " "
res.MoveNext
Wend
'Enleve le dernier espace
RecupParticipant = Left(RecupParticipant, Len(RecupParticipant) - 1)
'libere la mémoire
Set res = Nothing
End Function
j’ai une erreur 3464 « type de données incompatibles dans l’expression du critère » sur la ligne
Code :
Set res = CurrentDb.OpenRecordset(SQL)
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 13h48   #5
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 742
Points : 10 742
Envoyer un message via MSN à jpcheck
hello,

ton champ projet est-il bien de type numerique ?
quelle valeur as-tu teste dans ton exemple ?
la reference pour DAO est-elle bien cochee ?
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 13h54   #6
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
bonjour JP

autant pour moi, mon champ etait en mode texte... mauvaise manip en fermant la table car je l'avais bien mis en numérique au départ. Je continue donc mes essais.
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 14h23   #7
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
1re question, dans cette string pourquoi n'y a t'il pas le ;" à la fin ?
Code :
SQL = "SELECT Malade FROM Malades where Projet = " & Projet
2eme question dans mon cas, vacation est un format date, quelle est la bonne synthaxe ? la précédente etant reservee aux champs numerique.
Code :
SQL = "SELECT Malade FROM Malades where "vacation = '" & vacation & "'"
Mais les cotes me donne une erreur de synthaxe
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 14h55   #8
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 742
Points : 10 742
Envoyer un message via MSN à jpcheck
1ere reponse, le ; n'est pas une necessite dans notre cas

2eme reponse, le format de date est #MM/DD/YYYY# sous Access
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 15h23   #9
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
bon voilà comment j'ai ecrit ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Function RegroupMalades(Projet As Long) As String
Dim res As DAO.Recordset
Dim sql As String
'Selectionne les participant du projet
sql = "SELECT Malade FROM Malades where format(vacation,""mm/dd/yyyy"") = #format(vacation,""mm/dd/yyyy"")#;"
Set res = CurrentDb.OpenRecordset(sql)
'Concatene les différents enregistrement
While Not res.EOF
RegroupMalades = RegroupMalades & res.Fields(0).Value & " "
res.MoveNext
Wend
'Enleve le dernier espace
RegroupMalades = Left(RegroupMalades, Len(RegroupMalades) - 1)
'libere la mémoire
Set res = Nothing
End Function
mais j'ai une erreur de synthaxe
Parallèlement, je ne comprends pas le principe de cette ligne, puisque on a pas de critère de comparaison ???
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 16h57   #10
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 742
Points : 10 742
Envoyer un message via MSN à jpcheck
attention, tu dois sortir ta fonction format et enlever les # dans ce cas

Code :
sql = "SELECT Malade FROM Malades where format(vacation,'mm/dd/yyyy') = format(vacation,'mm/dd/yyyy');"
par contre il doit manquer a un endroit une variable, car vacation = vacation et donc le filtre est inoperant
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 19h01   #11
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
ben oui mais alors pourquoi dans ce cas dans le code d'origine je devrais retrouver le même problème, hors ça fonctionne bien.
J'ai vérifié le code du module je n'ai plus l'erreur de synthaxe sur la date dans la ligne sql, mais quand je lance la requete j'ai
"trop peu de paramètres. 1 attendu"

Les 2 codes sont identiques si ce n'est que modifié quelques denominations et que j'ai changé :
Code :
Public Function RegroupParticipant(Projet As Long) As String
par
Code :
Public Function RegroupMalades(Vacation As Date) As String
je joins le fichier d'essai si tu veux jeter un oeil.
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 19h08   #12
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 742
Points : 10 742
Envoyer un message via MSN à jpcheck
ok,en fait tu pensais habiller pierre mais tu etais encore sur paul

Avec les bons parametres en entree (Vacation as Date)

on arrive a ceci :
Code :
sql = "SELECT Malade FROM Malades where format(vacation,'mm/dd/yyyy') = '" & Format(Vacation, "mm/dd/yyyy") & "';"
marche aussi avec
Code :
sql = "SELECT Malade FROM Malades where vacation = #" & Format(Vacation, "mm/dd/yyyy") & "#;"
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 19h16   #13
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
Code :
ok,en fait tu pensais habiller pierre mais tu etais encore sur paul
comment ça, comprends pas ?

ça "(Vacation as Date)" ok je l'avais déjà modifié

mais même avec tes 2 sql j'ai toujours la même erreur
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 19h22   #14
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 742
Points : 10 742
Envoyer un message via MSN à jpcheck
en fait je faisais reference a ce post ci
Citation:
Envoyé par @rkane Voir le message
bon voilà comment j'ai ecrit ça :
Code :
1
2
3
4
5
Public Function RegroupMalades(Projet As Long) As String
Dim res As DAO.Recordset
Dim sql As String
'Selectionne les participant du projet
sql = "SELECT Malade FROM Malades where format(vacation,""mm/dd/yyyy"") = #format(vacation,""mm/dd/yyyy"")#;"
mais j'ai une erreur de synthaxe
ton champ Malade n'existe pas dans ta table malades aussi
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 19h31   #15
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
pu.... la honte ! ! !


accessoirement le format dd/mm/yyyy fonctionne bien

en tous cas merci à toi JP
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 19h50   #16
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 742
Points : 10 742
Envoyer un message via MSN à jpcheck
donc si tu penses que l'on a atteint l'objectif, pense a cliquer sur le bouton
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h28.


 
 
 
 
Partenaires

Hébergement Web