Access - rpta

 
Vista:

rpta

Publicado por mario (1 intervención) el 09/07/2003 17:07:09
Gracias por tu interes, me gustaria un codigo en vba para poder separar los datos de los '*'
GS*PO*005103494*5028424142*20020313*1024*2*X*004010
ST*850*0007
BEG*00*SA*S2441121**20020313
N1*OB*GRAINGER RESALE
N3*333 KNIGHTSBRIDGE PKWY
N4*LINCOLNSHIRE*IL*60069
N1*VN*SUE HUDSON
N3*3647 CORTEZ ROAD
N4*BRADENTON*FL*342103106
N1*ST*GRAINGER NDC*9*0051034940001
N3*5959 W. HOWARD ST.
N4*NILES*IL*60714
PO1*0001*64*EA*22.67**CB*5ZX50*VN*H02032000-WG
SCH*64*EA***010*20020322**002*20020329
CTT*1*64
en el cual los 2 primeros digitos deeben ser los campos y el resto los datos sin '*'
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

rpta

Publicado por Alejandro (4142 intervenciones) el 02/05/2023 16:33:51
Por supuesto, aquí te dejo un código en VBA que separa los datos de los asteriscos y los coloca en una matriz. Los primeros dos dígitos de cada campo se guardarán en una columna separada de la matriz, mientras que el resto del campo se guardará en otra columna de la matriz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub SepararDatos()
    Dim datos As String
    Dim matriz() As String
    Dim i As Integer
    Dim j As Integer
 
    datos = "GS*PO*005103494*5028424142*20020313*1024*2*X*004010"
    matriz = Split(datos, "*")
 
    ReDim Preserve matriz(UBound(matriz), 1)
 
    For i = 0 To UBound(matriz)
        If Len(matriz(i)) > 2 Then
            matriz(i, 0) = Left(matriz(i), 2)
            matriz(i, 1) = Mid(matriz(i), 3)
        Else
            matriz(i, 0) = matriz(i)
        End If
    Next i
 
    For i = 0 To UBound(matriz)
        For j = 0 To 1
            Debug.Print matriz(i, j)
        Next j
    Next i
End Sub

Solo tendrás que reemplazar la variable "datos" con tus propios datos. El resultado se imprimirá en la ventana "Inmediato" de VBA.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar