Como guardar el formato de un campo en una tabla?

Tengo una tabla con varios campos en formato Texto, pero cada uno de esos campos guarda números

Y necesito que siga siendo un campo texto y que la info que tiene guardada se vea en el formato que quiero.

Hoy se ve así

Oficina Sucursal Cuenta

3              308          2109000001212

279         8216         345995

1423       1               128989000134

Y necesito que se guarde en formato texto y que se vea así

Oficina Sucursal Cuenta

0003       0308         2109000001212

0279       8216         0000000345995

1423       0001         0128989000134

Probé varias cosas pero no lo estoy logrando.

Respuesta
1

No dices "desde donde" quieres guardarlo. Pero si tengo un formulario y escribo una cantidad( puedes ver que el cursor aún está en Texto0

Cuando pulso Enter

En el otro caso

Cuando pulso Enter

En este caso, en código le digo

Private Sub Texto0_AfterUpdate()
Texto2 = Format([Texto0], "0000")
End Sub

Private Sub Texto4_AfterUpdate()
Texto6 = Format([Texto4], "0000000000000")
End Sub

Pero también podrías hacerlo directamente en la tabla dándole el formato que quieras al campo en cuestión.

Tengo la info en un tabla y le quise dar formato pero sigo viendo todo como 329 en vez de 0329.

Cómo sería esto que decís?

O también intenté pasarlo de una tabla a otra pero no he logrado verlo como necesito.

Voy a probar con esos formularios como mostrás, y luego debería reemplazar esa columna por la anterior en mi tabla, cierto?

Muchas gracias desde ya por tu ayuda!

Julian , buen día!

Probé lo que me dijiste y si bien funciona perfectamente, creo que no es lo que estoy necesitando,

porque la info ya la tengo guardada en la tabla y necesito modificarle el formato. Lo que me pasaste sería para nuevos ingresos, pero nunca se ingresa info manual en esta tabla, son datos que exporto de una macro y una vez bajaron en este formato y me arruinaron la tabla.

Alguna otr opción que me puedas comentar, te lo agradezco mucho.

Saludos!

Siento el retraso pero me has pillado fuera. Lo que está escrito, escrito está. El problema del formato es que aunque lo pongas como lo pongas, no podrá ser, digamos, fijo, dependerá de si escribes 3 cifras, cuatro, nueve, etc. Por eso lo mejor es que lo dejes como está

Y en el formulario donde metes los nuevos registros lee añadas un botón, por ejemplo

Botón que después de pulsarlo una vez lo puedes eliminar. Al pulsarlo me deja la tabla como

Te decía que puedes eliminarlo, porque ya en los registro nuevos

Escribo el número que me de la gana y al pulsar Enter, me lo deja como

El código del botón es

Private Sub Comando11_Click()
DoCmd.SetWarnings False
DoCmd.RunSQL "update pedidos set codpostal=format([codpostal],""0000000000000"")"
End Sub

Lo de Docmd.setwarnings es para que no te aparezca la dichosa ventanita de "Va a actualizar..."

Y en el evento Después de actualizar del cuadro de texto CodPostal le tengo puesto

Private Sub CodPostal_AfterUpdate()
CodPostal = Format([CodPostal], "0000000000000")
End Sub

De forma que cada vez que añadas un registro, sea la longitud que sea que escribas, la completará con ceros hasta los 13 dígitos.

1 respuesta más de otro experto

Respuesta
1

Verifica que los campos sean de texto en la tabla, solo los 'convierte a numero' si son numéricos en la tabla, si es texto poco le importa que el contenido sea un numero, un texto o cualquier carácter imprimible, lo mas que puede hacer es recortar espacios al final de la cadena.

Es que sí lo guarda como texto, pero necesito que si dice Sucursal 7, se guarde y vea como 

Sucursal 0007. Porque luego hago consulta de actualización contra otra tabla que lo baja con ese formato y necesito verlo así sino no actualiza tampoco.

Si el campo 'SUCURSAL es de texto (alfanumérico) puedes guardar cualquier carácter imprimible y si se desea guardar al numero siete (7) como (0007) si el campo es de texto o se le escribe con los ceros o se puede automatizar, por ejemplo:

Al finalizar te teclear se calcula la longitud del texto y como se necesita una longitud determinada (cuatro caracteres) se le añaden los ceros que necesite para cumplir con la longitud.

Se puede hacer con la función Format en el evento del propio cuadro de texto:
Me.Surcursal = Format(Me.Sucursal, "0000")

Hay mas posibilidades con las funciones Space y String

¡Gracias!

Hice algo parecido en función a esto que me decís y lo que me comentaba Julián.

Dupliqué el campo sucursal en una consulta y el nuevo campo lo armé con esta fórmula:

right("0000"&[SUCURSAL];4). Luego reemplacé en la tabla el campo que estaba mal por el nuevo campo.

Muchas gracias !

La próxima vez haz lo mismo pero directamente en la consulta (sin necesidad de duplicar campos).

Puedes crear la expresión como un campo mas en la consulta para verificar el resultado y hacer cambios sin afectar a los datos y cuando se logra el resultado esperado:

.- Se cambia la consulta a consulta de actualización
.- En 'actualizar a:' del campo se pone la expresión verificada
.-Se ejecuta la consulta y la tabla quedara actualizada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas