cs_Obi_1
Messages postés21Date d'inscriptionsamedi 28 mai 2005StatutMembreDernière intervention13 juin 2006
-
4 avril 2006 à 08:55
cs_Obi_1
Messages postés21Date d'inscriptionsamedi 28 mai 2005StatutMembreDernière intervention13 juin 2006
-
8 avril 2006 à 16:37
Bonjour,
J'ai un prog en VB6 qui se connecte à une base de données Access (connection à l'aide d'un objet DataEnvironment, Microsoft Jet 4.0). J'utilise des objets ADODB.RecordSet pour mettre les resultats de mes requetes, ce qui fonctionne sans problème pour le moment, mais j'aimerais maintenant utiliser un de ces RecordSet pour faire une autre requete...
Pour etre plus clair, voilà ce que j'ai essayé (Note: "Temp_Config" est une classe qui contient "Initial_RecordSet", de type ADODB.RecordSet):
DBConnection = DataEnvironment.Connection
rs1.Open "SELECT ....", DBConnection
rs2.Open "SELECT type FROM " & rs1, DBConnection
Le premier recordset rs1 est bien cree, mais pas rs2...comment faire une deuxième requete sur "type" à partir de rs1?? J'ai cherche sur le forum sans trop de succes jusqu'a present...mais je pense que ca doit etre possible de faire ce genre de requete en VB.
"SELECT Champ1 FROM Table1 UNION SELECT Champ2 FROM Table2;"
Attention, le schéma doit avoir au moins la même signature (mêmes champs, en nombre et en nom), et suivant les SGBDR, le même typage de la signature, dans les 2 (ou x) requêtes.
à+
rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
cs_Obi_1
Messages postés21Date d'inscriptionsamedi 28 mai 2005StatutMembreDernière intervention13 juin 2006 8 avril 2006 à 16:37
J'ai trouvé une solution sur un 2nd forum, je mets le code ici au cas où quelqu'un a le meme probleme que moi. C'est une fonction qui concatene plusieurs recordsets mis en parametres, en utilisant xml (il faut ajouter la reference XML, version 2.0):
Function ConcatRecordsets(ParamArray RecSets()) As ADODB.Recordset
Dim SourceDOM As MSXML.DOMDocument
Dim DestDOM As MSXML.DOMDocument
Dim DestDataNode As MSXML.IXMLDOMNode
Dim SourceRowNode As MSXML.IXMLDOMNode
Dim SourceRowNodes As MSXML.IXMLDOMNodeList
Dim rs As Variant
For Each rs In RecSets
If DestDOM Is Nothing Then
Set DestDOM = Nothing
Set DestDOM = New MSXML.DOMDocument
rs.Save DestDOM, adPersistXML
Set DestDataNode = DestDOM.selectSingleNode("xml/rs:data")
Else
Set SourceDOM = Nothing
Set SourceDOM = New MSXML.DOMDocument
rs.Save SourceDOM, adPersistXML
Set SourceRowNodes = SourceDOM.selectNodes("xml/rs:data/z:row")
For Each SourceRowNode In SourceRowNodes
DestDataNode.appendChild SourceRowNode.cloneNode(True)
Next
End If
Next
Dim rsFinal As ADODB.Recordset
Set rsFinal = New ADODB.Recordset
rsFinal.Open DestDOM