Access - recordset

 
Vista:

recordset

Publicado por Félix (183 intervenciones) el 28/06/2007 09:37:54
wenas hoy me toco una pregunta recordset:
resulta que quiero hacer un recorrido de una tabla y acceder a los registros que desee, lo unico que e podido lograr despues de quemar los fusibles es esto.....

dim ex
Set ex = CurrentDb.OpenRecordset("SELECT * FROM mitabla")
fech = ex!micampo

pero solo consigo el principio de la tabla, cual seria la formula para ir a un numero especifico del registro de la tabla?

gracias de antemano, Saludos: Felix

Pdt: esta semana me toco preguntar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:recordset

Publicado por Enrique (1299 intervenciones) el 28/06/2007 16:16:13
Hola Felix:
Seguramente tu tabla tendrá en cada registro un Campo que sea único, es decir que no se repita, un Id como por ejemplo IdCliente, NroCliente, NroFicha, etc.

Dim ex As DAO.Recordset
Set ex = CurrentDb.OpenRecordset("SELECT * FROM mitabla Where IdCliente =" & Me.IdCliente, dbOpenDynaset)
fech = ex!micampo
ex.Close: Set ex = Nothing '<-- Es importante cerrar y "limpiar" el Recordset

El segundo IdCliente (Me.IdCliente) es un campo en el Formulario que tendrá valor igual al campo del registro que quieres buscar en la Tabla, o sea, la condición para el Where del Select. El dbOpenDynaset del final solo será necesario si luego deseas modificar el campo que te has traido de la tabla y volver a grabarlo en ella mediante ex.Update, pero si solo es para lectura, no es necesario.

Prueba ahora a ver si anda. Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recordset

Publicado por Félix (183 intervenciones) el 28/06/2007 18:34:19
wenas otra vez Enrrique

Acces me dice que el uso de la palabra code Me. no es valido y si la quito me dice no se a definido variable, y no

Dim ex As DAO.Recordset
Set ex = CurrentDb.OpenRecordset("SELECT * FROM mitabla Where IdCliente =" & Me. IdCliente, dbOpenDynaset)
fech = ex!micampo
ex.Close: Set ex = Nothing '<-- Es importante cerrar y "limpiar" el Recordset

QUE estoy haciendo mal??

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recordset

Publicado por Enrique (1299 intervenciones) el 28/06/2007 19:25:33
Felix, ya sabes que el Me. delante de un campo no es necesario ponerlo, pero facilita la busqueda del campo ya que al pulsar el punto se abre la ventana de propiedades y evitamos errores al teclearlo. Si al quitarlo te dice que no se ha definido la variable, es porque no tienes ese campo en el formulario y Access cree que tratas de poner una variable no definida, o el campo se llama de otra forma; IdCliente lo puse como un ejemplo tanto en la Tabla como en el Formulario y además no tienen porqué llamarse igual, puedes tener un Campo IdCliente en la tabla y en el Formulario llamarse NroFicha.
El que vá antes del Where es el de la Tabla y el que vá después es el del Formulario y en este caso, ambos tienen que ser Numéricos.

Resumiendo, se necesita un campo en el Formulario del mismo tipo que el de la tabla que servirá de condición para buscar un registro cuyo campo X sea igual al que muestra el formulario. Me cuesta creer que con tus conocimientos de Access, no consigas resolver esto tan simple.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recordset

Publicado por felix (23 intervenciones) el 28/06/2007 20:17:17
ok enrrique, si deve ser por que lo filtro afanumerico, e de convertir caracter a numero ya mirare de trabajar ese filtro, te agradezco la ayuda de verdad ya que m sevira para mas proyectos.
saludos: Felix
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar