Pregunta

Tengo una hoja de cálculo que estoy convirtiendo en una base de datos de Access. Tengo una columna con los nombres de clientes escritos que deseo reemplazar con el número de cliente apropiado de nuestro sistema de contabilidad.

He creado una tabla con la información del cliente y una consulta que muestra qué ID debe insertarse en los datos de origen. Lo que estoy buscando es:

UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y

Donde X e Y provienen de qryIDPerCustomer.

¿Puedo usar un bucle? ¿Cómo puedo hacer referencia a otra consulta?

¿Fue útil?

Solución

Otra posibilidad en MS Access (nombres de objetos tomados de la respuesta de Tomalak):

UPDATE tblStarting_Data, qryIDPerCustomer
SET tblStarting_Data.CustomerID=qryIDPerCustomer.CustomerID
WHERE tblStarting_Data.TEMPCustomer=qryIDPerCustomer.CustomerName

Otros consejos

Creo que una ÚNETE te ayudará:

UPDATE 
  tblStarting_Data AS sd 
  INNER JOIN qryIDPerCustomer AS qc ON sd.TEMPCustomer = qc.CustomerName
SET 
  sd.CustomerID = qc.CustomerID;

Esto también se puede expresar como una subconsulta correlacionada (aunque es preferible la sintaxis de combinación):

UPDATE 
  tblStarting_Data
SET 
  CustomerID = (
    SELECT  CustomerID 
    FROM    qryIDPerCustomer
    WHERE   CustomerName = tblStarting_Data.TEMPCustomer
  )

No es necesario un bucle, ambas declaraciones actualizarán todos los registros en tblStarting_Data en un solo paso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top