Query niet updateble

Status
Niet open voor verdere reacties.

Peetbeest

Gebruiker
Lid geworden
1 mei 2013
Berichten
44
Beste Accessers,
Ik heb een tabel Companies en een tabel CompaniesImport, beide tabellen hebben dezelfde velden. Vooraleer ik de records uit CompaniesImport-tabel importeer in de Companies-tabel wil ik eerst kijken of de CompanyName uit de CompaniesImport-tabel reeds bestaat in de Companies-Tabel. Hiervoor gebruik ik:
SELECT CompaniesImport.CompanyImportID, CompaniesImport.CompanyName, CompaniesImport.[Select]
FROM CompaniesImport INNER JOIN Companies ON CompaniesImport.CompanyName = Companies.CompanyName;
Daar een CompanyName meerdere keren kan voorkomen met steeds een ander adres wil ik met het selectievakje Select kunnen aanvinken welke Companies moeten verplaatst worden. Met bovenstaande query lukt het om de reeds bestaande namen in de tabel Companies uit de tabel CompaniesImport-tabel te filteren maar ik kan het selectievakje niet aanpassen. Kan iemand me uitleggen hoe dat komt en hoe ik dit kan oplossen.
Alvast hartelijk bedankt,
Dirk.
 
Als een query niet updateable is, komt dat omdat er wellicht verplichte velden niet in de query zitten, of omdat het een Totalen query is (niet in dit geval); er kunnen meerdere oorzaken zijn. In dit geval, omdat je een tabel wilt bijwerken, zou ik alleen de importtabel gebruiken en die filteren met een subquery. Ik neem aan dat je juist níet bedrijven wilt importeren die al in [Companies] staan, want dat zou dubbele records opleveren. En dus moet je de bedrijven in [CompaniesImport] uitsluiten die al in [Companies] staan. Of zie ik dat verkeerd?
 
Beste Michel,
Beide tabellen hebben GEEN verplichte velden.
Jouw uitleg klopt, alleen wilde ik het anders aanpakken.
Ik wil [CompaniesImport] filteren zodat deze enkel de records laat zien waarvan 'CompanyName' reeds in [Companies] aanwezig zijn. Het zou immers kunnen dat een bedrijf meerdere vestigingen heeft en dat deze record dan toch naar [Companies] verplaatst moet worden (met een ander adres, tel, ...).
Daarom wil ik de bedrijven uit [CompaniesImport] kunnen selecteren om later de geselecteerd bedrijven te kunnen verwijderen uit de lijst, om dan later de overgebleven bedrijven te importeren in [Companies].
 
Bedankt Michel, je hebt me in een goede richting gestuurd en heb daardoor een oplossing gevonden. Voor mij is het de eerste keer dat ik met een SubQuery werk. Hier is m'n oplossing:
Code:
SELECT CompaniesImport.CompanyImportID, CompaniesImport.CompanyName, CompaniesImport.[Select]
FROM CompaniesImport
WHERE ((((SELECT Companies.CompanyID FROM Companies WHERE Companies.CompanyName = CompaniesImport.CompanyName))<>False));
 
Kan simpeler:
Code:
SELECT CompanyImportID, CompanyName FROM CompaniesImport
WHERE CompanyImportID In(SELECT CompanyID FROM Companies)

Of
Code:
SELECT CompanyImportID, CompanyName FROM CompaniesImport
WHERE CompanyImportID Not In(SELECT CompanyID FROM Companies)

Afhankelijke van wat je wilt zien.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan