Auto rellenar una tabla a partir de un nuevo registro (ciclo repetido de datos)

Tengo un listado de nombres limitados a 5 personas ¿como se puede hacer que con un registro nuevo se complete automáticamente los registros con los nombres en la tabla.

Por ejemplo (tabla 1)

Id nombre

1 luis

2 pedro

3 carlos

4 carmen

5 augusto

Y de aquí que se autorellene la tabla

6 luis

7 pedro

8 carlos

1 Respuesta

Respuesta
2

Mia, tendrías que extender más la explicación.

1º ¿Te refieres a que, desde algún lado, del que luego hablaremos, cada vez que "hagas algo" te inserte en esa tabla Clientes, los nombres de esos cinco "clientes". Si es eso, en el formulario que sea, en sus propiedades-eventos-Al activar el registro tendrías que crear un procedimiento de evento y entre Private Sub y End poner

if me.newrecord then

docmd.setwarnings false

docmd.runsql"insert into clientes select nombre from clientes where id<=5"

end if

Es decir, si el registro del formulario es nuevo inserta en la tabla clientes los nombres de los 5 primeros.

En caso de el propio formulario estuviera basado en esa tabla Clientes deberías añadir una línea después de Docmd. Runsql

Me. Requery

2º Puedes hacerlo con una consulta de datos anexados y debajo del campo Id, que estaría desmarcado, poner, en la casilla criterios

<=5

Y o bien cada vez que quieras anexar haces doble clic sobre la consulta o bien el código de arriba lo dejas como

if me.newrecord then

docmd.setwarnings false

docmd.openquery"nombre consulta"

end if

En fin, si pudieras concretar algo más que es lo que quieres hacer.

Como estás experto, mira tengo un formulario dónde ingreso los datos de mis clientes nombres cédulas etc, en el mismo formulario tenía habilitado la opción de asignar cada cliente nuevo a un asesor de call Center (son 5) pero resulta que el encargado de ingresar la información asignaba a unos pocos y a otros más no era equitativo, de ahí surgió la necesidad de que cada vez que ingrese un nuevo registro se asigne automáticamente a cada uno de los asesores  para que todo sea equitativo 

Mí formulario se llama: formulario_ingreso

Mí tabla 1se llama: Datos

Los campos de la tabla son: id, nombre cliente, cedula, dirección, telefono, ciudad, producto

Y también genere otra tabla con el nombre: trabajadores donde incluye el listado de las cinco personas 

Agradezco tu muy gentil ayuda experto

Aún así, hay mil formas de hacerlo. Te digo que lo que más o menos haría, pero tiene que se tu necesidad lo que dicte que hay que hacer. Supongamos que tengo una tabla Datos como la que dices y supongamos que tengo una tabla Trabajadores como

Creo una tabla a la que llamo Asignados, donde me va a guardar el IdCliente y los trabajadores que se le asignan( por si algún día aumentara el numero de trabajadores). Con esta tabla hago un formulario continuo(tampoco sería necesario, pero lo pongo parea que veas como se rellena la tabla).

Con la tabla datos hago un formulario y "dentro de el" le pongo el pongo el formulario Asignados y los relaciono, elk formulario por Id y el "subformulario" por Idcliente. De forma que te quede algo así( insisto en que el subformulario no sería necesario)

Cuando pulso el botón( aunque tampoco sería necesario, ya que se puede poner la instrucción en el evento Antes de actualizar del cuadro de texto NombreCliente)

O sea, el Cliente Martin ya tiene asignados esos 5 empleados, y aunque alguien intentara borrar un nombre del subformulario no podría porque está en modo sólo lectura. El código del botón

Es

Private Sub Comando13_Click()
If DCount("*", "asignados", "cedula='" & Me.Cedula & "'") Then
MsgBox "Ese cliente ya tiene asignados los trabajadores", vbOKOnly + vbInformation, "No haré nada"
Exit Sub
Else
DoCmd.SetWarnings False
DoCmd.RunSQL "insert into asignados select trabajador from trabajadores"
DoCmd.RunSQL "update asignados set idcliente=" & Me.Id & " where idcliente is null"
Me.Asignados.Form.Requery
End If
End Sub

El código puede parecer un poco largo. Te explico. Cuando pulsas el botón, lo primero que hace es comprobar que ese cliente no tenga ya trabajadores asignados en la tabla Asignados. Imagínate que un día le asignas trabajadores a un cliente. Pasan los días y por error vuelves a "dar de alta" al mismo. Para evitar que en la tabla tengas asignados dos veces trabajadores al mismo cliente los cuenta. Si ya existe te sale un mensaje y no sigue. Por el contrario, si el cliente no tiene asignados, los pasa a la tabla y te los muestra en el subformulario.

Pero como te decía hay mil formas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas