EXPORTAR ARQUIVO DO BANCO ACCESS EM TXT
Boa tarde a todos
Galera mais uma vez venho a vocês para me ajudarem com um probleminha, ultilizo uma função no meu programa que exporta arquivos de um banco access para a area de trabalho em txt... De uns tempos pra ca comecei a ter problemas da a seguinte mensagem quando tento exportar:
o separador de campo da especificação do arquivo texto coincide com o separador decimal ou o delimitador de texto.
esse é o meu select :
SELECT * INTO [SeuCodigo.txt] IN [ô][ô] [text;database=C:\Users\julio.cesar\Desktop\;] FROM [SeuCodigo] ...
Se alguém ja passou por isso ou possa me ajudar serei muito grato... Obrigado desde já.
Galera mais uma vez venho a vocês para me ajudarem com um probleminha, ultilizo uma função no meu programa que exporta arquivos de um banco access para a area de trabalho em txt... De uns tempos pra ca comecei a ter problemas da a seguinte mensagem quando tento exportar:
o separador de campo da especificação do arquivo texto coincide com o separador decimal ou o delimitador de texto.
esse é o meu select :
SELECT * INTO [SeuCodigo.txt] IN [ô][ô] [text;database=C:\Users\julio.cesar\Desktop\;] FROM [SeuCodigo] ...
Se alguém ja passou por isso ou possa me ajudar serei muito grato... Obrigado desde já.
Poste sua função seria mais facil de ajudar
mais pelo o que eu vi o seu arquivo de texto é separado por [Ô] ; [Ô] ponto e virgula e esta dando conflito com
a especificação de caminho da sua função
vc delimitava o arquivo de texto com outro delimitador [Ô] | , - ? ! [Ô] ... chegou a mudar ele tenta voltar e ve se o problema continua
mais pelo o que eu vi o seu arquivo de texto é separado por [Ô] ; [Ô] ponto e virgula e esta dando conflito com
a especificação de caminho da sua função
vc delimitava o arquivo de texto com outro delimitador [Ô] | , - ? ! [Ô] ... chegou a mudar ele tenta voltar e ve se o problema continua
Public Function ExportaTextoADO(strtblSaida As String, _
strArquivoTexto As String, _
strPathArquivo As String, _
cn_Banco As ADODB.Connection) As Long
strArquivoTexto = Replace(strArquivoTexto, [Ô].[Ô], [Ô]#[Ô])
strSql = [Ô]SELECT * INTO [[Ô] & strArquivoTexto & [Ô]] IN[Ô] & [Ô] [ô][ô] [Text;DATABASE=[Ô] & strPathArquivo & [Ô];] [Ô]
strSql = strSql & [Ô] FROM [[Ô] & strtblSaida & [Ô]] [Ô]
Set cmd = New ADODB.Command
cmd.ActiveConnection = cn_Banco
cmd.CommandText = strSql
cmd.CommandType = adCmdText
cmd.CommandTimeout = 0
cmd.Execute ExportaTextoADO
End Function
strArquivoTexto As String, _
strPathArquivo As String, _
cn_Banco As ADODB.Connection) As Long
strArquivoTexto = Replace(strArquivoTexto, [Ô].[Ô], [Ô]#[Ô])
strSql = [Ô]SELECT * INTO [[Ô] & strArquivoTexto & [Ô]] IN[Ô] & [Ô] [ô][ô] [Text;DATABASE=[Ô] & strPathArquivo & [Ô];] [Ô]
strSql = strSql & [Ô] FROM [[Ô] & strtblSaida & [Ô]] [Ô]
Set cmd = New ADODB.Command
cmd.ActiveConnection = cn_Banco
cmd.CommandText = strSql
cmd.CommandType = adCmdText
cmd.CommandTimeout = 0
cmd.Execute ExportaTextoADO
End Function
Você pode abrir um recordset normal(sem as opções de INTO e talz) e usar a função GetString:
Dim rs As New ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open [Ô]Select * from tabela[Ô], Conexao
Dim texto As String
texto = Replace(rs.GetString, Chr(10), [Ô];[Ô])
Open [Ô]C:\pasta\arquivo.csv[Ô] For Output As #1
Print #1, texto
Close #1
Fica muito mais simples, eu acho...
Dim rs As New ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open [Ô]Select * from tabela[Ô], Conexao
Dim texto As String
texto = Replace(rs.GetString, Chr(10), [Ô];[Ô])
Open [Ô]C:\pasta\arquivo.csv[Ô] For Output As #1
Print #1, texto
Close #1
Fica muito mais simples, eu acho...
Tenta assim verifiquei e tinha algumas aspas a mais
Caso não de certo faça como o nosso amigo KERPLUNK disse
Verifica se algum desses te ajuda
Public Function ExportaTextoADO(strtblSaida As String, _
strArquivoTexto As String, _
strPathArquivo As String, _
cn_Banco As ADODB.Connection) As Long
strArquivoTexto = Replace(strArquivoTexto, [Ô].[Ô], [Ô]#[Ô])
strSql = [Ô]SELECT * INTO [[Ô] & strArquivoTexto & [Ô]] IN [Text;DATABASE=[Ô] & strPathArquivo & [Ô];][Ô]
strSql = strSql & [Ô] FROM [[Ô] & strtblSaida & [Ô]] [Ô]
Set cmd = New ADODB.Command
cmd.ActiveConnection = cn_Banco
cmd.CommandText = strSql
cmd.CommandType = adCmdText
cmd.CommandTimeout = 0
cmd.Execute ExportaTextoADO
End Function
Caso não de certo faça como o nosso amigo KERPLUNK disse
Public Sub ExportaTextoADO(strtblSaida As String, _
strPathArquivo As String, _
cn_Banco As ADODB.Connection)
Dim rst As New ADODB.Recordset
Dim strArquivoTexto As String
Dim strSql As String
strSql = [Ô]SELECT * FROM [Ô] & strtblSaida
rst.Open strSql, cn_Banco
strArquivoTexto = Replace(rst.GetString, [Ô].[Ô], [Ô]#[Ô])
Open strPathArquivo For Output As #1
Print #1, strArquivoTexto
Close #1
End Sub
Verifica se algum desses te ajuda
Boa tarde galera.
Primeiramente gostaria de agradescer a todos pela ajuda Todas as situações que
me passaram deu certo, mais ainda queria saber porque do meu modo original não
funcionava... Consegui resolver meu problema era o arquivo INI ele tem que estar
sempre na pasta onde for gerar o arquivo texto. Obrigado a todos....
Primeiramente gostaria de agradescer a todos pela ajuda Todas as situações que
me passaram deu certo, mais ainda queria saber porque do meu modo original não
funcionava... Consegui resolver meu problema era o arquivo INI ele tem que estar
sempre na pasta onde for gerar o arquivo texto. Obrigado a todos....
Tópico encerrado , respostas não são mais permitidas