Generar un numero en access

Hola, necesito tu ayuda en lo siguiente: tengo una base de datos en la que hay una tabla donde ingreso los datos de unas personas, (tipo identificación, cc, nombres, dirección, tel, etc) la llave es el numero de la cedula y este campo lo relaciono con otras tablas, pero resulta que en algunos casos cuando se va a registrar la persona esta no tiene identificación porque a veces la gente no se sabe el numero de la cedula de la persona que va a registrar (por ej: envían al hijo para registrar a la mama pero el hijo no se sabe la cc de la mama), entonces en el campo tipo identificación selecciono SIN IDENTIFICACIÓN, pero el campo de la cedula no puede quedar vacío. Lo que necesito es que cuando yo seleccione en el campo tipo_identificacion "SIN IDENTIFICACIÓN" el programa me genere un numero que puede ser consecutivo para el campo identificación, pero si yo selecciono en el campo tipo_identificacion por ejemplo "CEDULA DE CIUDADANÍA" pues que me permita en el campo cedula ingresar el numero de la cedula correspondiente. Espero haber sido clara en mi pregunta. De antemano mil gracias.
Respuesta
1
Entiendo que los datos los rellenas en un formulario. Pues bien, en el campo "tipo identificación", puedes poner un evento "al cambiar" que sea el que actualice el campo "CC". La idea es que se descargue el mayor valor de CC existente en la tabla para aquellos registros con TIPO IDENTIFICACION= "Sin Identificar", y actualice el campo en el formulario con ese valor + 1:
Dim ref As Recordset
Dim i As Integer
Dim consulta As String
consulta = "SELECT Max(Tabla.CC) AS MáxCC FROM Tabla GROUP BY Tabla.[Tipo identificacion] HAVING (((Tabla.[Tipo identificacion])='SIN IDENTIFICACION'));"
If [Tipo identificacion].Value = "Sin Identificacion" Then
    Set ref = CurrentDb.OpenRecordset(consulta)
    i = ref.RecordCount
    If i = 0 Then
        CC.Value = 1
    Else
        ref.MoveFirst
        CC.Value = ref.Fields(0).Value + 1
    End If
Else
    CC.Value = ""
End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas