Nuevo registro en formulario

Ojala puedas responder mi pregunta
Estoy haciendo mi primer proyecto en access y creo haber avanzado bastante, sin embargo, tengo el siguiente problema
Tengo un formulario donde ingresare una orden de trabajo (num_ot, con un numero único, y un par de datos propios de la orden ( llamemoslos A-B-C para no complicar)
Este formulario tiene dos subformularios basados en consultas que traen datos (cantidades asocidas a este num_ot) que se despliegan muy bien. Con estas cantidades más los campos A-B-C hago cálculos que también se despliegan en cuadros de texto en el formulario. Hasta ahí todo muy bien
Al cargar este formulario, en el evento "al Abrir" he pedido que vaya a un nuevo registro por lo tanto, al cargar aparece todo en blanco
Lo primero que necesito es que por defecto el cuadro num_ot me ofrezca el numero siguiente para grabar un nuevo registro, esto es el máximo grabado hasta el momento +1
Si no quiero grabar un nuevo registro, sino que quiero ver y/o modificar los datos de un num_ot ya grabado, quisiera digitar este numero en el cuadro de texto num_ot, y, al hacer enter, que se llene el formulario (con la info de ese registro) tal como sucede al hacerlo moviéndome de un registro otro con las flechas de desplazamiento que ofrece por defecto el formulario
Gracias

1 respuesta

Respuesta
1
En el cuadro de texto num_ot pones, en origen del registro: =Máx([NombreCampo])+1
Para modificar un registro yo lo haría en otro formulario, poniendo un cuadro combinado donde apareciesen todos los registros que hemos grabado.
Gracias por la ayuda...
Si entiendo bien me dices que seria mejor hacer dos ofrmularios iguales, uno solo para ongresar nuevos registros, ¿y otro para modificar?
si es así, ¿Este ultimo formulario lo tendría que basar en una consulta a la tabla donde se almacenan los registros?
Insistiedo en la forma en lo planteaba, encontré en internet el siguiente código
' Buscar el registro que coincida con el control.
Dim rs As Object
'Se define un objeto Recorset
Set rs = Me.Recordset.Clone
'Este Recorset será una clonacion del recorset del formulario
rs.FindFirst "[num_ot] =" & Me![num_OT]
'Donde el campo [campo nombre] sea igual que el texto en Control_texto
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
'Si se a encontrado algun registro, el registro en el formulario será el mismo que el encontrado en Rs
¿Sin embargo donde esta el asterisco me arroja error 2115 "la función impide guardar los datos"?
Una vez más muchas gracias
Yo haría lo siguiente: Supongamos que la tabla se llama Codigos con los campos IdCodigo y Detalle. El formulario lo llamo Modificar. Creo un cuadro combinado de nombre selCodigo y en origen de la fila: SELECT IdCodigo FROM Codigos ORDER BY [IdCodigo];
Creo un cuadro de texto independiente que llamo vDetalle
En el cuadro combinado selCodigo en la acción Al hacer clic pongo un Procedimiento de Evento con el código:
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT IdCodigo, Detalle FROM Codigos WHERE IdCodigo='" & Forms!Modificar!selCodigo & "'")
Forms!Modificar!vDetalle = rs!Detalle
Forms! Modificar. Refresh
Creo un botón y en la acción Al hacer clic pongo un Procedimiento de Evento con el código:
DoCmd.RunSQL "Update Codigos set Detalle='" & Forms!Modificar!vDetalle & "' WHERE IdCodigo='" & Forms!Modificar!selCodigo & "'"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas