EXPORTAR ARQUIVO DO BANCO ACCESS EM TXT

JOTACE 06/01/2012 17:28:06
#392576
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á.
FILMAN 12/01/2012 15:15:52
#393082
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
JOTACE 12/01/2012 17:33:05
#393104
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
KERPLUNK 12/01/2012 17:45:52
#393107
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...
FILMAN 13/01/2012 01:01:05
#393135
Tenta assim verifiquei e tinha algumas aspas a mais
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
JOTACE 27/02/2012 15:40:38
#395796
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....
Tópico encerrado , respostas não são mais permitidas