Número correlativo automático dependiendo de un valor de otro textbox - Access 2007

Tengo una BD donde registro recepción y envío de correspondencia. Son 3 tablas: Entrada, Salida y Seguimiento. En la BD tengo previsto diseñar 2 formularios para ingreso de datos y un tercero para búsqueda. De momento he terminado con el primer formulario que registra los recibido y que posee un auto numérico (clave principal y textbox) que asigna un numero único a cada registro con el siguiente formato "ENT-2015-0001", en cual no se repite y vuelve a cero al iniciar un nuevo año gracias al siguiente código en el botón guardar:

Private Sub guardar_carga_Click()
Dim vAutonum As Variant, vUltimo As Variant
Dim vAño As Long
'Le damos a la var. VAño el valor del año actual
vAño = Year(Date)
'Cogemos el valor del campo ID (numeración)
vAutonum = Me.NRO_SALIDA.Value
'Si vAutonum no es nulo, es porque ya hay valor en el ID, entonces salimos del procedimiento
If Not IsNull(vAutonum) Then Exit Sub
'vUltimo es igual al máximo de los 4 últimos caracteres de la derecha del campo numeracion y cuyo año sea igual al actual'

vUltimo = Right(DMax("[NRO_SALIDA]", "ENTRADA DOCUMENTOS", "Mid(NRO_SALIDA, 5, 4)=" & vAño), 4)
'Si vUltimo es nulo, es porque no hay ningún ID, entonces le damos valor 0
If IsNull(vUltimo) Then
vUltimo = 0
End If
'Sumamos 1 al valor anterior
vUltimo = vUltimo + 1
Me.NRO_SALIDA.Value = "SAL-" & vAño & "-" & Format(vUltimo, "0000")
DoCmd.RunCommand acCmdSaveRecord
End Sub

Hasta aquí todo bien. Ahora mi consulta es en relación al Formulario de salida, donde además de generar una clave principal (utilizaré este mismo código con el formato SAL-2015-0001), debo asignar otro número -autoincrementable y que reinicie al comienzo de un nuevo año- que ira en un textbox con cada registro dependiendo del valor asignado en el campo "tipo de documento" (combobox), por ejemplo: si es una carta "CARTA/0001/2015", si es memo "MEMO/0001/2015", etc. Etc. Me imagino que no será nada fácil pero confío en que me podran orientar al respecto.

1 respuesta

Respuesta
2

Cristobal: Por lo que veo, no tienes dificultades en la generación del auto numérico en si.

Creo que solo tendrías que capturar el valor de la Variable que tengas en el Combo en ese momento.

Dim TipoDocumento As String

TipoDocumento = Me.NombreDeTuCombo

Me.NombreDeTuTextBox.Value = TipoDocumeto & " -" & vAño & "-" & Format(vUltimo, "0000")

Creo era eso. O no es así? Saludos >> Jacinto

¡Gracias!. El autonumérico lo conseguí hacer gracias a varios expertos y copiando y pegando código. La estructura del código que me sugieres no la conozco muy bien así que si no es molestia podrías orientarme al respecto por favor?. Según entiendo serán por lo menos 4 variables para cada tipo de valor del combobox. La pregunta ¿donde y con que sintaxis ubicar el código?. Espero sepas comprender que mi conocimiento de VBA no es el mejor. Gracias de nuevo!

Cristobal: Quizá mejor te preparo un ejemplo y te pongo el enlace aquí, pero dejame uno o dos días porque como siempre ando un poco justo de tiempo. Saludo >>Jacinto

¡Gracias Jacinto!

Cristobal: tal como te prometí, aquí tienes un enlace de una BD de ejemplo para generar los dos autos String.

http://www.mediafire.com/download/klv1kpn0ygo33o0/DobleAutoString.rar 

Creo que era éto lo que necesitabas. Saludos >> Jacinto

¡Gracias!. Me fijo y ahí te comento como me fue.

Hola JTJ!. He estado mirando el ejemplo que gentilmente me haz enviado y al adaptarlo a DB me salta el siguiente error, que por mis pobres conocimientos de VBA no lo sé solucionar:

StrCompleta = Nz(DMax("SIGLA_SALIENTE", "SALIDA DOCUMENTOS", Criterios), TipoDoc & "/" & Ceros & StrTermina)

Error 2471 La expresión que ha especificado como parámetro de la consulta produjo el error 'TipoDoc'

Por otro lado y habida cuenta que el código que tengo para el nro de salida funciona a la perfección (que es el que mas arriba te he mostrado), quisiera saber si cabría la posibilidad de adaptarme o anexarle solo la parte del código para el correlativo para el tipo de documento.

Gracias por tu tiempo y tu amable atención.

Cristobal: Con certeza es difícil saber de donde viene el error, pero al parecer es como si no hubieras declarado la variable TipoDoc.

Lo que podemos hacer es que me mandes tu BD a [email protected]

Manteniendo la estructura, sustituye registros realeales por datos ficticios.

Me temo que sin tenerla delante va a ser dificil acertar.

Ya me contarás. Saludos >> Jacinto

¡Gracias!. Te he enviado el mail. Espero tus comentarios

Cristobal: Recibido.

Haré un hueco para mirarlo y te comento. Saludos >> Jacinto

¡Gracias! 

Jacinto. Gracias por toda tu ayuda, la verdad que mas resuelto en gran medida el problema y has sabido disipar casi todas mis dudas. Excelente!!!

Cristobal: Eres un amigo, gracias por tu reconocimiento, pero la pregunta que te proponía que cerraras es muy antigua y es ésta:

[url=/preguntas/65afu75sso8so5fk/formulario-con-cuadro-de-busqueda-tipo-google?selectedanswerid=65ak9w8mn8fo6jkt<br%20/>]http://www.todoexpertos.com/preguntas/65afu75sso8so5fk/formulario-con-cuadro-de-busqueda-tipo-google?selectedanswerid=65ak9w8mn8fo6jkt
[/url] Mis saludos Cordiales >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas