Como crear campo alfanumérico, access

Tengo un formulario llamado EXPEDIENTES. En él tengo un cuadro de lista llamado ESTADO con los datos ABIERTO y CERRADO. Quiero poner un botón denominado ARCHIVAR, el cual al hacer click, transporte los datos que figuran en ese momento en el formulario a una tabla llamada ARCHIVO, le asigne un número de archivo (formato Arc0000) correlativo y deshabilite todos los campos del formulario EXPEDIENTES, con excepción del cuadro de lista ESTADO.

1 Respuesta

Respuesta
1

La primera parte la he entendido. Lo del autonumérico puedes hacerlo( sin saber como tienes construido el formulario):

1º Si no vas a borrar registros puedes poner en el evento al activar el registro del formulario

If isnull([NumArchivo]) then

Numarchivo="Ac"&""&format(me.currentrecord,"0000")

end if

2º Si vas a borrar algún registro

dima as integer

a=dcount("*","archivo")

If isnull([numarchivo] then

numarchivo="Ac"&""&(" & a & ")+1

Para insertar en la tabla Archivo los valores que hay en ese momento en el formulario, en algún evento puedes poner

docmd.runsql"insert into archivo(campoA,CampoB,....)values('" & me.texto1 & "', '" & me.texto2 & "')"

Los campos de origen y destino no tienen porque llamarse igual pero si ser de datos compatibles.

Para lo de inhabilitar, si son pocos controles puedes poner

control1.enabled=false

control2.enabled=false

Siendo control un cuadro de texto, cuadro combinado casilla, etc.

Si fueran muchos podrías poner

for each control in form.controls

if control.controltype=actextbox then

control.enabled=false

end if

next

No lo acabo de ver lo que me has explicado. Voy a intentar hacerlo a ver si me sale, ya te contestaré. 

Veo que en el primer mensaje no me he explicado correctamente.

Cuando el cuadro de lista esté en CERRADO, ya inhabilito todos los campos de formulario EXPEDIENTES , excepto la fecha. Lo que quiero es que al pulsar el botón ARCHIVAR, me traslade todos los datos del formulario EXPEDIENTES a la tabla ARCHIVAR  y cuando  los introduzca en ella, le asigne un numero correlativo, que puede ser por ejemplo (Arc0000).

Otra opción que he barajado, es en el formulario EXPEDIENTE, poner un campo llamado Num Archivo y que éste me genere un alfanumérico, cuando el cuadro de lista este en CERRADO. Con ésta última opción he estado trabajando, pero cada vez que el cuadro de lista pasa de ABIERTO a CERRADO, me genera otro numero correlativo,  distinto del primer número.

Como puedes ver, ya no sé cual es la opción mejor. Llevo días trabajando en ello, pero no lo consigo.

Supongamos que tengo una tabla

Si tengo un formulario, donde escribo un nombre una población y elijo un lugar

Y pulso el botón

Si me vuelvo al formulario y escribo otros datos

Y vuelvo a pulsar el botón

El código del botón es simplemente

Le he puesto nombres distintos a los controles del formulario para que veas que no tienen que llamarse igual. Puedes ver que no hace falta ningún NumArchivo en el formulario.

Como te decía, al no saber como tienes construido el formulario ni el diseño de la tabla, no te puedo decir nada más concreto.

Las dos modalidades que barajo.

En ese caso puedes poner en el evento del botón(suponiendo que el combinado donde eliges lo de Abierto o Cerrado se llama propiedades-otras-nombre Elegir

If Elegir="Cerrado" then

dim i as string

....

Elseif elegir="Cerrado" then

lo que quieres que haga en ese caso

end if

Muchas gracias por todo lo explicado, por tu paciencia y por tus prontas respuestas. Cuando pueda probaré lo que me has indicado y ya te contaré.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas