Formato del número de cuenta en formularios e informes

Estoy intentando darle formato al número de cuenta, de forma que me lo muestre en grupos de cuatro, es decir, así: ES00 0000 0000 0000 0000 0000.

Necesito que me aparezca con ese formato tanto en un desplegable que tengo en un formulario:

Como en un informe:

He probado con Format ("0000 0000 0000 0000 0000 0000"), pero no me lo coge bien.

¿Qué estoy haciendo mal?

2 Respuestas

Respuesta

Diego: Si lo que quieres es que se vayan introduciendo los caracteres de un IBAN>>

https://nksvaccessolutions.com/Foro/viewtopic.php?t=75 

Los formatos generales los tienes en>>

https://support.microsoft.com/es-es/office/controlar-los-formatos-de-entrada-de-datos-con-m%C3%A1scaras-de-entrada-e125997a-7791-49e5-8672-4a47832de8da 

Lo más adecuado a mi modo de ver es que aplicaras la "máscara", en la propia tabla>> Vista de diseño. Saludos >> JTJ

Hola, jacinto. No

Hola, jacinto. Eso ya lo tengo hecho. Lo que busco es que se visualice con espacios tanto en la columna del combo como en el cuadro de texto del informe. 

Diego: Es posible que lo que necesites sea ésto:

'Ejemplo: FormatearIBAN("ES6812345678061234567890") --> "ES68 1234 5678 0612 3456 7890"
Public Function FormatearIBAN(IBAN As Variant, Optional Separador = ESPACIO) As String
FormatearIBAN = ""
If IsNull(IBAN) Then Exit Function
IBAN = Limpiar(IBAN)
FormatearIBAN = Mid(IBAN, 1, 4) & Separador & Mid(IBAN, 5, 4) & Separador & Mid(IBAN, 9, 4) & Separador & Mid(IBAN, 13, 4) & Separador & Mid(IBAN, 17, 4) & Separador & Mid(IBAN, 21, 4)
End Function

La Función LimpiarIBAn a la que llama:

'Ejemplo: Limpiar("IBAN1234 5678-90") --> "1234567890"
Private Function Limpiar(Numero As Variant) As String
Numero = Replace(Numero, "IBAN", "")
Numero = Replace(Numero, ESPACIO, "")
Numero = Replace(Numero, GUION, "")
Limpiar = Numero
End Function

Las Funciones las has de poner en un Modulo Estandar

Lo llamas desde un Cuadro de Texto o un campo de parrillla de consulta: Saludos >> JTJ

Respuesta
2

Pruebe con:

ES00 & " " & Format ("0000 0000 0000 0000 0000 0000")

Se me ha olvidado decir que el usuario introduce todo, letras incluidas. Lo que me dices sería si fuera solo el número, ¿no?

Entiendo que es para darle formato al imprimir y no para ingresar datos.

Para los dos casos que te señalo arriba con imágenes: en la columna de un combo y un cuadro de texto de un informe. 

O quizá sea yo quien no ha entendido tu respuesta, que no sé cómo aplicar. 

Excelente la función de Jacinto (un saludo), solo quiero completar algo:

Si coloco en el origen de datos del cuadro combinado 2 campos, el primero el IBAN (Columna dependiente) y el segundo llamo la función de Jacinto para obtener el IBAN con espacios, sobra la función limpiar.

TABLA

FORMULARIO 

ORIGEN DE LA FILA DEL CAMPO CÓDIGO

Observe la función de Jacinto "Formatear", es que se va mostrar en el cuadro combinado.

PROPIEDADES DEL CAMPO

Observe las líneas resaltadas, la columna dependiente es el valor normal del IBAN que realmente se selecciona, limitar a lista en Sí para evitar que ingresen un IBAN que no existe, la máscara de entrada, según su consulta el usuario debe digitar TODO y por último se debe bloquear la expansión automática.

Código editado de la función de jacinto

Solo retiré la llamada a la función "limpiar". La función es excelente y la he probado. En el caso del informe debe adicionar el campo en la consulta origen del reporte y adicionar el campo desde donde llama la función de Jacinto y éste incluirlo en el reporte.

Muchas gracias 

Le dejo otra función para separar con un espacio el IBAN pero con matrices:

Public Function CodigoIBAN(strCodigo As String) As String

Dim A As Variant, i As Integer
Dim strTem As String
A = Array(1, 5, 9, 13, 17, 21)
For i = LBound(A) To UBound(A)
strTem = strTem & Mid(strCodigo, A(i), 4) & " "
Next i
CodigoIBAN = Left(strTem, Len(strTem) - 1)

End Function

Ejemplo de llamada:

CodigoIBAN("ES1254584587695848744016") -- retorna :

ES12 5458 4587 6958 4874 4016

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas