Comment faire un select sur ADODB.Recordset

Le
Marc Sylvain
Voici un bout de mon code

'__________________________________________
Dim rsfso As New ADODB.Recordset

Set rsfso = CreateObject("ADODB.Recordset")

With rsfso.Fields

.Append "NomFichier", adVarChar, 20

End With

rsfso.Open




If hSearch <> INVALID_HANDLE_VALUE Then

While Cont

FileName = StripNulls(WFD.cFileName) 'WFD.cAlternate

rsfso.AddNew

rsfso("NomFichier") = FileName

rsfso.Update

Cont = FindNextFile(hSearch, WFD)

Wend

Cont = FindClose(hSearch)

End If



'__________________________________________



ICI

Je veux faire un ("Select * From ??? where NomFichier like '116825*.DWG'")

par quoi je remplace le ??? car je n'ai pas de nom de table et comment
faire un select

sur un ADODB.Recordset sans creer physiquement une database ???



Merci

Marc
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
François Picalausa
Le #15409571
On 3 mai, 19:29, "Marc Sylvain"
Voici un bout de mon code

<snip la création de recordset déconnecté>

Je veux faire un ("Select * From ??? where NomFichier like '116825*.DWG'")

par quoi je remplace le ??? car je n'ai pas de nom de table et comment
faire un select

sur un ADODB.Recordset sans creer physiquement une database ???



Hello,

Bien que je ne sois pas spécialiste du domaine, donc avec toutes
réserves, il me semble que puisque c'est le moteur de base de données
qui interprète les requêtes SQL, tu ne puisse pas.
Par contre, il semblerait qu'il existe la possibilité d'utiliser la
propriété Filter de l'objet Recordset pour arriver à des résultats
semblables:
http://msdn2.microsoft.com/en-us/library/ms676691.aspx
Selon ce que je lis (http://msdn2.microsoft.com/en-us/library/
ms681465.aspx), la syntaxe devrait s'approcher de:
rstPublishers.Filter = "NomFichier like '116825*"
l'extension devant alors être dans un champ séparé puisque "In a LIKE
clause, you can use a wildcard at the beginning and end of the pattern
(for example, LastName Like '*mit*'), or only at the end of the
pattern".

Cela étant, il serait intéressant de savoir pourquoi tu as besoin de
ce recordset déconnecté? Ne peux-tu pas utiliser un "simple" tableau
dynamique? Si ce sont les propriétés de recherche préimplémentées du
recordset qui t'intéresse, ne peux-tu pas envisager de construire un
document XML et de récupérer les données avec XPath?

J'espère que ces pistes pourront t'aider et que je ne serai "à côté de
la plaque"!

François Picalausa
Jacques
Le #15409541
Bonjour,

Petit exemple ...

Public cnnTravail As New ADODB.Connection
Public rsTrav As New ADODB.Recordset

Set cnnTravail = New Connection
cnnTravail.CursorLocation = adUseClient
cnnTravail.Provider = "Microsoft.jet.OLEDB.4.0"
cnnTravail.ConnectionString = App.Path & "Travail.mdb "
cnnTravail.Open
Set rsTrav = New Recordset
rsTrav.Open "select * from TravMin", cnnTravail, adOpenStatic,
adLockOptimistic

Jacques(BE)



"François Picalausa"
On 3 mai, 19:29, "Marc Sylvain"
Voici un bout de mon code

<snip la création de recordset déconnecté>

Je veux faire un ("Select * From ??? where NomFichier like '116825*.DWG'")

par quoi je remplace le ??? car je n'ai pas de nom de table et comment
faire un select

sur un ADODB.Recordset sans creer physiquement une database ???



Hello,

Bien que je ne sois pas spécialiste du domaine, donc avec toutes
réserves, il me semble que puisque c'est le moteur de base de données
qui interprète les requêtes SQL, tu ne puisse pas.
Par contre, il semblerait qu'il existe la possibilité d'utiliser la
propriété Filter de l'objet Recordset pour arriver à des résultats
semblables:
http://msdn2.microsoft.com/en-us/library/ms676691.aspx
Selon ce que je lis (http://msdn2.microsoft.com/en-us/library/
ms681465.aspx), la syntaxe devrait s'approcher de:
rstPublishers.Filter = "NomFichier like '116825*"
l'extension devant alors être dans un champ séparé puisque "In a LIKE
clause, you can use a wildcard at the beginning and end of the pattern
(for example, LastName Like '*mit*'), or only at the end of the
pattern".

Cela étant, il serait intéressant de savoir pourquoi tu as besoin de
ce recordset déconnecté? Ne peux-tu pas utiliser un "simple" tableau
dynamique? Si ce sont les propriétés de recherche préimplémentées du
recordset qui t'intéresse, ne peux-tu pas envisager de construire un
document XML et de récupérer les données avec XPath?

J'espère que ces pistes pourront t'aider et que je ne serai "à côté de
la plaque"!

François Picalausa
Marc Sylvain
Le #15409421
Merci Jacques et Francois

Comme je peux constater, J'aurais pas le

choix de me créer une database temporaire



Marc




"Jacques" %
Bonjour,

Petit exemple ...

Public cnnTravail As New ADODB.Connection
Public rsTrav As New ADODB.Recordset

Set cnnTravail = New Connection
cnnTravail.CursorLocation = adUseClient
cnnTravail.Provider = "Microsoft.jet.OLEDB.4.0"
cnnTravail.ConnectionString = App.Path & "Travail.mdb "
cnnTravail.Open
Set rsTrav = New Recordset
rsTrav.Open "select * from TravMin", cnnTravail, adOpenStatic,
adLockOptimistic

Jacques(BE)



"François Picalausa" news:

On 3 mai, 19:29, "Marc Sylvain"
Voici un bout de mon code

<snip la création de recordset déconnecté>

Je veux faire un ("Select * From ??? where NomFichier like
'116825*.DWG'")

par quoi je remplace le ??? car je n'ai pas de nom de table et comment
faire un select

sur un ADODB.Recordset sans creer physiquement une database ???



Hello,

Bien que je ne sois pas spécialiste du domaine, donc avec toutes
réserves, il me semble que puisque c'est le moteur de base de données
qui interprète les requêtes SQL, tu ne puisse pas.
Par contre, il semblerait qu'il existe la possibilité d'utiliser la
propriété Filter de l'objet Recordset pour arriver à des résultats
semblables:
http://msdn2.microsoft.com/en-us/library/ms676691.aspx
Selon ce que je lis (http://msdn2.microsoft.com/en-us/library/
ms681465.aspx), la syntaxe devrait s'approcher de:
rstPublishers.Filter = "NomFichier like '116825*"
l'extension devant alors être dans un champ séparé puisque "In a LIKE
clause, you can use a wildcard at the beginning and end of the pattern
(for example, LastName Like '*mit*'), or only at the end of the
pattern".

Cela étant, il serait intéressant de savoir pourquoi tu as besoin de
ce recordset déconnecté? Ne peux-tu pas utiliser un "simple" tableau
dynamique? Si ce sont les propriétés de recherche préimplémentées du
recordset qui t'intéresse, ne peux-tu pas envisager de construire un
document XML et de récupérer les données avec XPath?

J'espère que ces pistes pourront t'aider et que je ne serai "à côté de
la plaque"!

François Picalausa




SAISAS
Le #15409331
Effectivement ...

j'ai regardé si la propriété Filter des recrordset marchait, mais elle n'est
possible qu'avec MicroSoft Jet, donc de l'ODBC ou du ISAM ...

Cordialement.

"Marc Sylvain" a écrit :

Merci Jacques et Francois

Comme je peux constater, J'aurais pas le

choix de me créer une database temporaire



Marc




"Jacques" %
> Bonjour,
>
> Petit exemple ...
>
> Public cnnTravail As New ADODB.Connection
> Public rsTrav As New ADODB.Recordset
>
> Set cnnTravail = New Connection
> cnnTravail.CursorLocation = adUseClient
> cnnTravail.Provider = "Microsoft.jet.OLEDB.4.0"
> cnnTravail.ConnectionString = App.Path & "Travail.mdb "
> cnnTravail.Open
> Set rsTrav = New Recordset
> rsTrav.Open "select * from TravMin", cnnTravail, adOpenStatic,
> adLockOptimistic
>
> Jacques(BE)
>
>
>
> "François Picalausa" > news:
>
> On 3 mai, 19:29, "Marc Sylvain" >> Voici un bout de mon code
>>
>> <snip la création de recordset déconnecté>
>>
>> Je veux faire un ("Select * From ??? where NomFichier like
>> '116825*.DWG'")
>>
>> par quoi je remplace le ??? car je n'ai pas de nom de table et comment
>> faire un select
>>
>> sur un ADODB.Recordset sans creer physiquement une database ???
>
> Hello,
>
> Bien que je ne sois pas spécialiste du domaine, donc avec toutes
> réserves, il me semble que puisque c'est le moteur de base de données
> qui interprète les requêtes SQL, tu ne puisse pas.
> Par contre, il semblerait qu'il existe la possibilité d'utiliser la
> propriété Filter de l'objet Recordset pour arriver à des résultats
> semblables:
> http://msdn2.microsoft.com/en-us/library/ms676691.aspx
> Selon ce que je lis (http://msdn2.microsoft.com/en-us/library/
> ms681465.aspx), la syntaxe devrait s'approcher de:
> rstPublishers.Filter = "NomFichier like '116825*"
> l'extension devant alors être dans un champ séparé puisque "In a LIKE
> clause, you can use a wildcard at the beginning and end of the pattern
> (for example, LastName Like '*mit*'), or only at the end of the
> pattern".
>
> Cela étant, il serait intéressant de savoir pourquoi tu as besoin de
> ce recordset déconnecté? Ne peux-tu pas utiliser un "simple" tableau
> dynamique? Si ce sont les propriétés de recherche préimplémentées du
> recordset qui t'intéresse, ne peux-tu pas envisager de construire un
> document XML et de récupérer les données avec XPath?
>
> J'espère que ces pistes pourront t'aider et que je ne serai "à côté de
> la plaque"!
>
> François Picalausa
>
>





François Picalausa
Le #15409301
On 4 mai, 19:35, SAISAS
Effectivement ...

j'ai regardé si la propriété Filter des recrordset marchait, mais e lle n'est
possible qu'avec MicroSoft Jet, donc de l'ODBC ou du ISAM ...

Cordialement.



Hello,

Je ne suis pas certain de comprendre. Lorsque j'utilise:

Dim rsfso As New ADODB.Recordset
Dim i As Long, j As Long
Dim fname As String

Set rsfso = CreateObject("ADODB.Recordset")

With rsfso.Fields
.Append "NomFichier", adVarChar, 20
End With

rsfso.Open

For j = 0 To 9
fname = Chr$(Asc("a") + j)
For i = 1 To 10
rsfso.AddNew
rsfso("NomFichier") = fname & i
rsfso.Update
Next i
Next j

rsfso.Filter = "NomFichier LIKE 'b%' OR NomFichier LIKE 'c%'"

rsfso.MoveFirst
For i = 1 To rsfso.RecordCount
Debug.Print rsfso.Fields("NomFichier").Value
rsfso.MoveNext
Next i

N'est ce pas totalement indépendant du moteur derrière? (puisque le
recordset est construit sans connexion)
Je ne comprends pas vraiment où une telle dépendance intervient...

François
parci
Le #15409271
On Fri, 4 May 2007 10:35:00 -0700, SAISAS


Effectivement ...

j'ai regardé si la propriété Filter des recrordset marchait, mais elle n'est
possible qu'avec MicroSoft Jet, donc de l'ODBC ou du ISAM ...



Avec Find ça marche (voir l'aide pour plus de détail sur les
paramètres) par exemple :

Dim rs As New ADODB.Recordset

With rs
.Fields.Append "NomFichier", adVarChar, 20

.Open
.AddNew
.Fields("NomFichier") = "a"
.Update

.AddNew
.Fields("NomFichier") = "b"
.Update

.AddNew
.Fields("NomFichier") = "c"
.Update

.MoveFirst
.Find "[NomFichier] = 'b'"
If Not .EOF Then
Debug.Print .Fields("NomFichier")
End If
End With
Publicité
Poster une réponse
Anonyme