De access 97 a access 2000

Hola:
Tengo una aplicación en la que haciendo doble cliq en un campo del formulario me abre otro formulario con los datos completos de dicho registro. La instrucción que funcionaba en access97 es la siguiente.
----------------
Dim VId As String
VId = Forms!AgendaAñadir.OpenArgs
DoCmd.FindRecord VId, , True, , True, , True
------------------
Al transformar la aplicación a Access 2000 ha dejado de funcionar y me manda siempre al primer registro de la tabla.
Un saludo

3 respuestas

Respuesta
1
Claro el código cambio... utiliza esto, al abrir el formulario le puedes pasar el filtro.. osea la condición:
***********************
Dim VId As String
VId = "codreg = " & txtcodreg & ""
Docmd.OpenForm "MiotroFormulario", , , VID
*******************
HAber... aca abrire un formualrio (Miotrformualrio) filtrado por la variable VID... por una condicion, openform abre un formualrio... pero le mando una condcion (where)... que es la tercera despues del nombre... esta condicion (que seria por un campo llamado codreg que esta en el formulario) debo tener en cuanta si el campo es numerico, texto o fecha, ya que cada uno tendra una sintaxis diferente... el que te coloque era numerico e iria asi:
....= " & txtcodreg & "....
Comillas Dobles, espacio, ampersand (&), espacio, CONDICIÓN, espacio, ampersand, espacio, comillas dobles...
Lógico luego se cerrara las comillas dobles de la cadena...
Si fuera texto seria:
= '" & txtcodreg & "'...
Comillas sencillas, Comillas Dobles, espacio, ampersand (&), espacio, CONDICIÓN, espacio, ampersand, espacio, comillas dobles, comillas sencillas...
Y si fuera fecha:
= #" & Format(txtcodreg,"MM/dd/yyyy") & "#...
Acá se debe formatear la fecha, porque los filtros como las consultas se trabaja en formato Mes/dia/año...
Simboolo de numero(#), Comillas Dobles, espacio, ampersand (&), espacio, CONDICIÓN formateada COMO MES/DIA/AÑO,espacio, ampersand, espacio, comillas dobles, Simboolo de numero(#)...
Att:telemaco
Gracias.
Lo que realmente quiero es que me posicione dentro de la base de datos en el fichero seleccionado. La solución que me ofreces es crear un filtro de un solo registro. Quiero que el formulario abra con todos sus registros y presente en pantalla el seleccionado. De esa manera tengo acceso al resto de registros para otras posibles consultas. Lo importante en este caso es tener todos los registros disponibles en el mismo formulario después de haber seleccionado el que me interesa. Un saludo y muchas gracias.
Si disculpa, para que te muestre el registro seria:
***********************
Dim VId As String
VId = "codreg = " & txtcodreg & ""
Docmd. OpenForm "MiotroFormulario"
Forms("MiotroFormulario"). Recordset. FindFirst VId
*******************
Y se te abrirá en el registro que mencionas PERO SIN PERDER LOS OTROS... pudiendo ir a a cualquier otro..
Att:telemaco
Respuesta
1
Lo único que echo en falta en el código que trascribes es que se debe enfocar el campo en que se hace la búsqueda. A menos que este campo esté enfocado a priori, el código debería no funcionar correctamente.
Como no te da error, entiendo que está devolviendo la tabla en el primer registro como señal de que no encuentra nada.
Prueba a enfocar, situarte, en el campo a buscar antes de hacer FindRecord.
No se me ocurre otra cosa.
Respuesta
1
Lo tienes que adaptar de acuerdo a la nueva versión:
http://www.blueclaw-db.com/docmd_findrecord_example.htm
http://www.vb123.com/toolshed/98docs/bookmark.htm
http://www.tek-tips.com/faqs.cfm?fid=2006

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas