Filtrage d'un recordset

Filtrage d'un recordset - VB/VBA/VBS - Programmation

Marsh Posté le 16-05-2007 à 08:35:53    

Salut.

 

J ai recuperer le script d'un collegue que je dois adapter pour une nouvelle utilisation, Mon problème, c est que je dois filtrer ce que le programme a stoqué precedement dans un recordset, c'est du genre :

 
Code :
  1. Sub CreateRecSet()
  2.     Set ISAAccounts = CreateObject("ADODB.Recordset" )
  3.     With ISAAccounts
  4.         .Fields.Append "Domain", adVarChar, "255"
  5.         .Fields.Append "Account", adVarChar, "255"
  6.         .Fields.Append "MemberOf", adVarChar, "255"
  7.         .Fields.Append "Description", adVarChar, "255"
  8.         .Fields.Append "Name", adVarChar, "150"
  9.         '.Fields.Append "Class", adVarChar, "20"
  10.         .Fields.Append "Mail", adVarChar, "150"
  11.         .Fields.Append "Group", adVarChar, "150"
  12.         'All other fields
  13.         On Error Resume Next
  14.         Dim TmpArray, TmpCount ' as Integer
  15.         TmpArray = Split(AccountAttributes, ";" )
  16.         For TmpCount = LBound(TmpArray) To UBound(TmpArray)
  17.             .Fields.Append TmpArray(TmpCount), adVariant
  18.             If DebugMode = TRUE Then Call Message("Additional Attribute: '" & TmpArray(TmpCount) & "'" )
  19.         Next
  20.         .Open
  21.     End With
  22. End Sub 'CreateRecSet()


ensuite, il y a pas mal de Add.

 

et moi, je voudrais par exemple recuperer touts ceux qui ont, par exemple *700* dans "description"

 

J ai bien eu l'idée d'appliquer une requête SQL sur mon recordset,... mais je bute sur : "SELECT * from ???? where Description LIKE %700%"

 

Je met quoi a la place des "???"

 


Merci


Message édité par Z_cool le 16-05-2007 à 08:36:47

---------------
#mais-chut    ᓚᘏᗢ
Reply

Marsh Posté le 16-05-2007 à 08:35:53   

Reply

Marsh Posté le 16-05-2007 à 09:47:23    

A priori à la place des ??? tu dois mettre le nom de la table où se trouvent les infos
 
Il me semble  :ange:

Reply

Marsh Posté le 16-05-2007 à 09:52:34    

c'est pour ca que perso je prefere balancer une request sql et faire un db.execute...
dans ton cas, essaie de mettre "& ISAAccounts.Name & " à la place des ???

Reply

Marsh Posté le 16-05-2007 à 10:35:05    

Le probleme c est qu en fait, ca provient pas d une base de données.

 

Mais je viens de decouvrir :
http://www.devguru.com/technologie [...] ilter.html
ISAAccounts.Filter " Description ='toto' " marche bien

 

Mais quand j essaye avec un LIKE ... ca marche pas ... je continue les recherches

 


Message cité 1 fois
Message édité par Z_cool le 16-05-2007 à 10:35:48
Reply

Marsh Posté le 16-05-2007 à 10:41:32    

Z_cool a écrit :

Le probleme c est qu en fait, ca provient pas d une base de données.

 

Mais je viens de decouvrir :
http://www.devguru.com/technologie [...] ilter.html
ISAAccounts.Filter " Description ='toto' " marche bien

 

Mais quand j essaye avec un LIKE ... ca marche pas ... je continue les recherches


Ok, je suis trop con, Si ca marche bien avec le Like,...

Reply

Marsh Posté le 16-05-2007 à 12:27:18    

Bon, ba il y a quand meme des choses que j arrive pas a faire, notement :

 
Code :
  1. Set WiskiFile = fso.CreateTextFile(".\Wiski.txt", True)
  2. Set objRS = objConn.Execute("select COUNT(*) AS NBR,Description  from "& UsersFileDestination & " GROUP BY Description")
  3. YearsMonth = "00" + Year(Date) & Month(Date)
  4. If Len (Month(Date) <2) Then
  5.     YearsMonth =  Year(Date) & "0" & Month(Date)
  6. Else
  7.     YearsMonth =  Year(Date) &  Month(Date)
  8. End If
  9. ComptR =0
  10. NbrUser = 0
  11. With objRS
  12.      While Not (.EOF Or .BOF)
  13.          If Len(.Fields("Description" )) = 6 Then
  14.              ComptR=ComptR+1
  15.              NbrUser = NbrUser + .Fields("NBR" ).Value
  16.             WiskiFile.WriteLine YearsMonth & ";A821;420142;" & .Fields("Description" ).Value & ";132118;" & .Fields("NBR" ).Value & ",00000;"
  17.         Else
  18.            
  19.         End if
  20.         .MoveNext
  21.      Wend
  22.      .Close
  23. End With
  24. wscript.echo ComptR &" differents Cost Centers have been identified on "& NbrUser&" Users."
 


donc si vous avez des idee ....

 

Reply

Marsh Posté le 16-05-2007 à 13:42:31    

tu peux expliciter ton pb ? que n'arrives-tu pas à fire ? ton code plante ? quelle erreur ca te donne ?

Reply

Marsh Posté le 16-05-2007 à 14:28:00    

C est ce que j etais en train de me dire ... vaut mieux que j explique ce dont j ai besoin, ... parce que le code comme ca,brut, c est un peut indigeste.

  

en fait, la, maintenant j ai un recordset
ISAAccounts  qui est du genre


Domain - Account - MemberOf - Description - Name
FR       toto2     Groupe1    7254          Toto tartampion
FR       milou     Groupe2    1235          Milou Chien
FR       Emile     Groupe8    7254          Emile le tueur
GR       Plutot    Groupe8    1235          Plutot le Chien
FR       Bill      Groupe3    7254          Bill Kill
IL       Stin      Groupe2    6599          Stin Stun


Et j ai besoin, qu il me dise :
7254 il y a 3 personnes
1235 il y a 2 personnes
6599 1 personne

Reply

Marsh Posté le 16-05-2007 à 15:42:26    

c est en gros, ce que me faisait :
 
"select COUNT(*) AS NBR,Description  from "... " GROUP BY Description"

Reply

Marsh Posté le 16-05-2007 à 15:56:15    

a defaut, si j arrive a trouver comment me retourner la liste des "description", apres, je peux placer des filtre et compter le nombre que j'en ai dans chaque

Reply

Marsh Posté le 16-05-2007 à 15:56:15   

Reply

Marsh Posté le 16-05-2007 à 16:00:17    


 
"select COUNT(DISTINCT blabla) AS NBR,Description  from "... " GROUP BY Description"
un truc dans le style ?

Reply

Marsh Posté le 16-05-2007 à 16:04:30    

jpcheck a écrit :

"select COUNT(DISTINCT blabla) AS NBR,Description  from "... " GROUP BY Description"
un truc dans le style ?

 


 

certe, mais dans a mesure ou c est un recordset simple que j ai et qu il n est rattaché a aucun Database engine, je peux pas utiliser de SQL ....


Message édité par Z_cool le 16-05-2007 à 16:08:50
Reply

Marsh Posté le 18-05-2007 à 08:59:54    

Z_cool a écrit :

a defaut, si j arrive a trouver comment me retourner la liste des "description", apres, je peux placer des filtre et compter le nombre que j'en ai dans chaque

Non ? pas de solution deja prevu a cet effet avec un record set ?

 

a part le faire soit meme ?

 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed