Gewijzigde data vinden

Status
Niet open voor verdere reacties.

patricw

Gebruiker
Lid geworden
27 mei 2009
Berichten
229
Beste allemaal,

Ik heb een excel file met data (6 tab bladen). Ik heb de data in excel in het goede format gezet en vervolgens de data van 1 tabblad in access geimporteerd. Vervolgens wil ik de data in access vergelijken met de data in de gelinkte excel file, deze wordt namelijk door derden aangepast (zowel nieuwe data als veranderingen in bestaande data).

Ik hoopte met onderstaande query de nieuwe en veranderde records te vinden maar ik krijg als resultaat ook sommige records die exact hetzelfde zijn, zelfs als in de gelinkte tabel niets veranderd heb.

Is onderstaande query wel de (een) juiste?
--------------------------------------------------------------------------------------------------------------------------------
SELECT [HC TAC lots link].[HC lot], [HC TAC lots link].Konica, [HC TAC lots link].Resin, [HC TAC lots link].knurl, [HC TAC lots link].sidetape, [HC TAC lots link].Core, [HC TAC lots link].tension1, [HC TAC lots link].tension2, [HC TAC lots link].Length, [HC TAC lots link].[Remarks PLC], [HC TAC lots link].[Remarks DJM]
FROM [HC TAC lots link] LEFT JOIN [HC TAC lots] ON ([HC TAC lots link].tension1 = [HC TAC lots].tension1) AND ([HC TAC lots link].sidetape = [HC TAC lots].sidetape) AND ([HC TAC lots link].knurl = [HC TAC lots].knurl) AND ([HC TAC lots link].Resin = [HC TAC lots].Resin) AND ([HC TAC lots link].Konica = [HC TAC lots].Konica) AND ([HC TAC lots link].[HC lot] = [HC TAC lots].[HC lot]) AND ([HC TAC lots link].tension2 = [HC TAC lots].tension2) AND ([HC TAC lots link].Length = [HC TAC lots].Length)
WHERE ((([HC TAC lots link].[HC lot]) Is Not Null) AND (([HC TAC lots].[HC lot]) Is Null)) OR ((([HC TAC lots].Konica) Is Null)) OR ((([HC TAC lots].Resin) Is Null)) OR ((([HC TAC lots].knurl) Is Null)) OR ((([HC TAC lots].sidetape) Is Null)) OR ((([HC TAC lots].tension1) Is Null)) OR ((([HC TAC lots].tension2) Is Null)) OR ((([HC TAC lots].Length) Is Null));
-------------------------------------------------------------------------------------------------------------------------------

Alvast dank,

groet, patric
 
Ik kan aan deze query niet zo heel veel zien, behalve dat de syntax wel correct lijkt.

In het algemeen zou ik de query die je gebruikt om de te checken records er uit te vissen zo kaal mogelijk houden, en alleen de sleutelgegevens opnemen en hem opslaan onder de naam qSelectie. Je voorkomt hiermee dat er records in de recordset sluipen die je eigenlijk niet wilt zien.
Daarna kun je via een nieuwe selectiequery de volledige velden uit de te controleren tabel opnemen, en de sleutelvelden uit die tabel koppelen aan de velden uit de query qSelectie.
Dat zou een zuivere recordset moeten opleveren.

Michel
 
Dank voor je reactie.

Het probleem is dat alle velden van de records mogelijk kunnen veranderen dus ik moet ze allemaal checken.

Ik heb het probleem met lege velden, het resultaat van de query geeft records die hetzelfde zijn, maar toch getoond worden op basis van velden die leeg zijn. Als ik alleen velden opneem die geen lege velden hebben krijg ik ook geen records als resultaat, zoals het nu hoort te zijn (2 identieke tabellen, 1 geimporteerd en de andere gelinkt).

Ik heb het geprobeerd met een testtabel en dat ging prima.:confused:
 
Kun je een testdb neerzetten met de velden en wat onduidelijke data, zodat we wat kunnen stoeien? Want je maakt het er voor ons niet makkelijker op... ;)

Overigens kun je het criteria nog eens proberen uit te breiden naar Is Null Or "" ; dat geeft soms ook hele andere resultaten.

Michel
 
Ik heb een acces file en een excel file toegevoegd. In access staat een geimporteerde tabel en een gelinkte tabel (is dezelfde tabel die in de loop van de tijd geupdate zal worden).
Nu wil ik de alle velden van de records uit de link (dus de excel file) vergelijken met de data in de geimporteerde tabel en vervolgens de nieuwe records toevoegen en veranderde records updaten.

Het probleem is dat ik bij de vergelijking van de 2 tabellen (die in mijn ogen nu identiek zijn) alle records als resultaat krijg met de find unmatched query.

Het toevoegen/updaten lukt me wel.

Wat doe ik verkeerd?

groet, patric
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan