Visual Basic - formarto nombre de archivo

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 12
Ha aumentado su posición en 8 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

formarto nombre de archivo

Publicado por Angel (6 intervenciones) el 13/08/2018 19:07:53
Hola

tengo un formulario que al darle al botón de procesar el genera un archivo con los datos consultados el cual el nombre es fijo. "FacEle.csv", ahora debe seguir haciendo lo mismo pero el nombre del archivo no debe ser fijo si no cambiar segun algunos requerimientos el formato seria CCTTYYYYMMDDS

CC:Prefijo de cliente
TT: Prefijo de tipo
YYYYMMDD: fecha de corte del cliente
S: Numero de secuencia de archivo


el codigo actual es


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
Function llena_interfaz(datos2 As ADODB.Recordset)
Dim FileName As String
CDialog.FileName = "FacElec.csv"
CDialog.CancelError = False
On Error GoTo Err:
 
CDialog.ShowSave
FileName = CDialog.FileName
 
Set datos2 = datos2.NextRecordset
Open Trim(FileName) For Output As #2
'llena encabezado
 
Print #2, datos2!Cabecera
Set datos2 = datos2.NextRecordset
 
'llena facturas
 
Do While Not datos2.EOF
Print #2, XCstr(datos2!linea)
datos2.MoveNext
Loop
If datos2.EOF Then
Close #2
End If
MsgBox "La interfaz de Factura Electronica ha sido generada con exito", vbInformation, Me.Caption


gracias por su ayuda
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 Andres Leonardo
Val: 3.807
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

formarto nombre de archivo

Publicado por Andres Leonardo (1550 intervenciones) el 13/08/2018 23:25:52
Intenta asi


1
CDialog.FileName = "FacElec" & format(date,"YYYYMMDD") & S &".csv"   'donde S tiene la secuencia asignada antes 

SAludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 8 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

formarto nombre de archivo

Publicado por Angel (6 intervenciones) el 14/08/2018 14:25:31
Hola muchas gracias por tu respuesta

pero te comento, la fecha no debe ser la actual si no la de la fecha del corte

y como se hace con :CC y TT que son unos prefijos unicos por cliente?

YYYYMMDDS

CC:Prefijo de cliente
TT: Prefijo de tipo
YYYYMMDD: fecha de corte del cliente
S: Numero de secuencia de archivo
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
Imágen de perfil de Andres Leonardo
Val: 3.807
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

formarto nombre de archivo

Publicado por Andres Leonardo (1550 intervenciones) el 14/08/2018 18:57:53
solo debes concatenar el nombre

El cc debe tener el contenido del prefijo asi mismo TT y S

pero la fecha la debes sacar de otra variable peor la idea es la misma...

Cualqueir duda..
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
sin imagen de perfil
Val: 12
Ha aumentado su posición en 8 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

formarto nombre de archivo

Publicado por Angel (6 intervenciones) el 20/08/2018 17:16:14
Hola

amigo tengo es duda de como asignar la secuencia? como debo hacerlo?


saludos
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
sin imagen de perfil
Val: 12
Ha aumentado su posición en 8 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

formarto nombre de archivo

Publicado por Angel (6 intervenciones) el 20/08/2018 18:24:17
resulta que tengo idea de como hacer la secuencia mas no me funciona solo me pone el 1 pero no me suma al siguiente numero
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
Imágen de perfil de Andres Leonardo
Val: 3.807
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

formarto nombre de archivo

Publicado por Andres Leonardo (1550 intervenciones) el 20/08/2018 20:51:46
coloca una variable y despues de terminar le sumas a la variable 1 y listo

1
2
3
4
5
dim s as integer
s= 1
CDialog.FileName = "FacElec" & format(date,"YYYYMMDD") & S &".csv"   'donde S tiene la secuencia asignada antes
 
s=s+1
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
sin imagen de perfil
Val: 12
Ha aumentado su posición en 8 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

formarto nombre de archivo

Publicado por Angel (6 intervenciones) el 20/08/2018 20:59:57
Hola andres

muchas gracias por tu ayuda, mira asi tengo el codigo y efectivamente me toma como el valor de S = 1 al momento de asignar el nombre al archivo, pero cuando imprimo el segundo o tercer archivo siempre me muestra es el numero 1 no lleva la secuencia

te muestro el codigo a ver si me puedes ayudar a resolver por favor

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Dim FileName As String
    Dim S As Integer
    S = 1
    CDialog.FileName = "AA" & "DML" & Format(Date, "YYYYMMDD") & S & ".txt"
    CDialog.CancelError = False
    On Error GoTo Err:
 
    CDialog.ShowSave
    FileName = CDialog.FileName
 
    S = S + 1
 
 
    'Set datos2 = datos2.NextRecordset
    Open Trim(FileName) For Output As #2
    'llena encabezado
 
    With vas_datos
        .Row = 1
        .Col = 1
        'Set datos2 = datos2.NextRecordset
 
        'llena facturas
 
        Do While .Row <= .MaxRows
 
            Print #2, .Text
            .Row = .Row + 1
 
        Loop
        'If datos2.EOF Then
            Close #2
        'End If
        MsgBox "La interfaz de Deuda Equifax ha sido generada con exito", vbInformation, Me.Caption
 
    End With
 
    Err:
        Mata_Recordset datos2
        MKTexto msk_fec_ini, msk_fec_ini.Text, True, GRIS
        'MKTexto Msk_fec_fin, Msk_fec_fin.Text, True, CYAN
    Me.MousePointer = 0
End Function
 
Private Sub Vas_Facturas_ButtonClicked(ByVal Col As Long, ByVal Row As Long, ByVal ButtonDown As Integer)
    Dim varIndica As Variant
    Dim varNumFact As Variant
 
    If ButtonDown = 0 Then Exit Sub
    If Col <> 11 Then Exit Sub
 
    Vas_Facturas.GetText 12, Vas_Facturas.ActiveRow, varIndica
    If varIndica = 1 Then
        MsgBox "Faltan Datos de la Factura, No puede ser seleccionada", vbOKOnly + vbExclamation, "Factura Electronica."
        blnSwBuscar = False
        Vas_Facturas.Col = Col
        Vas_Facturas.Row = Row
        Vas_Facturas.value = 0
        Exit Sub
    Else
        Vas_Facturas.GetText 14, Row, varIndica
    '    If varIndica = 2 Then
    '        MsgBox "La Factura ya está Procesada.", vbOKOnly + vbExclamation, "Factura Electronica."
    '        blnSwBuscar = False
    '        Vas_Facturas.Col = Col
    '        Vas_Facturas.Row = Row
    '        Vas_Facturas.Value = 0
    '        Exit Sub
    '
    '    End If
 
    End If
End Sub
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