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 07/06/2011, 10h06   #1
Invité de passage
 
Homme Anthony Boudinot
Étudiant
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Anthony Boudinot
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 2
Points : 2
Par défaut Mettre des valeurs de requete dans des TextBox

Bonjour,
Je débute en informatique et j'ai un problème pour afficher un message par rapport à une comparaison de date, en effet je voudrais afficher un message lorsque la date est infèrieur a la date du jour (garantie terminée) et un autre quand la date n'est pas connu (inconnue) et quand la date est supèrieur a la date du jour sa m'affiche la date

voici mon code:

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
31
32
33
34
35
Private Sub lst_périph_Change() 
 
Dim Req As String 
Dim Req2 As String 
 
If IsNull(Req) Then 
    Req = MsgBox("vous devez selectionner un périphérique!") 
Else 
    Req = "SELECT N°_de_série, Téléphone_SAV " 
    Req = Req & "FROM Périphérique " 
    Req = Req & "WHERE Périphérique.N°Périph = '" & Me.lst_périph & "'" 
 
    lst_résult1.RowSource = Req 
    lst_résult1.Requery 
 
    Req2 = "SELECT Date_limite_garantie " 
    Req2 = Req2 & "FROM Périphérique " 
    Req2 = Req2 & "WHERE Périphérique.N°Périph = '" & Me.lst_périph & "'" 
 
    If Req2 > Now() Then 
        lst_date1.RowSource = Req2 
        lst_date1.Requery 
    Else 
        If Req2 < Now() Then 
            lst_date1.RowSource = "Garantie terminée" 
            lst_date1.Requery 
        Else 
            If Req2 = "" Then 
                lst_date1.RowSource = "Inconnue" 
                lst_date1.Requery 
            End If 
        End If 
    End If 
End If 
End Sub
Mais toute la partie qui concerne la restriction sur Req2 ne marche pas

Merci
tokagero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 11h41   #2
Invité de passage
 
Homme Anthony Boudinot
Étudiant
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Anthony Boudinot
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 2
Points : 2
Par défaut autre test

j'ai essayé de résoudre le problème d'une autre façons mais elle aussi ne marche pas.

voici le code:

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
31
32
33
34
Private Sub lst_périph_Change()
 
Dim Req As String
Dim Req2 As String
 
If IsNull(Req) Then
    Req = MsgBox("vous devez selectionner un périphérique!")
Else
    Req = "SELECT N°_de_série, Téléphone_SAV "
    Req = Req & "FROM Périphérique "
    Req = Req & "WHERE Périphérique.N°Périph = '" & Me.lst_périph & "'"
 
    lst_résult1.RowSource = Req
    lst_résult1.Requery
 
    Req2 = "SELECT Date_limite_garantie "
    Req2 = Req2 & "FROM Périphérique "
    Req2 = Req2 & "WHERE Périphérique.N°Périph = '" & Me.lst_périph & "'"
 
    If Req2 > Now() Then
        lst_date1.RowSource = Req2
        lst_date1.Requery
    Else
        If Req2 < Now() Then
            MsgBox ("GARANTIE TERMINEE")
        Else
            If Req2 = "" Then
                MsgBox ("INCONNUE")
            End If
        End If
    End If
End If
 
End Sub
si quelqu'un peu m'aider

merci d'avance
tokagero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h13   #3
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Bonjour
Dans les premières lignes, il y a des incohérences.
Code :
1
2
3
4
5
6
Dim Req As String 
Dim Req2 As String 
 
If IsNull(Req) Then 
    Req = MsgBox("vous devez selectionner un périphérique!") 
Else
Tu déclare Req et tu testes si elle est null : c'est sur qu'elle est null puisque non chargée.
Je pense que tu veux plutôt tester Me.lst_périp


Ensuite, tu charges Req2 avex une chaine de caractères et tu la compare à la date du jour ?

Si le but est de rechercher la date limite dans la table essaye avec
Code :
Req2=Dlookup("[Date_limite_garantie]","Périphérique","[Périphérique.N°Périph]='" & Me.lst_périph & "'")
La fonction est constituée de la sorte DLookUp(ChampCherché,TableouRequete, CritereDeRecherche)

Ensuite tu met le résultat dans une zone de texte et pas une Zone de Liste

bon courage
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/06/2011, 16h06   #4
Invité de passage
 
Homme Anthony Boudinot
Étudiant
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Anthony Boudinot
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 2
Points : 2
Par défaut problème de comparaison

Bonjour fgiambelluco et merci de m'aider,

Citation:
Envoyé par fgiambelluco Voir le message
Ensuite, tu charges Req2 avex une chaine de caractères et tu la compare à la date du jour ?
En faite je veux comparer la date qui me sera renvoyer par Req2 avec la date du jour enfin de savoir si la garantie est encore bonne ou non.

Dans le cas ou la garantie est encore bonne ça m'affiche la date limite de garantie.

Dans le cas ou la date n'est plus bonne ça m'affiche "Garantie terminée".

Et dans le cas ou Req2 ne renvoye pas de date que ça affiche "Inconnue"

et c'est pour tout ça que j'ai un problème, peux tu m'aider?

Merci d'avance
tokagero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 10h46   #5
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Tu dois créer un nouveau champ dans ta requète.
Prends ta reqête en mode création, clic sur la première ligne de la 1ere colonne vide et tape la fonction qui te permet de tester ta date de garantie
Images attachées
Type de fichier : gif Validite.gif (3,8 Ko, 4 affichages)
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/06/2011, 14h18   #6
Invité de passage
 
Homme Anthony Boudinot
Étudiant
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Anthony Boudinot
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 2
Points : 2
Par défaut Solution du problème

bonjour et encore merci fgiambelluco,

Pour les personnes qui pourrait avoir le même problème voici le code:

Code :
1
2
3
4
5
6
7
8
9
10
11
 
Req2 = Nz(DLookup("[date_limite_garantie]", "Périphérique", "[N°Périph] = '" & Me.lst_périph & "'"), "")
    If Req2 = "" Then
        txt_date1.Value = "Inconnue"
    Else
        If CVDate(Req2) <= Date Then
            txt_date1.Value = "Garantie terminée"
        Else
            txt_date1.Value = Req2
        End If
    End If
tokagero 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 20h26.


 
 
 
 
Partenaires

Hébergement Web