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

Seleccione idioma Seleccione idioma
Id. de artículo: 295235 - Ver los productos a los que se aplica este artículo
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).

Expandir todo | Contraer todo

En esta página

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.

Propiedades

Id. de artículo: 295235 - Última revisión: jueves, 30 de enero de 2014 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft Access 2002 Standard Edition
Palabras clave: 
kbnosurvey kbarchive kbmt kbbug KB295235 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): 295235

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