OVH Cloud OVH Cloud

plusieurs tables dans un reccordset

4 réponses
Avatar
thierry
nonjour,

j'essaye de programmer en VB6 avec DAO. Quand je lire une table d'une
base de donnée, je la mets dans un recodset. Jusque là ça va. par
contre, quand je veus lire dans plusieurs tables, je charge chaque
table dans un recordset, puis je fais des recherches .

en fait, je souhaiterais pouvoir mettre dans un recodset, le résultat
d'un select qui serait fait sur plujsieurs tables.

1 petite idée???

Cordialement

Thierry

4 réponses

Avatar
Christophe
Bonjour,

Et avec une requete sur ces tables?

Christophe Vergon

"thierry" a écrit dans le message de news:


nonjour,

j'essaye de programmer en VB6 avec DAO. Quand je lire une table d'une
base de donnée, je la mets dans un recodset. Jusque là ça va. par
contre, quand je veus lire dans plusieurs tables, je charge chaque
table dans un recordset, puis je fais des recherches .

en fait, je souhaiterais pouvoir mettre dans un recodset, le résultat
d'un select qui serait fait sur plujsieurs tables.

1 petite idée???

Cordialement

Thierry




Avatar
thierry
ben en fait, je ne comprends pas trop comment je pourrais faire une
requête , puis la mettre dans un recordset


Le Mon, 26 Jan 2004 16:41:06 +0100, "Christophe" a
écrit :

Bonjour,

Et avec une requete sur ces tables?

Christophe Vergon

"thierry" a écrit dans le message de news:


nonjour,

j'essaye de programmer en VB6 avec DAO. Quand je lire une table d'une
base de donnée, je la mets dans un recodset. Jusque là ça va. par
contre, quand je veus lire dans plusieurs tables, je charge chaque
table dans un recordset, puis je fais des recherches .

en fait, je souhaiterais pouvoir mettre dans un recodset, le résultat
d'un select qui serait fait sur plujsieurs tables.

1 petite idée???

Cordialement

Thierry







Avatar
Christophe
re,

DAO est fait pour travailler avec Access. Tu peux ouvrir une requete en
précisant la chaine sql, pour ça d'autres t'expliquerons.
Je travail avec les requetes nommées.
cad que je cree la requete sous access puis je l'appel par son nom dans le
code VB, ceci à l'avantage de la rapidité et de la facilité de débogage (et
en plus tu peux ne rien connaitre à SQL ça marche).Ne pas oublier d'affecter
la nature des parametres sous access (long, double etc ...)
Voici un exemple extrait de mon code que je te commente.

'verifie si un point caracterisé par son nom est dans une feuille

Public Function PinFeuille(IDfeuille&, nom As String) As Boolean
Dim bd As Database 'objet base de donnée
Dim rq As QueryDef ' objet requete
Dim rst As Recordset

Set bd = OpenDatabase(Emplacementbase) 'j'ouvre la base de donnée
Set rq = bd.QueryDefs("Rqnumpointliaisonfeuille") 'dans la collection des
requete de ma bd 'j'affecte la requete dont le nom est "Rq...."
rq.Parameters("idfeuille") = IDfeuille& ' j'affecte les parametres de la
requete
rq.Parameters("nom") = nom
Set rst = rq.OpenRecordset 'j'ouvre la requete dans un recordset

If Not (rst.EOF And rst.BOF) Then 'si la requete n'est pas vide
PinFeuille = True 'le point est dans la feuille
Else
PinFeuille = False 'requete vide le point n'est pas dans la feuille
End If
Set rst = Nothing ' je supprime les objets
Set rq = Nothing
Set bd = Nothing

End Function


Christophe Vergon

"thierry" a écrit dans le message de news:


ben en fait, je ne comprends pas trop comment je pourrais faire une
requête , puis la mettre dans un recordset


Le Mon, 26 Jan 2004 16:41:06 +0100, "Christophe" a
écrit :

>Bonjour,
>
>Et avec une requete sur ces tables?
>
>Christophe Vergon
>
>"thierry" a écrit dans le message de news:
>
>>
>> nonjour,
>>
>> j'essaye de programmer en VB6 avec DAO. Quand je lire une table d'une
>> base de donnée, je la mets dans un recodset. Jusque là ça va. par
>> contre, quand je veus lire dans plusieurs tables, je charge chaque
>> table dans un recordset, puis je fais des recherches .
>>
>> en fait, je souhaiterais pouvoir mettre dans un recodset, le résultat
>> d'un select qui serait fait sur plujsieurs tables.
>>
>> 1 petite idée???
>>
>> Cordialement
>>
>> Thierry
>>
>>
>



Avatar
thierry
Le Mon, 26 Jan 2004 19:06:28 +0100, "Christophe" a
écrit :

ok, je me mets à éssayer de faire cela

re,

DAO est fait pour travailler avec Access. Tu peux ouvrir une requete en
précisant la chaine sql, pour ça d'autres t'expliquerons.
Je travail avec les requetes nommées.
cad que je cree la requete sous access puis je l'appel par son nom dans le
code VB, ceci à l'avantage de la rapidité et de la facilité de débogage (et
en plus tu peux ne rien connaitre à SQL ça marche).Ne pas oublier d'affecter
la nature des parametres sous access (long, double etc ...)
Voici un exemple extrait de mon code que je te commente.

'verifie si un point caracterisé par son nom est dans une feuille

Public Function PinFeuille(IDfeuille&, nom As String) As Boolean
Dim bd As Database 'objet base de donnée
Dim rq As QueryDef ' objet requete
Dim rst As Recordset

Set bd = OpenDatabase(Emplacementbase) 'j'ouvre la base de donnée
Set rq = bd.QueryDefs("Rqnumpointliaisonfeuille") 'dans la collection des
requete de ma bd 'j'affecte la requete dont le nom est "Rq...."
rq.Parameters("idfeuille") = IDfeuille& ' j'affecte les parametres de la
requete
rq.Parameters("nom") = nom
Set rst = rq.OpenRecordset 'j'ouvre la requete dans un recordset

If Not (rst.EOF And rst.BOF) Then 'si la requete n'est pas vide
PinFeuille = True 'le point est dans la feuille
Else
PinFeuille = False 'requete vide le point n'est pas dans la feuille
End If
Set rst = Nothing ' je supprime les objets
Set rq = Nothing
Set bd = Nothing

End Function


Christophe Vergon

"thierry" a écrit dans le message de news:


ben en fait, je ne comprends pas trop comment je pourrais faire une
requête , puis la mettre dans un recordset


Le Mon, 26 Jan 2004 16:41:06 +0100, "Christophe" a
écrit :

>Bonjour,
>
>Et avec une requete sur ces tables?
>
>Christophe Vergon
>
>"thierry" a écrit dans le message de news:
>
>>
>> nonjour,
>>
>> j'essaye de programmer en VB6 avec DAO. Quand je lire une table d'une
>> base de donnée, je la mets dans un recodset. Jusque là ça va. par
>> contre, quand je veus lire dans plusieurs tables, je charge chaque
>> table dans un recordset, puis je fais des recherches .
>>
>> en fait, je souhaiterais pouvoir mettre dans un recodset, le résultat
>> d'un select qui serait fait sur plujsieurs tables.
>>
>> 1 petite idée???
>>
>> Cordialement
>>
>> Thierry
>>
>>
>