sql server – ¿Cómo llenar datos en un datagrid en vb 6.0?

Estoy tratando de llenar el DataGrid con datos de un procedimiento almacenado y me sale el siguiente error :

La operación no esta permitida si el objeto esta abierto

Script

Option Explicit
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cmd As ADODB.Command
Dim strconnect As String

Private Sub cmdBuscar_Click()
frmListadoSolicitudes.Show vbModal
Call obtenerListadoSolicitudes
End Sub

Private Sub Form_Load()
    strconnect = "Provider=SQLOLEDB;Data Source=x.x.x.x; Initial Catalog=xxxxxxxx;User Id=xx;Password=xxxx"
    con.Open strconnect
    
End Sub

Private Sub obtenerListadoSolicitudes()

Set cmd = New ADODB.Command
cmd.ActiveConnection = con
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "sp_listar_Sol_exp"

Set rs = cmd.Execute
rs.CursorType = adOpenStatic

Set frmListadoSolicitudes.dgListadoSolicitudes.DataSource = rs

 Set cmd.ActiveConnection = Nothing

End Sub

Agradecería me pudieran ayudar a como resolver este problema y cual es la mejor forma de declarar la conexión ya que en varios ejemplos he visto que usan modulo. Es la primera vez que veo temas de visual basic 6.0 y se me complica hacer un simple listado.