Campo alfanumérico consecutivo en access

Es posible tener un campo alfanumérico consecutivo con formato NS-000000, necesito este campo para identificar mis notas de salidas en mi base de datos.

2 Respuestas

Respuesta
1

Puede hacerlo con una función, le dejo 2 formas

1. Forma - Con la función de dominio Dmax()

Function sgtfac() As String
  '1- FORMA
 Dim aux As String
 aux = Nz(DMax("nrofactura", "tabla1", "Right([nrofactura], 6)"))
 If aux = "" Then
  sgtfac = "NS-000001"
 Else
  sgtfac = "NS-" & Format(Right(aux, 6) + 1, "000000")
 End If
End Function

2- Forma - Con un recordset

Function sgtfac_2() As String
  '2- FORMA
  Dim rs As Recordset
  Dim strSQL As String
  strSQL = "SELECT 'NS-'& Format(Nz(Max(Right([nrofactura],6)))+1,'000000') AS Siguiente FROM Tabla1;"
  Set rs = CurrentDb.OpenRecordset(strSQL)
  sgtfac_2 = rs.Fields("Siguiente")
  rs.Close
  Set rs = Nothing
End Function

Reemplace Tabla1 por el nombre de su tabla y nrofactura por el nombre del campo consecutivo.

Respuesta
1

Supongamos que tengo la tabla Salidas como

Y con ella tengo un formulario, te lo pongo continuo porque se ve mejor como trabaja, pero daría exactamente igual que fuera formulario único, y a medida que voy rellenado registros

Puedes ver que el cursor aún está en el campo FechaSalida. En cuanto pulso Enter

En este caso, el código del evento Después de actualizar del cuadro de texto FechaSalida es

Private Sub FechaSalida_AfterUpdate()
If Me.NewRecord Then
Dim aux As String
aux = Format(Nz(DMax("right(idsalida,6)", "salidas")) + 1, "000000")
IdSalida = "NS" & "-" & "" & aux & ""
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas