Caros,
Tentei localizar no fórum uma solução para o meu problema mas não localizei por isso apelo aos amigos a quem possa me ajudar.
Tenho duas tabelas no aplicativo onde a partir delas preciso criar um txt:
TBL_C100_S = Dados de Cabeçalho de NF
TBL_C190_S = Dados de detalhe de NF
No layout do SPED preciso colocar no arquivo TXT em sequencia sendo para cada Registro C100 tenho que ter um Registro C190 sendo na sequencia
Reg NF
C100 1
C190 1
C100 2
C190 2
Não manjo quase nda de VBA sou um curioso e buscando ajuda no forum consegui chegar no código:
Function Gerar()
Dim Cnn As New ADODB.Connection
Dim Rs1 As New ADODB.Recordset
Dim Rs2 As New ADODB.Recordset
Dim ID As Long
Dim caminho As String
'Verifica se existe pasta C:\
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists("C:\Arquivos_Teste") Then ' verifica se já existe a pasta
Else
MkDir "C:\Arquivos_Teste" ' se não existir cria
End If
caminho = "C:\Arquivos_Teste\" & "TESTE.txt"
Set Cnn = CurrentProject.Connection
Set Rs1.ActiveConnection = Cnn
Set Rs2.ActiveConnection = Cnn
Rs1.CursorType = adDynamic
Rs1.LockType = adLockOptimistic
Rs2.CursorType = adDynamic
Rs2.LockType = adLockOptimistic
Rs1.Open "Select * From TBL_C100_S", Cnn
Open caminho For Output As #1
If Not Rs1.EOF Then
Do Until Rs1.EOF
ID = Rs1!ID_NF
Rs2.Open "SELECT * FROM TBL_C190_S WHERE ID_NF= " & ID & "", Cnn
Print #1, Chr(124) & Rs1!REG & Chr(124) & Rs1!IND_OPER & Chr(124) & Rs1!IND_EMIT & Chr(124) & Rs1!COD_PART & Chr(124) & vbCrLf & _
Chr(124) & Rs2!REG & Chr(124) & Rs2!CST_ICMS & Chr(124) & Rs2!CFOP & Chr(124) & Rs2!ALIQ_ICMS & Chr(124)
Rs1.MoveNext
Loop
End If
Close #1
Rs2.Close
Rs1.Close
Cnn.Close
Set Rs1 = Nothing
Set Rs2 = Nothing
Set Cnn = Nothing
End Function
O problema é que somente esta preechendo o arquivo txt com a informação da primeira NF ocorrendo erro na segunda de: "Erro tempo de execução 3705"
Poderia me ajudar a corrigir..
Obrigado
Luis Carlos
Tentei localizar no fórum uma solução para o meu problema mas não localizei por isso apelo aos amigos a quem possa me ajudar.
Tenho duas tabelas no aplicativo onde a partir delas preciso criar um txt:
TBL_C100_S = Dados de Cabeçalho de NF
TBL_C190_S = Dados de detalhe de NF
No layout do SPED preciso colocar no arquivo TXT em sequencia sendo para cada Registro C100 tenho que ter um Registro C190 sendo na sequencia
Reg NF
C100 1
C190 1
C100 2
C190 2
Não manjo quase nda de VBA sou um curioso e buscando ajuda no forum consegui chegar no código:
Function Gerar()
Dim Cnn As New ADODB.Connection
Dim Rs1 As New ADODB.Recordset
Dim Rs2 As New ADODB.Recordset
Dim ID As Long
Dim caminho As String
'Verifica se existe pasta C:\
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists("C:\Arquivos_Teste") Then ' verifica se já existe a pasta
Else
MkDir "C:\Arquivos_Teste" ' se não existir cria
End If
caminho = "C:\Arquivos_Teste\" & "TESTE.txt"
Set Cnn = CurrentProject.Connection
Set Rs1.ActiveConnection = Cnn
Set Rs2.ActiveConnection = Cnn
Rs1.CursorType = adDynamic
Rs1.LockType = adLockOptimistic
Rs2.CursorType = adDynamic
Rs2.LockType = adLockOptimistic
Rs1.Open "Select * From TBL_C100_S", Cnn
Open caminho For Output As #1
If Not Rs1.EOF Then
Do Until Rs1.EOF
ID = Rs1!ID_NF
Rs2.Open "SELECT * FROM TBL_C190_S WHERE ID_NF= " & ID & "", Cnn
Print #1, Chr(124) & Rs1!REG & Chr(124) & Rs1!IND_OPER & Chr(124) & Rs1!IND_EMIT & Chr(124) & Rs1!COD_PART & Chr(124) & vbCrLf & _
Chr(124) & Rs2!REG & Chr(124) & Rs2!CST_ICMS & Chr(124) & Rs2!CFOP & Chr(124) & Rs2!ALIQ_ICMS & Chr(124)
Rs1.MoveNext
Loop
End If
Close #1
Rs2.Close
Rs1.Close
Cnn.Close
Set Rs1 = Nothing
Set Rs2 = Nothing
Set Cnn = Nothing
End Function
O problema é que somente esta preechendo o arquivo txt com a informação da primeira NF ocorrendo erro na segunda de: "Erro tempo de execução 3705"
Poderia me ajudar a corrigir..
Obrigado
Luis Carlos
- Anexos
- Gerar.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (388 Kb) Baixado 17 vez(es)