cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 16 déc. 2005 à 16:28
... pas d'écho ...
Les Winsocks ne savent transmettre que des String.
Il faut donc convertir ton RS en String.
Je te propose cette fonction.
Tu auras juste à la lancer avec ceci (par exemple) :
Winsock1.SendData RecordSetToString(leRSdeTravail)
à la réception, tu n'auras plus qu'à retransformer cette chaine en RS.
Je te laisse faire.
Private Function RecordSetToString(ByRef monRecordSet As ADODB.Recordset, _
Optional ByVal SéparateurColonnes As String = vbTab, _
Optional ByVal SéparateurLignes As String = vbCrLf) As String
Dim nbColonnes As Integer
Dim ChaineSortie As String
Dim r As Long, t As Long
' Transformation d'un RecordSet en une Chaine unique
If monRecordSet.RecordCount > 0 Then
With monRecordSet
' Récupère la structure
nbColonnes = .Fields.Count
.MoveFirst
ChaineSortie = ""
t = 0
Do While Not .EOF
' Pas de séparateur au début de la 1ere colonne
ChaineSortie = ChaineSortie & CStr(.Fields(0).Value)
' Colonnes suivantes
For r = 1 To nbColonnes - 1
ChaineSortie = ChaineSortie & _
SéparateurColonnes & _
CStr(.Fields(r).Value)
Next r
' Ligne terminée
ChaineSortie = ChaineSortie & SéparateurLignes
' Incrémente n° de ligne
t = t + 1
' Enregistrement suivant
.MoveNext
Loop
End With
End If
' Renvoie le résultat
RecordSetToString = ChaineSortie
End Function
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)