ERRO CONEXAO COM TABELA DBF
Boa Tarde Pessoal,
Estou abrindo um arquivo DBF mas está ocorrendo o seguinte erro: [Ô]-2147467259 Número excessivo de campos definido.[Ô]
Segue programação:
BANCO.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & [Ô]C:\Temp[Ô] & [Ô];[Ô] & [Ô]Extended Properties=[Ô][Ô]DBASE IV;[Ô][Ô];[Ô]
TABELA.CursorLocation = adUseClient
TABELA.Open [Ô]SELECT * FROM CLIENTES[Ô], BANCO, adOpenKeyset, adLockOptimistic, adCmdText
OBS: Este dbf contém 292 campos
No aguardo,
Pierre
Estou abrindo um arquivo DBF mas está ocorrendo o seguinte erro: [Ô]-2147467259 Número excessivo de campos definido.[Ô]
Segue programação:
BANCO.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & [Ô]C:\Temp[Ô] & [Ô];[Ô] & [Ô]Extended Properties=[Ô][Ô]DBASE IV;[Ô][Ô];[Ô]
TABELA.CursorLocation = adUseClient
TABELA.Open [Ô]SELECT * FROM CLIENTES[Ô], BANCO, adOpenKeyset, adLockOptimistic, adCmdText
OBS: Este dbf contém 292 campos
No aguardo,
Pierre
1º Tente atualizar o MDAC para versão 2.8
2º Tente ver se você consegue acessar este arquivo via o Access. Se der erro, poder ser problema no arquivo.
2º Tente ver se você consegue acessar este arquivo via o Access. Se der erro, poder ser problema no arquivo.
1- Já está atualizado
2- No Access ocorre o mesmo erro e no excel abre apenas até o 255 campo os demais não carrega
2- No Access ocorre o mesmo erro e no excel abre apenas até o 255 campo os demais não carrega
pra ver a quantidade de campos é o problema tente isto
BANCO.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & [Ô]C:\Temp[Ô] & [Ô];[Ô] & [Ô]Extended Properties=[Ô][Ô]DBASE IV;[Ô][Ô];[Ô]
TABELA.CursorLocation = adUseClient
TABELA.Open [Ô]SELECT TOP 254,* FROM CLIENTES[Ô], BANCO, adOpenKeyset, adLockOptimistic, adCmdText
BANCO.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & [Ô]C:\Temp[Ô] & [Ô];[Ô] & [Ô]Extended Properties=[Ô][Ô]DBASE IV;[Ô][Ô];[Ô]
TABELA.CursorLocation = adUseClient
TABELA.Open [Ô]SELECT TOP 254,* FROM CLIENTES[Ô], BANCO, adOpenKeyset, adLockOptimistic, adCmdText
Marcelo, bom dia
Teste esta sua linha mas quando rodo está dando erro: [Ô]A instrução SELECT inclui uma palavra reservada ou um nome de argumento que está incorreto ou faltando, ou a pontuação está incorreta[Ô]
O que pode ser?
Grato
Teste esta sua linha mas quando rodo está dando erro: [Ô]A instrução SELECT inclui uma palavra reservada ou um nome de argumento que está incorreto ou faltando, ou a pontuação está incorreta[Ô]
O que pode ser?
Grato
desculpe nem vou postar a correção, pois o codigo acima ira exibir um numero restrito de registros e não campos, desculpe cometi este equivoco.
Marcelo mesmo erro: [Ô]-2147467259 Número excessivo de campos definido.[Ô]
Amigo, tenho um sistema desenvolvido no Access2000 no qual preciso acessar outro banco de dados cujas tabelas estão em dbf. Faça o seguinte:
1º) Crie uma variável global para que possa ser utilizada em qualquer parte de seu sistema. No meu caso eu a chamei de cn, que é do tipo conection
2º) Crie uma tabela que no meu caso eu chamei de LOCAL_BD, e nela um campo para armazenar o local onde está o banco de dados dbase (que no meu caso eu chamei de LocalBd)
3º) Num módulo global, crie uma função, que no meu caso chamei de ConectaBanco, com as seguintes instruções:
Dim db As DAO.Database
Dim RS As DAO.Recordset
Dim LocalBanco As String
Set db = DBEngine.Workspaces(0).Databases(0)
Set RS = db.OpenRecordset([Ô]Select LocalBd FROM LOCAL_BD[Ô])
If Not RS.EOF Then
LocalBanco = RS!LocalBd
End If
RS.Close
On Error GoTo TrataErro
Set Cn = New Connection
Cn.Open [Ô]Provider=MSDASQL.1;Persist Security Info=False;Mode=Read;Extended Properties=DSN=Arquivos do dBASE;DBQ=[Ô] & LocalBanco & [Ô];DefaultDir=[Ô] & LocalBanco & [Ô];DriverId=533;MaxBufferSize=2048;PageTimeout=5[Ô]
Exit Sub
TrataErro:
If Err.Number = -2147467259 Then
Err.Clear
Screen.MousePointer = 0
MsgBox [Ô]Não foi possÃvel conectar com a Base de Dados DBF.[Ô] & Chr(13) & [Ô]Por favor, solicite suporte técnico ao Supervisor do Sistema.[Ô], vbCritical, [Ô]ERRO DE CONEXÃO[Ô]
Erro = True
End If
Pronto, daà quando você precisar acessar o banco de dados DBF é só chamar a Função ConectarBanco e a partir daà você terá acesso as tabelas.
No meu caso o sistema que utilizo já funciona há mais de 10 anos sem nenhum problema.
Qualquer dúvida, poste novamente.
1º) Crie uma variável global para que possa ser utilizada em qualquer parte de seu sistema. No meu caso eu a chamei de cn, que é do tipo conection
2º) Crie uma tabela que no meu caso eu chamei de LOCAL_BD, e nela um campo para armazenar o local onde está o banco de dados dbase (que no meu caso eu chamei de LocalBd)
3º) Num módulo global, crie uma função, que no meu caso chamei de ConectaBanco, com as seguintes instruções:
Dim db As DAO.Database
Dim RS As DAO.Recordset
Dim LocalBanco As String
Set db = DBEngine.Workspaces(0).Databases(0)
Set RS = db.OpenRecordset([Ô]Select LocalBd FROM LOCAL_BD[Ô])
If Not RS.EOF Then
LocalBanco = RS!LocalBd
End If
RS.Close
On Error GoTo TrataErro
Set Cn = New Connection
Cn.Open [Ô]Provider=MSDASQL.1;Persist Security Info=False;Mode=Read;Extended Properties=DSN=Arquivos do dBASE;DBQ=[Ô] & LocalBanco & [Ô];DefaultDir=[Ô] & LocalBanco & [Ô];DriverId=533;MaxBufferSize=2048;PageTimeout=5[Ô]
Exit Sub
TrataErro:
If Err.Number = -2147467259 Then
Err.Clear
Screen.MousePointer = 0
MsgBox [Ô]Não foi possÃvel conectar com a Base de Dados DBF.[Ô] & Chr(13) & [Ô]Por favor, solicite suporte técnico ao Supervisor do Sistema.[Ô], vbCritical, [Ô]ERRO DE CONEXÃO[Ô]
Erro = True
End If
Pronto, daà quando você precisar acessar o banco de dados DBF é só chamar a Função ConectarBanco e a partir daà você terá acesso as tabelas.
No meu caso o sistema que utilizo já funciona há mais de 10 anos sem nenhum problema.
Qualquer dúvida, poste novamente.
Tópico encerrado , respostas não são mais permitidas