hindweb
Messages postés44Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention 9 décembre 2013
-
28 avril 2008 à 11:31
hindweb
Messages postés44Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention 9 décembre 2013
-
10 mai 2008 à 17:41
bonjour a tous
j'ai un problème dans ma base de données j'arrive pas à faire une recherche dans ma table que je l'a crée sur access aprés je l'a importer à un formulaire à l'aide de l'assisstant et j 'ai crée dedans deux zone de liste une pour la date de début et l'autre pour la date de fin et aussi un boutton ok dont j'ai crée le code access voila la requête merci de me la corriger
Private Sub ok_Click()
f = ""
If Not IsNull(Me.debut) And Me.debut <> "" And Not IsNull(Me.fin) And Me.fin <> "" Then
If f <> "" Then
f = f & " AND clng([datedu]) BETWEEN " & CLng(Me.debut) & " AND " & CLng(Me.fin) & ""
Else
f = "clng([datedu]) BETWEEN " & CLng(Me.debut) & " AND " & CLng(Me.fin) & ""
End If
End If
Me.Filter = f
Me.FilterOn = True
End Sub
hindweb
Messages postés44Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention 9 décembre 2013 28 avril 2008 à 18:36
Non j'ai pas trompé de variable mais toujours me donne une faute à ce ligne:
f = "clng([datedu]) BETWEEN " & CLng(Me.du1) & " AND " & CLng(Me.au1) & ""
si tu arrive pas à trouver la solution merci de me donner une autre solution dont je px faire une recherche à partir de la table entre deux date vraiment j'en ai besoin.
j'ai à ma table 4 colonne (nom , prenom,datedu,datefin)
Vous n’avez pas trouvé la réponse que vous recherchez ?
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 28 avril 2008 à 20:29
remarques, il faudra aussi corriger
f= f & " AND " & clng([datedu]) & " BETWEEN " & CLng(Me.debut) & " AND " & CLng(Me.fin) & ""
mais c' est pas grave parceque cette ligne ne s' éxécute jamais.
Question :
c' est quoi du1 et au1 ? des zones de texte ?
<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
hindweb
Messages postés44Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention 9 décembre 2013 28 avril 2008 à 21:59
-dsl du1 =debut et au1=fin se sont mes deux zone de texte.
-toujours j'ai le meme problème j'ai une couleur jaune a ce ligne
f = CLng([du]) & " BETWEEN " & CLng(Me.debut) & " AND " & CLng(Me.fin)
-voila tout le code
Private Sub ok_Click()
f = ""
If Not IsNull(Me.debut) And Me.debut <> "" And Not IsNull(Me.fin) And Me.fin <> "" Then
If f <> "" Then
f = f & " AND " & CLng([datedu]) & " BETWEEN " & CLng(Me.debut) & " AND " & CLng(Me.fin) & ""
Else
f = CLng([datedu]) & " BETWEEN " & CLng(Me.debut) & " AND " & CLng(Me.fin)
End If
End If
Me.Filter = f
Me.FilterOn = True
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 29 avril 2008 à 00:25
et tu as quoi comme message d' erreur ?
Donnes nous par la même occasion un exemple de valeur que tu saisi dans ces zones de texte.Je suppose que ce sont des dates.
hindweb
Messages postés44Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention 9 décembre 2013 29 avril 2008 à 11:04
Erreur d'exécutuion '13':
Incompatibilité de type
et voila lorsque je clique sur déboguage me donne une couleur jaune a cette ligne:
f = CLng([datedu]) & " BETWEEN " & CLng(Me.debut) & " AND " & CLng(Me.fin)
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 29 avril 2008 à 14:03
Bonjour,
il nous reste donc plus que le champ datedu.
-Soit il est de type Long.Dans ce cas pas besoin de le convertir
f = "[datedu] BETWEEN " & CLng(Me.debut) & " AND " & CLng(Me.fin)
-Soit il est de type date.Il faut revoir alors notre synthaxe.
Tentes ceci:
f = CLng( & "[datedu]" & ) & " BETWEEN " & CLng(Me.debut) & " AND " & CLng(Me.fin)
hindweb
Messages postés44Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention 9 décembre 2013 29 avril 2008 à 22:51
Toujours j'ai le meme probleme(il me donne erreur) je pense qu'il y a un probleme a clng je pense qu'il manque quelquechose qui fait convertir mes donnéés aux zone de textes à une date
hindweb
Messages postés44Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention 9 décembre 2013 30 avril 2008 à 22:24
bonjour
Toujours ne marche pas :( je suis vraiment dsl pour le dérangement
il y a pas une autre solution à part ce code là parce que ce code la je l'ai trouvé juste à internet (http://www.pcastuces.com/pratique/windows/fiches/filtre.htm)
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 30 avril 2008 à 23:49
Salut,
beh si ton champ datedu est de type Date ,
il n' y a pas mieux que :
f = "datedu >= #" & Me.debut.Text & _
"# AND datedu <= #" & Me.fin.Text & "#"
<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
/PRE>
CarSoftAja
Messages postés26Date d'inscriptionlundi 5 mai 2008StatutMembreDernière intervention21 mai 2008 9 mai 2008 à 15:46
Salut,
Il faut que le résultat final du filtre soit sous la forme: [datedu] BETWEEN #01/01/2008# AND #06/10/2008#
et au format américain, soit mm/jj/aaaa.
Je verrais donc bien quelque chose comme:
f = ""
If Not IsNull(Me.debut) And Me.debut <> "" And Not IsNull(Me.fin) And Me.fin <> "" Then
If f <> "" Then
f = f & " AND ([datedu] BETWEEN #" & Format(Me.debut, "mm\ / dd \ / yyyy") & "# AND #" & Format(Me.fin, "mm \ / dd \ / yyyy") & "#)"
Else
f = "[datedu] BETWEEN #" & Format(Me.debut, "mm \ / dd \ / yyyy") & "# AND #" & Format(Me.fin, "mm \ / dd \ / yyyy") & "#"
End If
End If
Me.Filter = f
Me.FilterOn = True
End Sub
PS: sans espaces dans la fonction format. j'ai juste séparé les \ et / par des espaces pour plus de vision, sinon on dirait un V
hindweb
Messages postés44Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention 9 décembre 2013 10 mai 2008 à 00:35
wow merci beaucoup ça marche maintenant,vraiment je ne sais comment je te remercie tu es super
stp est ce que tu connais une méthode qui me permet d'imprimer seulement le tableau de résultat et pas toute la page(parce que lorsque j'imprime il me s'imprime toute la page avec les formulaire et les bouton)
et merci une autre fois
CarSoftAja
Messages postés26Date d'inscriptionlundi 5 mai 2008StatutMembreDernière intervention21 mai 2008 10 mai 2008 à 10:51
Le mieux pour imprimer, serait de créer un état d'impression
Il faut créer l'état sur la table contenant toutes les données. Ensuite, il est possible avec un bouton sur le formulaire, d'ouvrir cet état en lui passant le filtre créé, afin qu'il n'affiche que les résultats correspondants
(regarde la méthode Openreport dans l'aide de Access)
expression.OpenReport(ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs)
Ca donnerait quelque chose comme:
DoCmd.OpenReport "Etat_Tabledate",acViewPreview, , Me.Filter
Dans l'argument WhereCondition, on lui passe le contenu du filtre actuel du formulaire (me.filter qui est par exemple égal à "[datedu] BETWEEN #01/01/2008# AND #06/10/2008#"), ce qui fait que l'état ne s'affichera qu'avec les enregistrements filtrés et pas toute la table.
Et voilà...