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 14/04/2011, 23h06   #1
Membre régulier
 
Inscription : septembre 2007
Messages : 278
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2007
Messages : 278
Points : 89
Points : 89
Par défaut valeur retournée par textbox

salut le phorum
je me bats depuis quelques heures.... avec des textbox
j'ai créé un formulaire avec des textbox et une listbox
je filtre la listbox avec les textbox
j'ai trouvé sur le net un code qui permet de filtrer en utilisant 1 ou plusieurs textbox
mais voilà mes valeurs saisies ne sont pas retournés dans les variables du code vba
de plus j'ai un txtbox qui me dit qu'il contien une valeur 'null' et un autre '""' alors que les deux sont au meme format...
Code :
1
2
3
 
myFilter = myFilter & ("[Tel_PDV ] like '" + Me!txt_pdv + "*' and ")
myFilter = myFilter & ("[Id_Vendeur] like '" + Me!txt_code_vendeur + "*' and ")
si j'ajoute .text derrière chaque txtbox il me retourne pour le textbox vide une erreur comme quoi on ne peut utilisé un textbox non activé....
et si je ne mets rien il ne me retourne pas la valeur saisie

je desespère..

merci pour toute piste ou aide

munity
munity est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 13h39   #2
pgz
Expert Confirmé Sénior
 
Avatar de pgz
 
Homme Pierre GONZALEZ
Développeur Office VBA
Inscription : août 2005
Messages : 3 412
Détails du profil
Informations personnelles :
Nom : Homme Pierre GONZALEZ
Âge : 58
Localisation : France

Informations professionnelles :
Activité : Développeur Office VBA
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 412
Points : 5 934
Points : 5 934
Bonjour.

Tu peux déjà essayer
Code :
1
2
3
myFilter = myFilter & ("([Tel_PDV ] like """ & Nz(Me.txt_pdv.Value,"") & "*"") and ")
myFilter = myFilter & ("([Id_Vendeur] like "" + Nz(Me.txt_code_vendeur.Value,"") & "*"") and ")
...
Cordialement,

PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham
Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon
pgz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 13h58   #3
Membre régulier
 
Inscription : septembre 2007
Messages : 278
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2007
Messages : 278
Points : 89
Points : 89
merci de ton aide
malheureusement cela ne fonctionne pas
si je remplis le textbox de l'instruction
Code :
1
2
 
myFilter = myFilter & ("([Tel_PDV ] like """ + Nz(Me.txt_pdv.Value, "") + "*"") and ")
il me retourne une valeur "" et ne tient pas compte de celle contenue dans le txtbox

de plus il me met une incompatibilité de type sur l'instruction suivante
Code :
1
2
 
myFilter = myFilter & ("([Id_Vendeur] like "" + Nz(Me.txt_code_vendeur.Value,"") & " * "") And ")"
ce qui semble normal car on lui demande de remplacer un Null par "" donc il ne trouve pas
munity est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 14h12   #4
Membre régulier
 
Inscription : septembre 2007
Messages : 278
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2007
Messages : 278
Points : 89
Points : 89
en regardant de plus pres
la fonction Nz doit remplacer une valeur qui est égale à Null par une autre
le problème c'est que le textbox est considéré comme égale à "" mais qu'en plus celui ci n'est pas vide car je saisis des données pour filtrer....
munity est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 16h20   #5
pgz
Expert Confirmé Sénior
 
Avatar de pgz
 
Homme Pierre GONZALEZ
Développeur Office VBA
Inscription : août 2005
Messages : 3 412
Détails du profil
Informations personnelles :
Nom : Homme Pierre GONZALEZ
Âge : 58
Localisation : France

Informations professionnelles :
Activité : Développeur Office VBA
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 412
Points : 5 934
Points : 5 934
Re,

Pendant la saisie le contrôle est actif et la valeur ne peut être lue qu'avec la propriété .Text, la propriété .Value ne renvoie pas la valeur saisie, elle peut renvoyer Null. Quand le contrôle n'est plus actif, on ne peut utiliser .Text, mais .Value doit renvoyer la valeur saisie.

Si tu as des doutes, fait des dbug.Print de tous tes contrôles avant de construire la commande de filtrage.

Pour voir.

Cordialement,

PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham
Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon
pgz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 16h52   #6
Membre régulier
 
Inscription : septembre 2007
Messages : 278
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2007
Messages : 278
Points : 89
Points : 89
merci de tes réponses, cela m'a permis de bien relire mon code et de me rendre compte que j'avais mis un txt_pdv=""
c'est la raison pour laquelle ce text box me retournait ="" versus =Null
je mets mon code au cas ou cela interesserait quelqu'un
en fait pour récupérer la valeur il suffit de ne rien mettre après
Me.txt_pdv PLUTOT QUE Me.txt_pdv.value ou Me.txt_pdv.text
cela prend la valeur par défaut du txtbox
le fait que la valeur soit nulle et que l'on mette + dans l'instruction myfilter permet de ne pas prendre en compte la ligne car le null se transmet à la chaine...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   Public Function loadFilter()
    Dim myFilter As String
Application.Screen.MousePointer = 11 ' Sablier
 
        myFilter = ""
                myFilter = myFilter & ("[Tel_PDV ] like '" + Me.txt_pdv + "*' and ")
                myFilter = myFilter & ("[Id_Vendeur] like '" + Me.txt_code_vendeur + "*' and ")
                myFilter = myFilter & ("[Nom_Du_Point_De_Vente] like '" + Me.txt_nom + "*' and ")
                myFilter = myFilter & ("[Ville ] like '" + Me.txt_ville + "*' and ")
                myFilter = myFilter & ("[Cptt] like '" + Me.txt_cp + "*' and ")
                myFilter = myFilter & ("[Tel_Raison_Sociale] like '" + Me.txt_raison_sociale + "*' and ")
                myFilter = myFilter & ("[Fax_PDV] like '" + Me.txt_fax + "*' and ")
                myFilter = myFilter & ("[N__Mobile] like '" + Me.txt_mobile + "*' and ")
 
            If myFilter <> "" Then
                Me.Filter = Left$(myFilter, Len(myFilter) - 4)
                Me.FilterOn = True
                 StrSQl = "METTRE VOTRE CODE SQL"
                            Me.lst_base.RowSource = StrSQl
                            Me.lst_base.Requery
            Else
                Me.Filter = ""
                Me.FilterOn = False
                 StrSQl = "METTRE VOTRE CODE SQL"
                        Me.lst_base.RowSource = StrSQl
                        Me.lst_base.Requery
            End If
Application.Screen.MousePointer = 0 ' Retour à la normale
 
End Function
encore merci

munity
munity 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 03h03.


 
 
 
 
Partenaires

Hébergement Web