Numero largo en formulario de access

En un formulario tengo un campo fecha y un campo numerodi.

En "después de actualizar" del campo fecha tengo puesto:

NUMERODI = IDDI + 2800105464000# y me da como resultado:2800105464001 (correcto).

Pero resulta que a ese numero tengo que añadirle mas números : 280010546420230000000#.

pues bien al ponerlo en vba me aparece esto: NUMERODI = IDDI + 2.8001054642023E+20.

POR FAVOR necesito ayuda para que me pueda aparecer correctamente el numero "largo"

2 respuestas

Respuesta
1

El formato número largo sólo admite hasta 18 dígitos. Además si tiene que terminar con # sería texto.

No sé si lo he entendido bien, ya que no indicas cual es fijo. Si tengo la tabla Tabla1 con dos campos referencia y NumeroId ambos texto

En un formulario, cuando pongo el cursor sobre el control NumeroId

En el siguiente registro

En este caso en particular, recuerda mis dudas, el código del evento Al recibir el enfoque es

Private Sub NumeroDi_GotFocus()
NumeroDi = "2800105464" & Id + Val([Referencia]) & "#"
End Sub

Buenas Tardes Julián, el numero fijo que no cambiaría seria: 28001054642023 y los siguientes siete ceros serian los que sirven de "contador" pero el numero debería de verse todo junto: 280010546420230000000

Cuando he puesto # es que es el final del código en vba, por supuesto no tiene que aparecer.

Muchas Gracias

Pures en ese caso, bastaría con, por ejemplo

Al pulsar enter o recibir el enfoque el cuadro de texto NumeroDI

En este caso, el código del evento Al recibir el enfoque del cuadro de texto NumeroDi es

Private Sub NumeroDi_GotFocus()
NumeroDi = "28001054642023" & Format([Id], "0000000")
End Sub

Muchísimas gracias Julián me salvaste de nuevo.

Gracias, Gracias, Gracias

Un Crack como SIEMPRE

De nuevo al ataque Julián, habría alguna manera de actualizar NUMERODI mediante código, tengo 340 registros que actualizar.

Gracias de nuevo Julián.

Con código te aconsejaría que en algún evento, por ejemplo, al hacer clic de un botón, ya que sólo sería usarlo una vez y después eliminarlo

Docmd. Gotorecord,, acfirst

dim i as integer

for i=1 to me.recordset.recordcount

NumeroDI="28001054642023"&format([id],"0000000")

docmd.gotorecord,,acnext

next

Lo que hace es ir recorriendo los registros del formulario actualizando el cuadro de texto NumeroId. Personalmente, me gusta ver como lo va haciendo, aunque a alguien pueda no gustarle.

Pero también podrías hacerlo usando

docmd.runsql"update tabla1 set NumeroDI=""28001054642023""&format([id],""0000000"")"

Respuesta

Si es un 'codigo' ya no es un numero aunque solo lo conformen dígitos, es o deberá ser TEXTO y puede tener una longitud de poco más de doscientos cincuenta caracteres ( para más caracteres tendría que ser un campo de tipo MEMO y los campos memo no son adecuados como IDs)

Para crearlos e incrementarlos se ha de descomponer en las partes que lo conforman para poder incrementar la parte que hace de autonumérico (con la función MID puede obtenerse y ya incrementado reconstruir el código).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas