ERRO CONEXAO COM TABELA DBF

EIADVANCED 31/01/2013 17:42:02
#418521
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
NETMANIA 01/02/2013 08:45:10
#418557
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.
EIADVANCED 01/02/2013 09:22:23
#418560
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
MARCELO.TREZE 01/02/2013 10:21:35
#418562
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
EIADVANCED 01/02/2013 11:30:02
#418563
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
MARCELO.TREZE 01/02/2013 11:43:17
#418564
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.

EIADVANCED 01/02/2013 12:51:11
#418571
Marcelo mesmo erro: [Ô]-2147467259 Número excessivo de campos definido.[Ô]
EDINALDOLA 03/02/2013 13:51:35
#418667
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.
Tópico encerrado , respostas não são mais permitidas