border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

  #1 (permalink)  
Antiguo 28-09-2007, 14:50:43
Junior Member
Site Admin
 
Registrado: ago 2007
Ubicación: Buenos Aires
Posts: 7
javier1704 Valoración +2
Predeterminado Ir a ...

Hola!
Quisiera saber como hago para encontrar un registro determinado de mi base de datos sin tener que recorrer uno por uno.
Es decir, quiero posicionarme en el registro que busco con solo escribir un patron de busqueda.


Muchas Gracias
Saludos
__________________
Javier
(javiergelberg@ciudad.com.ar)
Responder Con Cita
  #2 (permalink)  
Antiguo 28-09-2007, 14:53:09
Buena Participación en el Foro
 
Registrado: sep 2007
Posts: 88
Critical Error Valoración +2
Predeterminado

Utiliza el metodo "FindFirst". Te pongo el ejemplo de la ayuda de VB:

Código:
Este ejemplo utiliza los métodos FindFirst, FindLast, FindNext y FindPrevious para mover el puntero del registro de un objeto Recordset basado en una cadena de búsqueda suministrada y un comando. Se necesita la función EncontrarCualquiera para ejecutar este procedimiento.

Sub FindFirstX()

	Dim dbsNeptuno As Database
	Dim rstClientes As Recordset
	Dim strPaís As String
	Dim varMarcador As Variant
	Dim strMensaje As String
	Dim intComando As Integer

	Set dbsNeptuno = OpenDatabase("Neptuno.mdb")
	Set rstClientes = dbsNeptuno.OpenRecordset( _
		"SELECT NombreCompañía, Ciudad, País " & _
		"FROM Clientes ORDER BY NombreCompañía", _
		dbOpenSnapshot)

	Do While True
		' Obtiene una entrada del usuario y construye la cadena de búsqueda.

strPaís = _
			Trim(InputBox("Introduzca el país a buscar."))
		If strPaís = "" Then Exit Do
		strPaís = "País = '" & strPaís & "'"

		With rstClientes
			' Llena el Recordset.
			.MoveLast
			' Encuentra el primer registro que coincide 
			' con la cadena de búsqueda. Sale del bucle si no existe ningún registro.
			.FindFirst strPaís
			If .NoMatch Then
				MsgBox "No se encontraron registros con " & _
					strPaís & "."

Exit Do
			End If

			Do While True
				' Almacena el marcador de posición del registro actual.
				varMarcador = .Bookmark
				' Obtiene la elección del usuario del método a utilizar.
				strMensaje = "Compañía: " & !NombreCompañía & _
					vbCr & "Ciudad: " & !Ciudad & ", " & _
					!País & vbCr & vbCr & _
					strPaís & vbCr & vbCr & _
					"[1 - Primero, 2 - Último, " & _
					vbCr & "3 - Siguiente, " & _

"4 - Anterior]"
				intComando = Val(Left(InputBox(strMensaje), 1))
				If intComando < 1 Or intComando > 4 Then Exit Do

				' Utiliza el método Find seleccionado. Si 
				' falla Find, vuelve al último registro actual.
				If EncontrarCualquiera(intComando, rstClientes, _
						strPaís) = False Then
					.Bookmark = varMarcador
					MsgBox "No hay coincidencias –volviendo al " & _
						"registro actual."
				End If

Loop

		End With

		Exit Do
	Loop

	rstClientes.Close
	dbsNeptuno.Close

End Sub

Function EncontrarCualquiera(intChoice As Integer, _
	rstTemp As Recordset, _
	strEncontrar As String) As Boolean

	' Utiliza el método Find basado en la entrada del usuario.
	Select Case intChoice
		Case 1
			rstTemp.FindFirst strEncontrar
		Case 2
			rstTemp.FindLast strEncontrar
		Case 3
			rstTemp.FindNext strEncontrar

Case 4
			rstTemp.FindPrevious strEncontrar
	End Select

	' Establece el valor devuleto basado en la propiedad NoMatch.
	EncontrarCualquiera = IIf(rstTemp.NoMatch, False, True)

End Function

Copyright (c) 1996 Microsoft Corporation
Saludos.
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado



La franja horaria es GMT. Ahora son las 22:52:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right