Rechargement dynamique d'une zone de liste, avec requête

Le
Animatrix
Salut à tous !!

J'ai deux zones de texte (Nom et Prenom) et une zone de liste qui a la
requête sql suivante :

SELECT Client.N°, Client.Nom, Client.Prenom, Client.CP, Client.Ville,
Client.Num_secu
FROM Client
WHERE (((Client.Nom) Like Formulaires!Ajouter!Nom) And ((Client.Prenom) Like
Formulaires!Ajouter!Prenom)) Or (((Client.Nom) Like Formulaires!Ajouter!Nom))
Or (((Client.Prenom) Like Formulaires!Ajouter!Prenom));

Le contenu de la zone est
SELECT [Rechclient].[N°], [Rechclient].[Nom], [Rechclient].[Prenom],
[Rechclient].[CP], [Rechclient].[Ville], [Rechclient].[Num_secu] FROM
Rechclient ORDER BY [Nom], [Prenom], [Num_secu];

Première question, dans cette zone de liste ne s'affichent que les valeurs.
Y aurait-il moyen d'ajouter le nom de catégories (Nom, Prénom) en haut

Deuxième question : j'aimerais que quand je modifies une zone de texte, la
zone de liste se recharge pour afficher les résultats correspondants.

Voila mon VB :

rivate Sub Nom_Dirty(Cancel As Integer)

Rafraichir

End Sub

Private Sub Prenom_Dirty(Cancel As Integer)

Rafraichir

End Sub

Private Sub Rafraichir()

Dim SQL As String

SQL = "SELECT N°, Nom, Prenom, CP, Ville, Num_secu FROM Client WHERE
Client!N° <> 0"

If Me.Nom <> "" Then
SQL = SQL & "And Client!Nom like '*" & Me.Nom & "*' "
End If

If Me.Prenom <> "" Then
SQL = SQL & "And Client!Prenom like '*" & Me.Prenom & "*' "
End If
SQL = SQL & ";"

Me.lstResults.RowSource = SQL
Me.lstResults.Requery

End Sub


Mais le problème c'est que ca ne se met pas à jour


Merci pour votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #6660931
Re-Bonjour.

ça parait un touffu tout ça.

1- pour placer un en-tête des colonnes indiquer oui dans la propriété
En-têtes des colonnes.

2- pour régénérer une liste :
Me.LeNomdelaListe.Requery
ça suffit pour que la liste contienne les nouvelles informations.
si celles-ci ont bien été placées et enregistrées dans les champs de la
table correspondante.

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Animatrix" news:
| Salut à tous !!
|
| J'ai deux zones de texte (Nom et Prenom) et une zone de liste qui a la
| requête sql suivante :
|
| SELECT Client.N°, Client.Nom, Client.Prenom, Client.CP, Client.Ville,
| Client.Num_secu
| FROM Client
| WHERE (((Client.Nom) Like Formulaires!Ajouter!Nom) And ((Client.Prenom)
Like
| Formulaires!Ajouter!Prenom)) Or (((Client.Nom) Like
Formulaires!Ajouter!Nom))
| Or (((Client.Prenom) Like Formulaires!Ajouter!Prenom));
|
| Le contenu de la zone est
| SELECT [Rechclient].[N°], [Rechclient].[Nom], [Rechclient].[Prenom],
| [Rechclient].[CP], [Rechclient].[Ville], [Rechclient].[Num_secu] FROM
| Rechclient ORDER BY [Nom], [Prenom], [Num_secu];
|
| Première question, dans cette zone de liste ne s'affichent que les
valeurs.
| Y aurait-il moyen d'ajouter le nom de catégories (Nom, Prénom...) en haut
|
| Deuxième question : j'aimerais que quand je modifies une zone de texte, la
| zone de liste se recharge pour afficher les résultats correspondants.
|
| Voila mon VB :
|
| rivate Sub Nom_Dirty(Cancel As Integer)
|
| Rafraichir
|
| End Sub
|
| Private Sub Prenom_Dirty(Cancel As Integer)
|
| Rafraichir
|
| End Sub
|
| Private Sub Rafraichir()
|
| Dim SQL As String
|
| SQL = "SELECT N°, Nom, Prenom, CP, Ville, Num_secu FROM Client WHERE
| Client!N° <> 0"
|
| If Me.Nom <> "" Then
| SQL = SQL & "And Client!Nom like '*" & Me.Nom & "*' "
| End If
|
| If Me.Prenom <> "" Then
| SQL = SQL & "And Client!Prenom like '*" & Me.Prenom & "*' "
| End If
| SQL = SQL & ";"
|
| Me.lstResults.RowSource = SQL
| Me.lstResults.Requery
|
| End Sub
|
|
| Mais le problème c'est que ca ne se met pas à jour...
|
|
| Merci pour votre aide
Animatrix
Le #6660921
Merci pour la réponse.
Le problème c'est qu'au changement de valeur, j'obtiens :

"L'expression Sur changement entrée comme paramètre de la propriété de type
événement est à l'origine d'une erreur. La déclaration de la procédure ne
correspond pas à la description de l'événement ou de la procédure de même nom.

Code VB :

Private Sub Nom_Change(Cancel As Integer)

Me.Resultats.Requery

End Sub

Private Sub Prenom_Change(Cancel As Integer)

Me.Resultats.Requery

End Sub


Sachant que ma zone de liste s'apelle Resultats


Re-Bonjour.

ça parait un touffu tout ça.

1- pour placer un en-tête des colonnes indiquer oui dans la propriété
En-têtes des colonnes.

2- pour régénérer une liste :
Me.LeNomdelaListe.Requery
ça suffit pour que la liste contienne les nouvelles informations.
si celles-ci ont bien été placées et enregistrées dans les champs de la
table correspondante.

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Animatrix" news:
| Salut à tous !!
|
| J'ai deux zones de texte (Nom et Prenom) et une zone de liste qui a la
| requête sql suivante :
|
| SELECT Client.N°, Client.Nom, Client.Prenom, Client.CP, Client.Ville,
| Client.Num_secu
| FROM Client
| WHERE (((Client.Nom) Like Formulaires!Ajouter!Nom) And ((Client.Prenom)
Like
| Formulaires!Ajouter!Prenom)) Or (((Client.Nom) Like
Formulaires!Ajouter!Nom))
| Or (((Client.Prenom) Like Formulaires!Ajouter!Prenom));
|
| Le contenu de la zone est
| SELECT [Rechclient].[N°], [Rechclient].[Nom], [Rechclient].[Prenom],
| [Rechclient].[CP], [Rechclient].[Ville], [Rechclient].[Num_secu] FROM
| Rechclient ORDER BY [Nom], [Prenom], [Num_secu];
|
| Première question, dans cette zone de liste ne s'affichent que les
valeurs.
| Y aurait-il moyen d'ajouter le nom de catégories (Nom, Prénom...) en haut
|
| Deuxième question : j'aimerais que quand je modifies une zone de texte, la
| zone de liste se recharge pour afficher les résultats correspondants.
|
| Voila mon VB :
|
| rivate Sub Nom_Dirty(Cancel As Integer)
|
| Rafraichir
|
| End Sub
|
| Private Sub Prenom_Dirty(Cancel As Integer)
|
| Rafraichir
|
| End Sub
|
| Private Sub Rafraichir()
|
| Dim SQL As String
|
| SQL = "SELECT N°, Nom, Prenom, CP, Ville, Num_secu FROM Client WHERE
| Client!N° <> 0"
|
| If Me.Nom <> "" Then
| SQL = SQL & "And Client!Nom like '*" & Me.Nom & "*' "
| End If
|
| If Me.Prenom <> "" Then
| SQL = SQL & "And Client!Prenom like '*" & Me.Prenom & "*' "
| End If
| SQL = SQL & ";"
|
| Me.lstResults.RowSource = SQL
| Me.lstResults.Requery
|
| End Sub
|
|
| Mais le problème c'est que ca ne se met pas à jour...
|
|
| Merci pour votre aide





Raymond [mvp]
Le #6662051
il faut mettre le requery dans l'événement afterupdate de nom et prenom et
enregistrer les modifications avant le requery.

Private Sub Nom_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Me.Resultats.Requery
End Sub

Private Sub Prenom_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Me.Resultats.Requery
End Sub

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Animatrix" news:
| Merci pour la réponse.
| Le problème c'est qu'au changement de valeur, j'obtiens :
|
| "L'expression Sur changement entrée comme paramètre de la propriété de
type
| événement est à l'origine d'une erreur. La déclaration de la procédure ne
| correspond pas à la description de l'événement ou de la procédure de même
nom.
|
| Code VB :
|
| Private Sub Nom_Change(Cancel As Integer)
|
| Me.Resultats.Requery
|
| End Sub
|
| Private Sub Prenom_Change(Cancel As Integer)
|
| Me.Resultats.Requery
|
| End Sub
|
|
| Sachant que ma zone de liste s'apelle Resultats
|
Animatrix
Le #6662041
Merci.
C'est exactement ca.

Juste, une (autre) question :
Comment faire pour récupérer le champs (ici N°) de la liste, sachant qu'il
faut qu'il soit sélectionné ?

Merci
Raymond [mvp]
Le #6663551
Tu places la valeur de N° de l'enregistrement en cours dans la liste:
exemple:
Private Sub Nom_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Me.Resultats.Requery
Me.Resultats = Me.N°
End Sub

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Animatrix" news:
| Merci.
| C'est exactement ca.
|
| Juste, une (autre) question :
| Comment faire pour récupérer le champs (ici N°) de la liste, sachant qu'il
| faut qu'il soit sélectionné ?
|
| Merci
Publicité
Poster une réponse
Anonyme