Access - Creador números de registro

 
Vista:

Creador números de registro

Publicado por PAM (13 intervenciones) el 21/05/2007 14:05:56
Tengo definida una consulta llamada "Consulta NUMREG" que me obtiene el siguiente número de registro de una tabla:
SELECT Max([REGISTRO FACTURAS EJECUCION SENTENCIAS].[Orden Factura])+1 AS NUMREG
FROM [REGISTRO FACTURAS EJECUCION SENTENCIAS];

En una form cuyos datos se obtienen de una SELECT ..., cuando se inserta un nuevo registro quiero que me aparezca por defecto ese nuevo número de registro en un "campo_numreg" de la form y para ello he puesto en la propiedad "Valor predeterminado" lo siguiente "=[Consulta NUMREG]![NUMREG]" pero cuando ejecuto la form y añado un núevo registro, en el campo "campo_numreg" de la form aparece lo siguiente "#¿Nombre?" y no el valor correspondiente a NUMREG.
¿Alguien sabe que está pasando?
Gracias.
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:Creador números de registro

Publicado por Pepe (766 intervenciones) el 21/05/2007 15:22:20
Pam, eso te pasa poruque cuando abres el formulario la conulta esta cerrada.

Prueba a incluir la consulta como un subformulario, y dale como valor predeterminado el valor del subformulario.

Como no querras que el subformulario se vea, en propiedades ponle visible No

Pepe
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
sin imagen de perfil

RE:Creador números de registro

Publicado por marcelo hidalgo (166 intervenciones) el 22/05/2007 17:02:20
Supongamos que la Tabla de con los números de orden de factura se llama

Tabla : OrdenesDeFacturas, y el Campo que se debe incrementar es NumOrdenFactura, yo colocaría la siguiente rutina en VB en algún control o al abrir el formulario o en el evento que se necesite...

Dim veDatosTbl As Long
Dim ctaDatosTbl As Long

veDatosTbl = DCount("NumOrdenFactura", "OrdenesDeFacturas")

If veDatosTbl = 0 Then

ctaDatosTbl = 1

ElseIf veDatosTbl > 0 Then

ctaDatosTbl = DMax("NumOrdenFactura", "OrdenesDeFacturas") + 1

EndIf

' Asigna directamente el valor calculado en la variable al cuadro de texto que
' tiene como origen el campo de la tabla

NumOrdenFactura.Value = ctaDatosTbl

Es parecido al concepto que tu usas pero NO HAY ninguna consulta ni subformulario de por medio, las funciones agregadas de dominio (mínimo, máximo, suma, cuenta, promedio, buscar, etc) se usan directamente en el código VB. Mi consejo es simplificar al máximo los procesos, pequeños requerimientos, pequeñas soluciones
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:Creador números de registro

Publicado por PAM (13 intervenciones) el 29/05/2007 09:01:34
Muchas gracias, ha funcionado esta segunda opción.
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