vba - que - ¿Por qué estoy viendo datos almacenados en caché en lugar de los datos actualizados?
¿qué es datos caché en un celular? (1)
DROP
la tabla y recrearla dentro de una transacción. Utilice dbForceOSFlush cuando realice la transacción, lo que "obliga al motor de la base de datos a eliminar inmediatamente todas las actualizaciones en el disco" . (Consulte el método Workspace.CommitTrans )
Una vez que se haya completado todo, DoCmd.OpenTable
debería mostrarle los datos nuevos.
Dim wrk As DAO.Workspace
Set wrk = DBEngine(0)
wrk.BeginTrans
CurrentDb.Execute "Drop Table [tbl_attributeData]", dbFailOnError
CurrentDb.Execute "SELECT qry_attributeData.* INTO tbl_attributeData FROM qry_attributeData", dbFailOnError
wrk.CommitTrans dbForceOSFlush
wrk.Close
DoCmd.OpenTable "tbl_attributeData"
Set wrk = Nothing
La información que se muestra después de DoCmd.OpenTable
es el estado anterior de los datos, no el estado actual.
CurrentDb().QueryDefs.Delete "qry_attributeData"
Set attriQryDef = CurrentDb().CreateQueryDef("qry_attributeData")
sqlStr = Replace(sqlStr, "#catReplace#", replaceVal)
attriQryDef.Connect = cxString1
attriQryDef.SQL = sqlStr
attriQryDef.Close
CurrentDb.Execute "Drop Table [tbl_attributeData]", dbFailOnError
CurrentDb.Execute "SELECT qry_attributeData.* INTO tbl_attributeData FROM qry_attributeData", dbFailOnError
DoCmd.OpenTable "tbl_attributeData"
Está mostrando datos temporales en caché y luego arroja el error:
No es un marcador válido
Parece que no puedo encontrar ningún dato en ninguna parte que muestre este problema.
La razón por la que estoy pasando por todo este problema es que tengo varios atributos que cambian la cantidad de columnas.