Uu, me la se con naranjas no con manzanas, pero al ser ambas frutas quiza puedas ajustarlo. En VB6 seria asi:
Por ejemplo paso el control DataCombo y una variable para saber cual consulta ejecutar
Call CargarDC(DataCombo1, 1)
Y el sub seria
Public Sub CargarDC(DCmb As DataCombo, Query As Integer)
Dim rs As New ADODB.Recordset
Select Case Query
Case 1: sql = "SELECT Id as COD, * FROM filtros WHERE tipo= 'RUBRO'"
Case 2: sql = "SELECT Idrubro as COD, * FROM filtros WHERE tipo= 'SUB-RUBRO'"
Case 3: sql = "SELECT Idmarca as COD, * FROM filtros WHERE tipo= 'MARCA'"
End Select
rs.Open sql(), dB, 1, 1
Set DCmb.RowSource = rs
With DCmb
.ListField = "nombres"
.BoundColumn = "COD"
End With
End Sub
Mas o menos esa es la idea
Saludos