Besoin d'aide pour corriger un code vba

developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 12 sept. 2005 à 07:55
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 14 sept. 2005 à 08:07
Bonjour tout le monde

On ma demandé de réaliser un petit moteur de recherche dans le formulaire de la base de données que je suis en trein de réaliser avec acces.

J'ai mis une zone de texte, un bouton, et une zone de liste.

J'ai deux question à vous soumêtre.

Je vous en suppli aidé moi!

Voici le code:

Dim affiche As Control

For Each affiche In Me.Controls

Next affiche

Me.Liste128.RowSource = "select nom from tbl_eval_stat_glob_communication"
Me.Liste128.Requery

End Sub
Sub recherche()

Dim sql As String

sql = "select nom,prenom from tbl_eval_stat_glob_communication where tbl_eval_stat_glob_communication!nom" <> 0

Me.Liste128.RowSource = sql
Me.Liste128.Requery

End Sub

Private Sub Liste128_BeforeUpdate(Cancel As Integer)

Dim var As String
var = Liste128.List(Liste128.ListIndex)
Requete "select date,Sourire,Accepter de parler de soi,Désirer faire le point,Créer des relation sociales/familiales,Rétablir des relations sociales/familiales,Etre moin agressif dans ces relations,Prendre la parole individuel,prendre la parole collectif,Emetre des opinions et les vendres,(Re)prendre ca place dans la cellule familiale,Collaboré avec son référent social,Accepter la confrontation,Savoir dire oui ou non,Exprimer une envie,Imaginer un futur possible ou se projeter dans l'avenir,S'exprimer sans crainte from Tbl_evaluation where nom var"

End Sub

1)

Le probleme est quand je selectionne un element de la zone liste, il affiche l'erreur:

erreur de compilation 'membre de methode ou de données introuvable'

En selectionnant var = Liste128.List(Liste128.ListIndex)

Pourquoi fait il ca?

2)

De plus, il faut que je vous explique quelque chose, dans l'association les personne inscrite font 3 fois leurs evaluations.

Donc, j'ai réalise 3 colonne avec des zone de texte, Je voudrais que les données des évaluations des peronnes s'affichent en ordre croissant par raport aux date enregistré.

Merci

Cordialement

A bientôt

13 réponses

Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
12 sept. 2005 à 08:53
Salut,

1) Généralement, une ListBox commence à l'indice zéro. Donc vérifies que ton ListIndex ne vaut pas -1 par exemple.

Normalement, Liste128.Text devrait suffire.



Essais :


Debug.Print "ListIndex : " & Liste128.ListIndex
Debug.Print "Text : " & Liste128.Text



2) Essayes avec SELECT ... FROM ... WHERE ... ORDER BY dateEnregistrée ASC;


++

Zlub
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
12 sept. 2005 à 17:52
Bonsoir tout le monde

Ca ne fonctionne pas Zlub

Voici le code:

Private Sub Liste128_BeforeUpdate(Cancel As Integer)


Dim var As String
var = Liste128


Debug.Print "ListIndex :" & Liste128.ListIndex
Debug.Print "Text : " & Liste128.Text


Requete "select date, Sourire, [Accepter de parler de soi], [Désirer faire le point],[Créer des relation sociales/familiales], [Rétablir des relations sociales/familiales], [Etre moin agressif dans ces relations], [Prendre la parole individuel], [prendre la parole collectif], [Emetre des opinions et les vendres],[(Re)prendre ca place dans la cellule familiale], [Collaboré avec son référent social], [Accepter la confrontation], [Savoir dire oui ou non], [Exprimer une envie], [Imaginer un futur possible ou se projeter dans l'avenir], [S'exprimer sans crainte] from Tbl_evaluation where nom var ORDER BY date ASC;"


End Sub

access resort le même message,'membre de methode ou de données introuvable' en selectionnant .text

Où y a t'il une erreur?

Comment régler ce problème?

Comment vérifier l'indice de ma listIndex?

Merci

Cordialement

A bientôt
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
12 sept. 2005 à 18:04
Salut,

J'avais pas fait gaffe à ta requête ... essais ainsi :


Requete = "select date, Sourire, [Accepter de
parler de soi], [Désirer faire le point],[Créer des relation
sociales/familiales], [Rétablir des relations sociales/familiales],
[Etre moin agressif dans ces relations], [Prendre la parole
individuel], [prendre la parole collectif], [Emetre des opinions et les
vendres],[(Re)prendre ca place dans la cellule familiale], [Collaboré
avec son référent social], [Accepter la confrontation], [Savoir dire
oui ou non], [Exprimer une envie], [Imaginer un futur possible ou se
projeter dans l'avenir], [S'exprimer sans crainte] from Tbl_evaluation
where nom = '" & var & "' ORDER BY date ASC;"



Pour ton liste128 : c'est quoi comme élement graphique ?







Pour éviter l'erreur index :



If Liste128.ListIndex < 0 Then Exit Sub 'voir <=0





Et Debug.Print "ListIndex : " & Liste128.ListIndex ça donne quoi ?

ça affiche bien le numéro de ligne (-1) ?





++

Zlub
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
12 sept. 2005 à 18:24
Re bonsoir tout le monde

Comment faire pour savoir comment Debug.Print affiche -1?

Est ce que je dois laisser :

Dim var As String
var = Liste128

Il affiche tout la même erreur

Merci

Cordialement

A bientôt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
12 sept. 2005 à 18:49
Salut,

J'ai pas tout compris à ton dernier post ...



pour voir le debug.print faut que tu sois en VB Editor ... sinon remplace par msgbox







Supposons que ta liste 128 soit dans Feuille1



dans le code VBA de feuille1



tu colles deux boutons :





Private Sub CommandButton1_Click()


ListBox128.Clear

ListBox128.AddItem "ll"

ListBox128.AddItem "kk"


End Sub

Private Sub CommandButton2_Click()


Debug.Print "Nb de lignes : " & ListBox128.ListCount

If ListBox128.ListIndex < 0 Then Exit Sub

Debug.Print "Texte select " & ListBox128.Text


End Sub









++

Zlub
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
12 sept. 2005 à 18:51
Salut,

je voulais dire, tu fais deux boutons dans feuille1 et tu colle dans le code VBA de feuille1, les scripts ci-dessus.

++

Zlub
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
12 sept. 2005 à 19:07
Rebonsoir tout le monde

Zlub access affiche toujours la même erreur, est ca me prend la têtes!

A quoi vont servir tes boutons?

Pourquoi affiche t'il cette erreur?

Cordialement

A bientôt
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
12 sept. 2005 à 19:26
Salut,





Comme dit Maître Yoda : "Trop de questions en toi ..."

Je
pense que tu essais d'interroger la liste128 depuis un endroit où elle
n'est pas définie. Donc, les boutons c'est pour tester que ça marche
bien ... Que t'as des infos dans ta liste list128... Mais comme
j'ai pas ton code, je te fais faire des tests pour cibler le pb ... vu
que ListIndex, ListCount etc.. existent en VBA Excel...





Tu peux tester ça rapidement, d'une autre maniere:



Juste avant ton var = Liste128 : tu colles un msgbox list128 ...

- si tu vois un texte, l'erreur vient d'ailleur,

- si y'a rien ou que ça plante, c'est que tu n'indiques pas le chemin
complet pour acceder à liste128... solution simple déplace ton code
dans la même feuille que celle qui contient liste128.







Tu peux tester ta requete générée depuis excel en utilisant debug.print Requete (mode Visual Basic editor)

pour la voir à tout les coups, sur cette ligne
t'appuies sur F9 puis tu execute ton code... quand ça bloque dessus, tu
fais F8 et tu vois se qui se passe .. lorsquet'as la requete, tu la
teste sous Access, pour voir se qu'elle donne. Tu la retravaille au
besoin sous Access, puis recolles sous Excel.





Conseil final : s'ennerver ne sert à rien .... Respirer et faire un pause est salutaire ...





Courage,




++

Zlub
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
12 sept. 2005 à 20:04
Rebonsoir tout le monde

Voici le code complet du formulair de recherche de données.

Option Compare Database


Private Sub Commande127_Click()


Dim affiche As Control


For Each affiche In Me.Controls


Next affiche


Me.Liste128.RowSource = "select nom,prenom from Tbl_evaluation"
Me.Liste128.Requery


End Sub
Sub recherche()


Dim sql As String


sql = "select nom,prenom from Tbl_evaluation like Tbl_evaluation!nom" <> 0



Me.Liste128.RowSource = sql
Me.Liste128.Requery


End Sub



Private Sub Commande15_Click()
On Error GoTo Err_Commande15_Click



DoCmd.PrintOut


Exit_Commande15_Click:
Exit Sub


Err_Commande15_Click:
MsgBox Err.Description
Resume Exit_Commande15_Click

End Sub
Private Sub Commande17_Click()
On Error GoTo Err_Commande17_Click



DoCmd.Close

stDocName = "frm_Stast_eval_individuelle"
DoCmd.OpenForm stDocName, , , stLinkCriteria


Exit_Commande17_Click:
Exit Sub


Err_Commande17_Click:
MsgBox Err.Description
Resume Exit_Commande17_Click

End Sub





Private Sub Liste128_BeforeUpdate(Cancel As Integer)


Dim var As String
var = Liste128


If Liste128.ListIndex < 0 Then Exit Sub


Debug.Print "ListIndex :" & Liste128.ListIndex
Debug.Print "Text : " & Liste128.Text


Requete "select date, Sourire, [Accepter de parler de soi], [Désirer faire le point],[Créer des relation sociales/familiales], [Rétablir des relations sociales/familiales], [Etre moin agressif dans ces relations], [Prendre la parole individuel], [prendre la parole collectif], [Emetre des opinions et les vendres],[(Re)prendre ca place dans la cellule familiale], [Collaboré avec son référent social], [Accepter la confrontation], [Savoir dire oui ou non], [Exprimer une envie], [Imaginer un futur possible ou se projeter dans l'avenir], [S'exprimer sans crainte] from Tbl_evaluation where nom '" & var & "' ORDER BY date ASC;"


End Sub

Il faut que tu saches que m'aitenant le formulaire refuse de s'ouvrir sauf en mode création.

J'ignore ce qui affais ca.

J'espere que le code complet te donnera une idée.

Merci

Cordialement

A bientôt
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
13 sept. 2005 à 01:24
Salut;
Vérifie que ta zone de liste n'est pas à sélection multiple dans les propriétées

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
13 sept. 2005 à 06:34
Bonjour tout le monde

Acun est sélectionné dans selection multiple de la zone liste.

Cordialement

A bientôt
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
14 sept. 2005 à 01:35
Vi.
Bon deux questions à quoi te sert la boucle
For Each affiche In Me.Controls


Next affiche
Avec rien dedans ?
Ensuite à quoi te sert la requette en fin de sub :


Private Sub Liste128_BeforeUpdate(Cancel As Integer)


Et pour finir n'as tu pas mis de code dans
Private Sub Liste128_Click
Bon ça fait trois questions mais bon .......

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
14 sept. 2005 à 08:07
Bonjour tout le monde

oui, tu as raison, je ne vois pas pour quoi j'ai mis un boucle si je m'en sert pas.

Cette base de données me rend fou.


Me.Liste128.RowSource = "select nom,prenom from Tbl_evaluation"
Me.Liste128.Requery

Le code ci-dessus sert à afficher le résultat dans la liste128.

Il n' y a pas de Private Sub Liste128_Click

Je suis en trein de modifier le code.

J'ai r'ajouté une zonne de liste.

Voilà comment sa doit fonctionner.

1) on tape le nom dans la zone de text et on appuis sur le bouton.

2) le resultat s'affiche dans la zone liste 128 (le ou les nom's' et prenom's')

3) lorsque l'on clickera sur notre choix sur la zone liste 128 les dates des évaluations enregistrés devront s'afficher dans la zone liste 130 (zone liste que je viens d'ajouter)

4) Et lorseque l'on clickera sur l'une des dates de la zone liste 130, je veux que les données de l'evaluation s'affichent dans les zones de texte situé en dessou des zone de listes.

Avez-vous compris ce que je désir faire?

Vous les vous voire les modification que j'ai faite?

Avez vous des sugestion à me faire?

Merci de votre aide

Cordialement

A bientôt
0
Rejoignez-nous