在查询中使用字段别名并不适用于某些第三方数据库

适用于: Microsoft Office Excel 2007

症状


当您尝试使用 Microsoft Query 将数据返回到 Microsoft Excel 中某些第三方数据库时,别名名称周围的单引号 (') 可能会导致查询失败。您收到的错误消息取决于您使用的数据源。

原因


这种行为是在 Microsoft Query 中的设计更改的结果。撇号现自动时使用别名,以防止出现错误引起的别名包含空格或保留的字。

解决方案


可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。

如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。如果未显示此部分,将申请提交到 Microsoft 客户服务和支持,以获取此修复程序。

注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。

Excel 2003 和 Excel 2007

不需要下载任何内容或 Microsoft Office Excel 2007 Microsoft Office Excel 2003 中修复此问题。有关如何启用此功能的说明本文的"更多信息"部分,请参阅

Excel 2002

此修复程序的全球 Excel 2002 版本具有的文件属性 (或更新) 在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间工具中的时区选项卡。
文件名称文件大小日期时间
Msqry32.msp2,100,76024-Sep-200201:29
Msqry32_admin.msp1,331,42424-Sep-200203:52
安装此修复程序后,以下文件将具有列出的属性或更高版本︰
文件名称文件版本文件大小日期时间
Msqry32.exe10.0.4510.0739,91213-Sep-200203:52
Excel 2000

此修复程序的全球 Excel 2000 版本具有的文件属性 (或更新) 在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间工具中的时区选项卡。
文件名称文件大小日期时间
Msqry32.msp1,166,69208-Nov-200213:41
Msqry32_admin.msp1,419,62808-Nov-200216:36
安装此修复程序后,以下文件将具有列出的属性或更高版本︰
文件名称文件版本文件大小日期时间
Msqry32.exe9.0.0.69191,089,53619-Sep-200220:31
安装此修复程序后,请按照本文以设置 AllowAlias 注册表项并激活该修复程序的"更多信息"一节中列出的步骤。

注意:安装的修复程序,以设置 AllowAlias 注册表项并在本文中,所述后,Microsoft Query 将表现在 Excel 97 中一样。


解决方法


Microsoft 提供的编程示例仅用于说明,没有任何明示或暗示的担保。这包括但不限于适销性或特定用途适用性的暗示担保。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持工程师可以帮助解释某个特定过程的功能,但是他们不会修改这些示例以提供额外的功能或构建过程以满足您的特定要求。

若要变通解决此问题,请添加引号的别名从内部 Microsoft Query。若要执行此操作,请执行以下步骤:
  1. 双击在 Microsoft Query 中的字段名称。
  2. 编辑列对话框中,键入字段名称别名用引号引起来。

    例如,键入
    ""Fred(带引号),然后单击
    OK.

    则将数据返回到 Excel 中后,可以使用 Microsoft 可视化基本知识的应用程序 (VBA) 来修改 SQL 和删除引号,从查询表或数据透视表︰
    ActiveSheet.Querytable(1).SQL = "new sql string"
    ActiveSheet.PivotTables(1).Pivotcache.Commandtext = "new sql string"

状态


Microsoft 已经确认这是本文的"适用于"一节中列出的 Microsoft 产品中的问题。

详细信息


重要:此部分、 方法或任务包含一些介绍如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重的问题。因此,请确保仔细按照下列步骤操作。为增加保护,对其进行修改之前备份注册表。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756如何备份和还原在 Windows 注册表
安装此修复程序后,请按照下列步骤以设置 AllowAlias 注册表项并启用此修补程序。使用您的 Excel 版本的相应步骤。

Excel 2010

不需要安装此修复程序。若要启用此修补程序,请执行以下步骤︰
  1. 退出所有 Office 程序。
  2. 单击开始,然后单击运行
  3. 打开框中,键入regedit,,然后单击确定
  4. 找到,然后单击以选中下面的注册表子项︰ HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\query\options后选择了在步骤 4 中指定的子项上的编辑菜单中,指向新建,然后单击DWORD 值
  5. 键入AllowAlias,,然后按 enter 键。
  6. AllowAlias,用鼠标右键单击,然后单击修改
  7. 数值数据框中,键入2,,然后单击确定
  8. 文件菜单上,单击退出以退出注册表编辑器。

Excel 2007

不需要安装此修复程序。若要启用此修补程序,请执行以下步骤︰
  1. 退出所有 Office 程序。
  2. 单击开始,然后单击运行
  3. 打开框中,键入regedit,然后单击确定
  4. 找到,然后单击以选中下面的注册表子项︰
    HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\query\options
  5. 选择在步骤 4 中指定的子项后,在编辑菜单上,指向新建,然后单击DWORD 值
  6. 键入AllowAlias,,然后按 enter 键。
  7. AllowAlias,用鼠标右键单击,然后单击修改
  8. 数值数据框中,键入2,,然后单击确定
  9. 文件菜单上,单击退出以退出注册表编辑器。
Excel 2003

不需要安装此修复程序。若要启用此修补程序,请执行以下步骤︰
  1. 退出所有 Office 程序。
  2. 单击开始,然后单击运行
  3. 打开框中,键入regedit,然后单击确定
  4. 找到,然后单击以选中下面的注册表子项︰
    HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\query\options
  5. 选择在步骤 4 中指定的子项后,在编辑菜单上,指向新建,然后单击DWORD 值
  6. 键入AllowAlias,,然后按 enter 键。
  7. AllowAlias,用鼠标右键单击,然后单击修改
  8. 数值数据框中,键入2,,然后单击确定
  9. 文件菜单上,单击退出以退出注册表编辑器。
Excel 2002

Office XP Service Pack 3 中第一次包含此更新。新 Office xp 的服务包的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰
307841如何获取最新的 Office XP 服务包
若要启用此修补程序,请执行以下步骤︰
  1. 退出所有 Office 程序。
  2. 单击开始,然后单击
    运行
  3. 打开框中,键入
    注册表编辑器,然后单击确定
  4. 找到,然后单击以选中下面的注册表子项︰
    HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\query\options
  5. 选择在步骤 4 中指定的子项后,在编辑菜单上,指向新建,然后单击
    DWORD 值
  6. 键入AllowAlias,,然后按 enter 键。
  7. AllowAlias,用鼠标右键单击,然后单击
    修改
  8. 数值数据框中,键入
    2,然后单击确定
  9. 文件菜单上,单击
    退出以退出注册表编辑器。
Excel 2000

若要启用此修补程序,请执行以下步骤︰
  1. 退出所有 Office 程序。
  2. 单击开始,然后单击
    运行
  3. 打开框中,键入
    注册表编辑器,然后单击确定
  4. 找到,然后单击以选中下面的注册表子项︰
    HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\query\options
  5. 选择在步骤 4 中指定的子项后,在编辑菜单上,指向新建,然后单击
    DWORD 值
  6. 键入AllowAlias,,然后按 enter 键。
  7. AllowAlias,用鼠标右键单击,然后单击
    修改
  8. 数值数据框中,键入
    2,然后单击确定
  9. 文件菜单上,单击
    退出以退出注册表编辑器。

参考资料


如果您不需要使用 Microsoft Query 中使用别名,可以完全关闭锯齿。

有关如何关闭在 Microsoft Query 中锯齿的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰
259347 XL2000︰ 错误消息︰ ORA 00923︰ 从关键字未找到预期的位置