Les comento que lo solucione, al final lo deje así y me funciona al pelo
  Código PHP:
    Private Sub DataEspecialidad_Click(Area As Integer)
Dim rsConsulta7 As ADODB.Recordset
Dim strVALOR_ESP As String
Set rsConsulta7 = New ADODB.Recordset
 
strVALOR_ESP = DataEspecialidad.BoundText
 
SQL = "SELECT * FROM Medicos WHERE NombreEspecialidad = '" & DataEspecialidad.BoundText & "' ORDER BY NombreMedico;"
rsConsulta7.Open SQL, cnn, adRsnAddNew, adLockReadOnly, adCmdText
    
If rsConsulta7.EOF = False Then
 
        Set DataMedico.RowSource = rsConsulta7
        Set DataMedico.DataSource = rsConsulta7
            DataMedico.ListField = "NombreMedico"
            DataMedico.DataField = "NombreMedico"
            DataMedico.BoundColumn = "NombreMedico"
      
            DataMedico.Refresh
            rsConsulta7.MoveNext
        
End If
End Sub 
    
  Una de las diferencias es que antes yo tenía:
rsConsulta7.Open SQL, cnn, adOpenForwardOnly, adLockReadOnly ', adCmdText 
y cambie el 
adOpenForwardOnly por 
adRsnAddNew
despues agrege las propiedades de datos todas desde la sentencia.
Aunque esten agregadas desde la sentencia no funcionan, te traen solo el primer registro, por lo menos hasta que se ponga 
adRsnAddNew, cosa que la descubri solito (me siento orgulloso jaja), probando los distintos ad.
Saludos a todos, y gracias por su aportes, un abrazo grande!!!!
