Bonjour je souhaiterai savoi si il y a une méthode qui permette de compter le nombre d'élément répondant aux critère de ma reuqtes SQL. Car je n'arrive pas a utiliser la méthode count dans ACCESS.
Je vous remercie
Bonjour je souhaiterai savoi si il y a une méthode qui permette de compter le nombre d'élément répondant aux critère de ma reuqtes SQL. Car je n'arrive pas a utiliser la méthode count dans ACCESS.
Je vous remercie
Ta requete tu en fais quoi après, tu t'en sers pour créer un recordset ?
Je souhaiteria retourner le resultat du count , ou de la fonction aui le permet, dans une txtbox dan smon formulaire
Il y surement plus simple mais voila ce que je fais et qui marche :
Prend bien soin de définir tes variables et ton recordset
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 s = "SELECT ......;" Set rs = db.OpenRecordset(s, DB_OPEN_SNAPSHOT) rs.MoveLast nombr = rs.RecordCount 'nombr étant le nombre de lignes
Merci beaucoup je vais faire cela.
Voici mon code :
Qd j'exeute ce morceau de code, Access me dit : Variable objet ou variablede bloc With non definie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Dim mbrdebut As Integer Dim mbrfin As Integer Dim duree As Integer Dim s As String Dim rs As Recordset Dim Db As Database Dim Qd As DAO.QueryDef mbrdebut = Me.txtbox_du mbrfin = Me.txtbox_Au s = "SELECT * FROM CLIENT WHERE NUMERO-CLIENT >= " & mbrdebut & " AND NUMERO-CLIENT <= " & mbrfin & "AND Raison = 1 AND DUREE_VISITE_1 = " & Me.txtbox_Duree & " ;" Set rs = Db.OpenRecordset(s, DB_OPEN_SNAPSHOT) rs.MoveLast nombr = rs.RecordCount 'nombr étant le nombre de lignes
Cependant je ne voit pas ou est l'erreur peut -etre que je n'est pas assez de recul, quelqu'un pourrai-til me dire si il voit l'erreur?
Il ne manque pqs un "set db as currentdb" ou un truc comme ça, vérifie ma is je crois qu'il faut aussi déclarer ta variable db comme current db.
Tu n'as pas déclaré nombr !!
après avoir fait plusieur modification sur le codeje n'arrive toujour pas a execute le code.
Lors de l'execution il mindique uen erruer : Trop peu de parmètre . 2 attentue . et lors du debogague la ligne surligné est la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Dim mbrdebut As Integer Dim mbrfin As Integer Dim duree As Integer Dim cptas As Integer Dim rq As String Dim rs As DAO.Recordset Dim Db As Database Dim Qd As DAO.QueryDef Dim nmbre As Integer cpt = 1 mbrdebut = Me.txtbox_du mbrfin = Me.txtbox_Au rq = "SELECT * FROM CLIENT WHERE CLIENT!NUMERO-CLIENT >= " & mbrdebut & " AND CLIENT!NUMERO-CLIENT <= " & mbrfin & " AND CLIENT!Raison = 1 AND CLIENT!DUREE_VISITE_1 = " & Me.txtbox_Duree & ";" Set rs = CurrentDb.OpenRecordset(rq, dbOpenSnapshot) rs.MoveLast nombr = rs.RecordCount 'nombr étant le nombre de lignes Me.txtbox_MaladieMentale = nombr
Set rs = CurrentDb.OpenRecordset(rq, dbOpenSnapshot)
Seulement pour moi il y a deux parametre. Une autre partie de mon code (un autre formulaire uilise la meme ligne, fonctionne correctement, jen vien donc a penseer que l'erreur es tsitué avant.
Quels est votre avis?
Bonjour,
Modifie déjà
Domi2
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim db As DAO.Database
Salut,
Code : Sélectionner tout - Visualiser dans une fenêtre à part Me.TxtBoxNbClient= DCount("[NUMERO-CLIENT ]", "CLIENT", " [NUMERO-CLIENT ] >= " & [mbrdebut] & " AND [NUMERO-CLIENT ]<= " & [mbrfin] & " AND Raison='1'" & " AND [DUREE_VISITE_1]= " & [txtbox_Duree])
Bonjour,
Tu devrais changer le nom du champs NUMERO-CLIENT en => NUMERO_CLIENT, pour Access, CLIENT!NUMERO-CLIENT est une opération de soustraction: le champ NUMERO - le champs CLIENT.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM CLIENT WHERE CLIENT!NUMERO-CLIENT ...
Je n'ai jamais testé un nom de champs aussi ambigu, mais tu veux vraiment utiliser le nom NUMERO-CLIENT, essaie le entre crochets, i.e.:
Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 rq = "SELECT * FROM CLIENT WHERE CLIENT![NUMERO-CLIENT] >= " & mbrdebut & " AND CLIENT![NUMERO-CLIENT] <= " & mbrfin & " AND CLIENT!Raison = 1 AND CLIENT!DUREE_VISITE_1 = " & Me.txtbox_Duree & ";"
Je vous remercie de votreaide je vais essayer les différentes méthodes que vous m'avez communiqué
En effet le nom de champ NUMERO-CLIENT est ambigue, je suis tout a fait d'accord avec vous, cependant je modifie une base de donnée déja existante, je ne vais donc pas modifier le champ car il faudrait que je vérifie tous les formulaire ayant un rapport avec ce numéro, ainsi que les requetes
Je vien d'essayer la solution de "ft035580" que je remercie beaucoup car sa solution ma permis de resoudre mon probleme.
Merci aussi a tous ceux qui m'ont donné des conseils.
lorsque j,ai effectue le test, il n'y avait pas de membre repondant au critèe et le resultat indi quai bien 0.
Cependant lorsqu'il y a des membres répondant aux critèes un message d'erreur indiquant type de donnée incompatible avec l'expression du critère.
Une idée?
Je vien de trouver la sollution au probleme , en fait il faut rentrer le numero de raison en tant que valeur numérique et nom en tant que texte.
Il faut donc enleverles ' 1 ' qui entoure le chiffre.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager