Quiero separar un número almacenado en un campo de texto o número en las diferentes cifras (ejemplo: 235 separarlo en tres campos: 2, 3 y 5)
1 Respuesta
Respuesta de Neckkito Nck
1
1
Neckkito Nck, Access... ser o no ser. Esa es la cuestión
No estoy muy seguro de si voy a contestar exactamente lo que quieres, pero a lo mejor puedes aprovechar algo de mi respuesta. Doy por sentado que en la tabla tienes tres campos para almacenar esos valores. Para el ejemplo yo he llamado a esos campos "DigitoX", donde POR es 1, 2 y 3. Ojo, esos campos son tipo texto. Partiendo de esa base te paso un código que, resumiendo, lo que hace es 1.- Coge el texto (y si es un número lo convierte en texto) y separa cada uno de los dígitos. 2.- Los almacena en una matriz 3.- Según la longitud del número (de 1 a 3 dígitos), va rellenando los campos "DigitoX" 4.- Se ejecuta en un formulario donde hay un campo (que yo he llamado "Numerotxt") donde el usuario introduce el número a descomponer. Y se ejecuta cuando haces click en un botón que yo he llamado "cmdDescomponeNum" El código es el siguiente: Private Sub cmdDescomponeNum_Click() Dim strNumero As Variant Dim intDigitos, i As Integer Dim arrValores() As Integer strNumero = Me.Numerotxt.Value 'Comprueba si el número introducido es de tipo numérico. 'Si lo es, lo convierte a texto If IsNumeric(strNumero) Then strNumero = CStr(strNumero) End If 'Saca cuántos dígitos hay intDigitos = Len(strNumero) 'Redimensiona la matriz ReDim arrValores(intDigitos) 'Rellena la matriz For i = 1 To intDigitos arrValores(i) = Mid(strNumero, i, 1) Next 'Suponiendo que hemos creado tres campos para almacenar los 'dígitos, llamados "DígitoX", con x=(1,2,3) Select Case intDigitos Case 3 Me.Digito1.Value = arrValores(1) Me.Digito2.Value = arrValores(2) Me.Digito3.Value = arrValores(3) Case 2 Me.Digito1.Value = arrValores(1) Me.Digito2.Value = arrValores(2) Case 1 Me.Digito1.Value = arrValores(1) End Select End Sub --- Espero que más o menos sea lo que necesitabas. Si el número es mayor de tres dígitos puedes ir añadiendo, en el Select Case, Case 4, Case 5, etc. Lógicamente deberás tener, en la tabla, esos campos (Digito4, Digito5, etc.) creados. Suerte!
Muchas gracias por tu respuesta, eso es exactamente lo que ando buscando, más tarde lo pruebo y te informo. Gracias de nuevo
Todo perfecto y funcionando, las cifras en que se separa efectivamente son texto pero pueden operarse, es decir creando un campo digito1*digito2*digito3, al momento de aplicar el comando se generan las cifras separadas y el producto de las mismas. Muchísimas gracias