Vb SubFormulario

Hola he empezado a tocar el vb para hacer bases de datos, y no se exactamente como se hacen subformularios que muestren solo los registros filtrados por ejemplo por el campo ID = ID .
En access es muy sencillo pues lo hace sólito todo, pero me gustaría saber como se hace en vb, he probado de copiar el código de uno al otro y hacer alguna cosa más pero no funciona.
Muchas gracias.

1 Respuesta

Respuesta
Es muy senzillo si utilizas ADO es mediante la propiedad del recordset filter. o bien abres el recordset con una consulta SQL donde ID=ID;
EJEMPLO
Public Sub FilterX()
Dim rstPublishers As ADODB.Recordset
Dim rstPublishersCountry As ADODB.Recordset
Dim strCnn As String
Dim intPublisherCount As Integer
Dim strCountry As String
Dim strMessage As String
' Abre un objeto Recordset con datos de la tabla Editores.
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
Set rstPublishers = New ADODB.Recordset
rstPublishers.CursorType = adOpenStatic
rstPublishers.Open "editores", strCnn, , , adCmdTable
' Llena el objeto Recordset.
intPublisherCount = rstPublishers.RecordCount
' Obtiene la entrada del usuario.
strCountry = Trim(InputBox( _
"Escriba el país por el que desea filtrar:"))
If strCountry <> "" Then
' Abre un objeto Recordset filtrado.
Set rstPublishersCountry = _
FilterField(rstPublishers, "País", strCountry)
If rstPublishersCountry.RecordCount = 0 Then
MsgBox "No hay editores de ese país."
Else
' Imprime el número de registros del objeto Recordset
' original y del objeto Recordset filtrado.
strMessage = "Pedidos del conjunto de registros original: " & _
vbCr & intPublisherCount & vbCr & _
"Pedidos del conjunto de registros filtrado (País = '" & _
strCountry & "'): " & vbCr & _
rstPublishersCountry.RecordCount
MsgBox strMessage
End If
rstPublishersCountry.Close
End If
End Sub
Public Function FilterField(rstTemp As ADODB.Recordset, _
strField As String, strFilter As String) As ADODB.Recordset
' Establece un filtro sobre el objeto Recordset especificado y,
' después, abre un nuevo objeto Recordset.
rstTemp.Filter = strField & " = '" & strFilter & "'"
Set FilterField = rstTemp
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas