'Crea una consulta y la regresa como un recordset
Public Function crearConsulta(baseDeDatos As String, sql As String) As Recordset
Dim bd As Connection, rs As Recordset
Set bd = New Connection
Set rs = New Recordset
'Genera la cadena de conexión
bd.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
baseDeDatos & ";Persist Security Info=False"
'Abre la base de datos
bd.Open
'Se la asigna al recordset
rs.Open sql, bd, adOpenKeyset, adLockOptimistic
If rs.recordCount > 0 Then _
rs.MoveFirst
'Regresa el recordset
Set crearConsulta = rs
End Function
'Llena un comboBox con un campo de un recordset
Public Sub LlenarComboRs(rs As Recordset, Campo As Integer, combo As Object)
Dim aux As Long
'Limpia el combo
combo.Clear
'Si esta situado en un registro
If rs.recordCount > 0 Then
With rs
'Guarda la posicion en la k esta el recordset
aux = .AbsolutePosition
'Se mueve al primero para ir uno por uno hasta el final
.MoveFirst
While (Not .EOF)
'Agrega el elemento al combo y pasa al siguiente
combo.AddItem .Fields(Campo)
.MoveNext
Wend
'Se regresa al primero, y despues al que estaba cuando se llamó la función
.MoveFirst
.Move aux - 1
End With
End If
combo.Text = "Seleccione"
End Sub