Insertar registros de varios países

Quizás no formule bien la pregunta pero es que no supe como hacerlo, pero te explico :
Tengo una tabla de empleados en la cual se registran hasta ahora los empleados de Mexico y se identifican por IdEmp
001
002
003
004
005
006
, el punto es quiero agregar empleados de otros paise por ejemplo Perú y Chile, pero que cuando agregue a dichos empleados, comience de nuevo el conteo del IdEmp, es decir, por ejemplo si llevo cinco registros de Perú :
001
002
003
004
005
Y así con los demás países que llegue a insertar y que todo esto quede en la mima tabla llamada empleados para poder hacer las consultas, reportes y formularios por país y nohacer una tabla para cada país.
Claro esto tomando en cuenta que un campo de dicha tabla lo tomare para identificar el país donde trabaja y poder saber en que país ubicarlo a la hora de la consulta.
Es posible, espero tu respuesta y en verdad tu ayuda siempre es muy buena.

1 respuesta

Respuesta
1
Tendremos una tabla que llamamos Empleados con dos campos IdPais e IdEmpleado (más los campos que quieras añadir, obviamente) en el formulario un cuadro combinado, a este cuadro lo llamaré selPais, en sus propiedades en origen de la fila pondremos Select IdPais from Empleados group by IdPais order by IdPais (si tienes problemas al escribir la sql picas en el cuadrado de la derecha y construyes la consulta en la que basamos el cuadro combinado) después en el evento al hacer clic ---> Procedimiento de evento ---> Picas en el cuadrado de la derecha, el de los ... y pones el código Me. Refresh (para que cuando elijas el país se actualice el formulario).
En el cuadro de texto, en el que damos el valor de IdEmpleado, que llamaremos selEmpleado en propiedades, en el evento Al recibir el enfoque ---> Procedimiento de evento ---> Picas en el cuadrado de la derecha y pones éste código:
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Select * from Empleados where idPais='" & form!selPais.value & "'")
If rs.EOF Then
Form!IdEmpleado.Value = 1
Else
Set rs = db.OpenRecordset("Select Max(IdEmpleado) AS Mayor from Empleados where idPais='" & form!selPais.value & "'")
Form!IdEmpleado.Value = rs!Mayor + 1
End If
Como lo he planteado el campo IdEmpleado tendrá que ser numérico, si lo quieres de texto, cuando esto funcione, lo convertiremos.
El campo IdEmpleado lo tengo como texto en estos momentos, ¿puedo llevar a cabo lo que has planteado sin problemas?
Slds.
No, ya que tenemos que sumar y en un campo de texto no se puede, pásalo a numérico y después lo convetiremos a texto en otro campo que creemos, si es necesario.
Hola de nuevo,
He optado por crear la tabla para cada país pero ahora mi pregunta es la siguiente, supongamos que tengo la tabla Mexico y Perú y 4 más y quiero quiero elaborar un cuadro de dialogo que me diga que país deseo y de acuerdo a ese país me muestre solo los registros de esa tabla en un formulario, si escojo perú que solo muestre empleados de Perú, pero el formulario lo quiero ocupar uno solo para cualquier país que se escoja, no quiero elaborar un formulario por cada tabla ya que son siete formularios, entonces eso siete formularios solo ligarlos de acuerdo al país que se escogió.
¿Qué puedo hacer?
Gracias por tu ayuda.
En principio no me parece buena idea, me parece mejor el tener todo en una tabla, porque... ¿qué harás si quieres un total de empleados por país? O un informe con todos los países, por no decir que aumenten los países... ¿seguirás creando tablas...? Bueno, si sigues con esa idea por lo menos supongo que a las tablas las habrás llamado igual que los países y entonces en el cuadro combinado tendrás que referirlo a una tabla nueva con el nombre de esos países para cuando elijas en el cuadro combinado el nombre del país nos sirva como variable.
Pero no se... creo que va a ser más complicado y sobre todo menos útil.
Si lo que tienes son dudas sobre el código que te dí anteriormente, pregúntame y te lo explico.
Ok, tienes razón Angeles es son buenos puntos los que tocas, regresando al código te comente que yo tenia el IdEmp como texto para pasarlo a numérico lo hago con la siguiente función:
SELECT Empleados.*, Empleados.IdEmp=Val([Empleados.IdEmp]) AS Expr1
FROM Empleados;
Y si se ejecuta pero no noto ningún cambio, ¿es correcta mi consulta?
Gracias
De todos modos aunque en la consulta lo pongas como numérico, no te vale, ya que es en el propio campo donde tienes que sumar 1 en cada registro que se genere.
Un consejo, nunca pongas relaciones entre tablas predeterminadas, es decir al principio, te digo por experiencia que no funcionan bien, access tiene muchas cosas buenas, pero esta en particular no lo es, es mejor que crees las relaciones entre tablas cuando lo necesites, en las consultas, formularios... etc.
Me cuentas.
Angeles, eh convertido el IdEmpleado en numérico, no me dejaba porque la tabla tenia relaciones pero como voy comenzando el proyecto las elimine y ya pude cambiar el tipo de dato desde la tabla, olvida la consulta.
Ya te contesté.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas