El Asistente para convertir a SQL Server de ACC2002: No convertir anidados consultas si consultas base están convertida como funciones

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): 295235
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Moderada: Requiere macro básico, codificación y las capacidades de interoperabilidad.

Este artículo hace referencia a una base de datos de Microsoft Access (.mdb) y a un proyecto de Microsoft Access (.adp).

Síntomas
El Asistente para convertir a SQL Server de Microsoft Access no convierte una consulta anidada si se cumplen las condiciones siguientes:
  • La consulta incluye una consulta de nivel inferior que incluya una cláusula ORDER BY en su instrucción SQL.

    - y -

  • La consulta de nivel inferior está implicada en más de una combinación.
Causa
El Asistente para convertir a SQL Server convierte las consultas con cláusulas ORDER BY en funciones. Por lo tanto, la consulta de nivel inferior se convierte en una función. Cuando una función hay implicada en más de una combinación en una consulta, el Asistente para convertir a SQL Server no convierte la consulta.
Solución
Para evitar este problema, utilice uno de los métodos siguientes.

Método 1

Copie y pegue la instrucción de la consulta anidada en la base de datos Microsoft Access a una nueva consulta en el proyecto de Microsoft Access convertida. Para ello, siga estos pasos:
  1. Abra la base de datos que contiene la consulta anidada.
  2. Abra la consulta anidada en la vista Diseño.
  3. En el menú Ver , haga clic en Vista SQL .
  4. Seleccione toda la instrucción SQL para que se puede copiar.
  5. En el menú Edición , haga clic en Copiar .
  6. Cierre la consulta. No guarde los cambios.
  7. Abrir el proyecto convertido.
  8. En la ventana base de datos, haga clic en consultas bajo objetos y, a continuación, haga doble clic en Crear vista en el diseñador .
  9. En el cuadro de diálogo Mostrar tabla , haga clic en Cerrar .
  10. En la barra de herramientas Vista Diseño , haga clic en SQL para abrir la ventana SQL en la parte inferior de la pantalla.
  11. En la ventana SQL, seleccione el texto "SELECT FROM" de modo que puede pegar sobre el texto.
  12. En el menú Edición , haga clic en Pegar . Si es necesario, modifique la consulta para que se ajusta a la sintaxis de T-SQL adecuada.
  13. Guarde la vista y asígnele el mismo nombre que la consulta en el archivo de base de datos (.mdb) de Access.
  14. Ejecutar la consulta.
  15. Volver a la vista Diseño.
  16. En la columna Tipo de orden , seleccione el tipo de orden para el campo que desea ordenar por.
  17. Vuelva a ejecutar la consulta.
  18. Cierre y guarde la consulta.

Método 2

Antes de convertir la base de datos, la consulta de abrir el nivel inferior en la vista Diseño, quite el criterio de ordenación y vuelva a insertar el criterio de ordenación en la consulta convertida.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:" de este artículo.
Más información

Pasos para reproducir el comportamiento

Precaución : Si sigue los pasos descritos en este ejemplo, modificará la base de datos de ejemplo Neptuno.mdb. Quizás desee hacer una copia de seguridad del archivo Neptuno.mdb y realizar estos pasos sobre una copia de la base de datos.

  1. Abra la base de datos de ejemplo Neptuno.mdb.
  2. Cree una consulta nueva en la vista Diseño.
  3. En el cuadro de diálogo Mostrar tabla , haga clic en Cerrar .
  4. En el menú Ver , haga clic en Vista SQL .
  5. Escriba o pegue el texto siguiente en la ventana SQL:
       SELECT Employees.LastName,         Orders.OrderDate,         Orders.ShipCountry,         [Order Details Extended].ExtendedPrice,         Products.ProductName,         Categories.CategoryName   FROM Employees       INNER JOIN (Categories         INNER JOIN ((Orders            INNER JOIN [Order Details Extended]      ON Orders.OrderID = [Order Details Extended].OrderID)         INNER JOIN Products           ON [Order Details Extended].ProductID = Products.ProductID)             ON Categories.CategoryID = Products.CategoryID)               ON Employees.EmployeeID = Orders.EmployeeID;					
  6. Guarde la consulta como qryNested y ciérrelo.
  7. Convertir la base de datos.
  8. Cuando termine el Asistente para convertir a SQL Server, tenga en cuenta que la consulta qryNested no era convertidas en el nuevo proyecto de Microsoft Access.
pra convertir anidado consultas orden de ordenación

Propiedades

Id. de artículo: 295235 - Última revisión: 01/30/2014 16:10:45 - Revisión: 3.0

Microsoft Access 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug KB295235 KbMtes
Comentarios