Você está offline; aguardando reconexão

PROBLEMA: Agrupando seqüência erro inicial ADODB Recordset na primeira vez contra um Excel XLS

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 246167
Sintomas
Abrindo uma planilha do Microsoft Excel no Visual Basic no Visual Studio 6.0 Service Pack 3 (ou posterior) ambiente IDE (de desenvolvimento integrado) com o driver do Excel, ODBC/ISAM gera o seguinte erro de tempo de execução:
Executar o erro em tempo de '-2147467259 (80004005)': [Microsoft] [ODBC driver do Excel] selecionado o sistema operacional não dá suporte à seqüência de agrupamento
Esse problema ocorre sempre que você executar o código dentro do IDE do Visual Basic.

Observação Este erro não ocorre se a todos os campos são selecionados na instrução SQL, por exemplo:
SELECT * FROM ...				
também, esse problema não ocorre em um EXE compilado.
Causa
Este é um problema no IDE do Visual Basic começando com service pack 3.
Mais Informações

Etapas para reproduzir o problema

  1. Criar uma planilha no Microsoft Excel 97 ou Microsoft Excel 2000 e coloque os seguintes valores nos campos prescribe:
    • A1 = F1
    • B1 = F2
    • C1 = F3

  2. Salve a planilha e criar um DSN apontando para ele.
  3. Inicie o Visual Basic 6.0 do Visual Studio 6.0 Service Pack 3 ou posterior.
  4. Crie um novo EXE padrão e definir uma referência ao Microsoft Active Data Objects. Cole o seguinte código no formulário:
    Public Sub Form_Load()    Dim constring As String    Dim Connection As New ADODB.Connection    Dim cmd As New ADODB.Command    Dim rs As New ADODB.Recordset'   define a DSN IMPORT-XLS, using the Excel ODBC driver, and point it to the xls file     constring = "Provider=MSDASQL;DSN=IMPORT-XLS"          Connection.Open constring     Set cmd.ActiveConnection = Connection     cmd.CommandType = adCmdText     '   The following .CommandText causes the error, but only the first time it is run within the ide.   cmd.CommandText = "Select F1, F2 from ""Sheet1$"""'   The following .CommandText will not cause the error.'    cmd.CommandText = "Select * from ""Sheet1$"""     rs.CursorLocation = adUseClient     rs.CursorType = adOpenStatic     rs.LockType = adLockReadOnly     rs.Open cmd     While Not rs.EOF        MsgBox rs.Fields(0)        rs.MoveNext     WendEnd Sub					
  5. Faça as alterações necessárias para ConnectionString.
  6. Execute o formulário.
  7. Na primeira vez em que o formulário é executado, o erro é exibido; ele não aparece em execuções subseqüentes.
Erro -2147467259 (80004005)

Propriedades

ID do Artigo: 246167 - Última Revisão: 06/24/2004 19:59:14 - Revisão: 3.1

Microsoft Visual Basic 6.0 Learning Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic Enterprise Edition for Windows 6.0, Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 3, Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 4, Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 5, Microsoft ActiveX Data Objects 2.1 Service Pack 2, Microsoft ActiveX Data Objects 2.5, Microsoft ActiveX Data Objects 2.6, Microsoft ActiveX Data Objects 2.7

  • kbmt kbdatabase kbiisam kbprb KB246167 KbMtpt
Comentários