Jag har en tabell för ”bilar” och i den tabellen så har jag ett fält för körda ”mil”. Är det någon som har varit i samma situation och hittat en lösning. Läs in Excel i en tillfällig tabell ex TEMP >- Skapa poster för de regnr som inte finns i BILAR Testa med: Helt underbart. Flera fält komma separerar du bara: Tack!Från Excel-Access...
Jag har ”regnr” som primärnyckel.
En gång i månaden så skall milen uppdateras, jag får en Excel-fil med ”regnr” och ”mil”.
Jag tycker att det borde vara en smal sak, men jag stöter på patrull.
Jag tänkte först att filen borde vara av samma antal fält och att jag bara raderade och importerade, men det blev två bekymmer, alla fält är inte med och det primära fältet kan jag inte ta bort för att de ingår i flera relationer.
Är det någon som vet hur jag uppdaterar på ett enkelt sätt.
Mvh
/RobertWSv: Från Excel-Access...
Jag skulle bli mycket glad för lite tips.
Mvh
/RobertWSv: Från Excel-Access...
Låt säga att din "riktiga" tabell heter BILAR
och nyckelfält REGNR och antal mil ANTALMIL
Sedan kör du ett antal SQL-satser (eller frågor)
- Skapa poster för de regnr som inte finns i BILAR
INSERT INTO BILAR (REGNR, ev andra fält)
SELECT TEMP.REGNR,ev andra fält FROM TEMP
WHERE TEMP.REGNR NOT IN (SELECT DISTINCT REGNR FROM BILAR)
- Uppdatera alla poster med data från TEMP
UPDATE BILAR SET BILAR.ANTALMIL=TEMP.ANTALMIL
FROM TEMP
WHERE BILAR.REGNR=TEMP.REGNR
HTH
/Terje
(Ändrat pga såg att jag missuppfattat)Sv: Från Excel-Access...
> INSERT INTO BILAR (REGNR, ev andra fält)
> SELECT TEMP.REGNR,ev andra fält FROM TEMP
> WHERE TEMP.REGNR NOT IN (SELECT DISTINCT REGNR FROM BILAR)
Det funkar kanon fast det blir automatiskt:
INSERT INTO BILAR ( REGNR )
SELECT TEMP.regnr
FROM TEMP
WHERE (((TEMP.regnr) Not In (SELECT DISTINCT REGNR FROM BILAR)));
Så det är OK
Men nästa:
>- Uppdatera alla poster med data från TEMP
> UPDATE BILAR SET BILAR.ANTALMIL=TEMP.ANTALMIL
> FROM TEMP
> WHERE BILAR.REGNR=TEMP.REGNR
Där får jag
"Syntaxfel (operator saknas) i frågeuttrycket ’TEMP.ANTALMIL FROM TEMP’"
Om jag fick detta att funka så tycker jag att det är en perfekt lösning för mej.
Vet någon tror någon
Tar tacksamt emot hjälp..
/RobertWSv: Från Excel-Access...
UPDATE BILAR INNER JOIN
TEMP ON BILAR.REGNR=TEMP.REGNR
SET BILAR.ANTALMIL=TEMP.ANTALMIL
Eller:
UPDATE BILAR
SET BILAR.ANTALMIL=TEMP.ANTALMIL
FROM BILAR INNER JOIN
TEMP ON BILAR.REGNR=TEMP.REGNR Sv: Från Excel-Access...
>UPDATE BILAR INNER JOIN
> TEMP ON BILAR.REGNR=TEMP.REGNR
>SET BILAR.ANTALMIL=TEMP.ANTALMIL
Funkar kanon, Nu skall jag bara försöka få flera fält att följa med i överföringen...
Tack Andreas, du har räddat min dag :-)
/RobertW
PS: jag fick ett tips om att ADO-lösning kunde vara ett alternativ, jag är nyfiken på hur det går till, jag har inte en aning om det, men det låter intressant.
Den lösningen jag har fått nu funkar precis som jag vill, men man blir ju nyfiken :-)Sv: Från Excel-Access...
UPDATE BILAR INNER JOIN
TEMP ON BILAR.REGNR=TEMP.REGNR
SET BILAR.ANTALMIL=TEMP.ANTALMIL, BILAR.Ytterligarefält=TEMP.YtterligarefältSv: Från Excel-Access...
Jag har nu gjort den här månadens uppdatering med hjälp av dessa frågor, och det funkar toppen. Jag gjorde ett makro som kör båda efter varandra, jag skall vid tid försöka att få själva överföringen från Excel och gå i samma makro oxå.
Tack för hjälpen Andreas och Twix
/RobertW