PRB: Secuencia de ordenación error abrir un conjunto de registros la primera vez en una hoja de CÁLCULO de Excel ADODB

Seleccione idioma Seleccione idioma
Id. de artículo: 246167 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Abrir una hoja de Microsoft Excel cálculo desde en entorno de desarrollo integrado (IDE) de Visual Basic en Visual Studio 6.0 Service Pack 3 (o posterior) con el controlador ISAM y ODBC/Excel genera el error de tiempo de ejecución siguiente:
Error '-2147467259 (80004005)' en tiempo de ejecución: [Microsoft] [controlador de Excel de ODBC] seleccionado secuencia no admite el sistema operativo de intercalación
Este problema se produce cada vez que ejecute el código del IDE de Visual Basic.

Nota No se produce este error si se seleccionan todos los campos en la instrucción SQL, por ejemplo:
SELECT * FROM ...
				
también, este problema no ocurre dentro de un archivo EXE compilado.

Causa

Se trata de un problema en el IDE Visual Basic empezando por el service pack 3.

Más información

Pasos para reproducir este comportamiento

  1. Cree una hoja de cálculo en Microsoft Excel 97 o Microsoft Excel 2000 y coloque los siguientes valores en los campos prescribe:
    • A1 = F1
    • B1 = F2
    • C1 = F3

  2. Guarde la hoja de cálculo y crear un DSN que apunte a ella.
  3. Inicie Visual Basic 6.0 de Visual Studio 6.0 Service Pack 3 o posterior.
  4. Cree un EXE estándar nuevo y establezca una referencia a Microsoft Active Data Objects. Pegue el código siguiente en el formulario:
    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
         Wend
    
    End Sub
    					
  5. Realice los cambios necesarios en la cadena de conexión.
  6. Ejecutar el formulario.
  7. La primera vez el formulario se ejecuta, aparece el error; no aparece en posteriores ejecuciones.

Propiedades

Id. de artículo: 246167 - Última revisión: jueves, 24 de junio de 2004 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic 6.0 Edición de aprendizaje
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Service Pack 3 de Microsoft Visual Basic 6.0 Enterprise Edition
  • Service Pack 4 de Microsoft Visual Basic 6.0 Enterprise Edition
  • 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
Palabras clave: 
kbmt kbdatabase kbiisam kbprb KB246167 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 246167

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com