你目前正处于脱机状态,正在等待 Internet 重新连接

PRB: 排序顺序错误打开 ADODB Recordset Excel XLS 针对第一次

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 246167
症状
该 ISAM excel/ODBC 驱动程序以打开 Microsoft Excel 电子表格中的内 Visual Basic Visual Studio 6.0 Service Pack 3 中 (或更高版本) 集成开发环境 (IDE) 生成下面的运行时错误:
运行时错误"2147467259 (80004005)": [Microsoft] [ODBC Excel 驱动程序] 选定排序序列不支持的操作系统
出现此问题每次您运行在 vba IDE 中的代码。

如果所有字段都选定在 SQL 语句中,例如,不会发生此错误:
SELECT * FROM ...				
参阅,已编译的 EXE 中不出现此问题。
原因
这是从开始的 service pack 3 在 vba IDE 中的问题。
更多信息

重现行为的步骤

  1. 在 Microsoft Excel 97 或 Microsoft Excel 2000 中创建一个电子表格,并将以下值放在 prescribe 字段:
    • a1 = f1
    • b1 = f2
    • c1 = f3

  2. 保存电子表格,并创建一个指向它的 DSN。
  3. 启动 Visual Basic 6.0 中从 Visual Studio 6.0 Service Pack 3 或更高版本。
  4. 创建新的标准 EXE 并设置 Microsoft 活动数据对象的引用。将以下代码粘贴到窗体:
    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. 要在 ConnectionString 进行必要的更改。
  6. 运行该窗体。
  7. 第一次运行窗体时,将显示错误消息 ; 它未出现在后续运行中。
错误 2147467259 (80004005)

警告:本文已自动翻译

属性

文章 ID:246167 - 上次审阅时间:06/24/2004 19:59:14 - 修订版本: 3.1

Microsoft Visual Basic 6.0 学习版, Microsoft Visual Basic 6.0 专业版, 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 KbMtzh
反馈