¡Gracias Rojo!
No había contestado ya que estaba probando lo que me dijiste.
En efecto cambie el tipo de campo de mi columna clavecomp y mi código me quedo así:
CurrentDb.Execute ("ALTER TABLE Auditoria_vieja ADD ClaveComp Text(200) index")
CurrentDb.Execute ("UPDATE Auditoria_vieja SET ClaveComp=[CODIGO ITEM]&[DESCRIPCION]&[LOTE]&[LOCALIZADOR]")
CurrentDb.Execute ("ALTER TABLE Auditoria_nueva ADD ClaveComp Text(200) index")
CurrentDb.Execute ("UPDATE Auditoria_nueva SET ClaveComp=[CODIGO ITEM]&[DESCRIPCION]&[LOTE]&[LOCALIZADOR]")
La verdad es que no utilice la opcion que me diste, me fui creo yo por el camino largo, y lo que hace mi archvio es:
1.- Importa inventario viejo, y crea clave unica
2.- Importa inventario nuevo, y crea clave unica
3.- Une los dos inventarios dejando registros unicos
4.- Muevo las cantidades mi inventario viejo y del nuevo a mi tabla auditoria
Este fue mi codigo, que como lo digo, creo es muy largo para lo que se tiene que hacer, igual si puedes decirme algo sobre el codigo seria de mucha ayuda, para futuros trabajos.
Set db = CurrentDb
Dim miSQL0 As String
Dim miSQL1 As String
Dim salida As Integer
Dim qry As QueryDef
CurrentDb.Execute ("ALTER TABLE Auditoria_vieja ADD ClaveComp Text(200) index")
CurrentDb.Execute ("UPDATE Auditoria_vieja SET ClaveComp=[CODIGO ITEM]&[DESCRIPCION]&[LOTE]&[LOCALIZADOR]")
CurrentDb.Execute ("ALTER TABLE Auditoria_nueva ADD ClaveComp Text(200) index")
CurrentDb.Execute ("UPDATE Auditoria_nueva SET ClaveComp=[CODIGO ITEM]&[DESCRIPCION]&[LOTE]&[LOCALIZADOR]")
''''''''Movemos auditoria vieja''''''''
miSQL0 = "INSERT INTO Auditoria ([ORGANIZACION DE INVENTARIO], [DIVISION],[SUBINVENTARIO],[BUSINESS UNIT],[CODIGO ITEM],[DESCRIPCION],[LOTE],[FECHA CREACION LOTE],[LOCALIZADOR],[CLAVECOMP])" _
& "SELECT Auditoria_vieja.[ORGANIZACION DE INVENTARIO],Auditoria_vieja.[DIVISION],Auditoria_vieja.[SUBINVENTARIO],Auditoria_vieja.[BUSINESS UNIT],Auditoria_vieja.[CODIGO ITEM], Auditoria_vieja.[DESCRIPCION]," _
& "Auditoria_vieja.[LOTE],Auditoria_vieja.[FECHA CREACION LOTE],Auditoria_vieja.[LOCALIZADOR],Auditoria_vieja.[CLAVECOMP] FROM Auditoria_vieja"
Set qry = db.CreateQueryDef("MueveDatos", miSQL0)
DoCmd.OpenQuery "MueveDatos"
''''''''''''borro query'''''''''''''
db.QueryDefs.Delete "MueveDatos"
''''''''Movemos auditoria nueva''''''''
miSQL1 = "INSERT INTO Auditoria ([ORGANIZACION DE INVENTARIO], [DIVISION],[SUBINVENTARIO],[BUSINESS UNIT],[CODIGO ITEM],[DESCRIPCION],[LOTE],[FECHA CREACION LOTE],[LOCALIZADOR],[CLAVECOMP])" _
& "SELECT Auditoria_nueva.[ORGANIZACION DE INVENTARIO],Auditoria_nueva.[DIVISION],Auditoria_nueva.[SUBINVENTARIO],Auditoria_nueva.[BUSINESS UNIT],Auditoria_nueva.[CODIGO ITEM], Auditoria_nueva.[DESCRIPCION]," _
& "Auditoria_nueva.[LOTE],Auditoria_nueva.[FECHA CREACION LOTE],Auditoria_nueva.[LOCALIZADOR],Auditoria_nueva.[CLAVECOMP] FROM Auditoria_nueva"
Set qry = db.CreateQueryDef("MueveDatos", miSQL1)
DoCmd.OpenQuery "MueveDatos"
''''''''''''borro query'''''''''''''
db.QueryDefs.Delete "MueveDatos"
''''''''actualizar cantidad ''''''''''''
miSQL2 = "UPDATE Auditoria, Auditoria_nueva SET Auditoria.[CANTIDAD NEW] = [Auditoria_nueva].[CANTIDAD] WHERE (((Auditoria.CLAVECOMP)=[Auditoria_nueva].[ClaveComp]));"
Set qry = db.CreateQueryDef("Actualiza_nuevo", miSQL2)
miSQL3 = "UPDATE Auditoria, Auditoria_vieja SET Auditoria.[CANTIDAD OLD] = [Auditoria_vieja].CANTIDAD WHERE (((Auditoria.CLAVECOMP)=[Auditoria_vieja].[ClaveComp]));"
Set qry = db.CreateQueryDef("Actualiza_viejo", miSQL3)
DoCmd.OpenQuery "Actualiza_viejo"
DoCmd.OpenQuery "Actualiza_nuevo"
DoCmd.DeleteObject acTable, "Auditoria_nueva"
DoCmd.DeleteObject acTable, "Auditoria_vieja"
db.QueryDefs.Delete "Actualiza_viejo"
db.QueryDefs.Delete "Actualiza_nuevo"
Saludos y nuevamente muchas gracias