[MS Access]Meerdere tabellen tegelijk updaten

Pagina: 1
Acties:
  • 454 views sinds 30-01-2008
  • Reageer

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 27-05 00:03
Ik wil van meerdere tabellen dezelfde kolom in een query updaten, en ook van 2 tabellen een andere kolom die ik bij de rest niet wil updaten:

Maar nu werkt zelfs de eerste helft al niet en dus roep ik de hulp van ubernerds in :)

Hier is mn query:
code:
1
2
3
4
UPDATE beek_debav, debilt_debav, dekooy_debav, eelde_debav, 
hvholland_debav, ijmuiden_debav, schiphol_debav, vlieland_debav, 
vlissingen_debav
SET [rrr] = [rrr]/10;


Als ik dit uitvoer, krijg ik de foutmelding:
Het opgegeven veld [rrr] kan naar meer dan een tabel verwijzen in de component FROM van uw SQL-instructie.
Daarnaast moet dit stukje query er ook nog bij, alleen ik weet niet hoe ik die 2 query's kan combineren... (kan het ook niet vinden en met UNION werkt het niet)

code:
1
UPDATE dekooy_debav, vlissingen_debav SET [ta] = [ta]/10;


Alvast bedankt :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Dat werkt niet.
UPDATE kan slechts 1 tabel updaten. Je zult met meerdere update statemens moeten werken.

https://fgheysels.github.io/


Verwijderd

Ik zou het zo 123 niet weten.

Probeer eens het volgende forum:

http://houdt.got.spamvrij.nl

Hier kan je erg veel terugvinden.

Suc6 er mee!

Remco

[ Voor 15% gewijzigd door curry684 op 25-05-2004 11:07 ]


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 27-05 00:03
whoami schreef op 15 maart 2004 @ 11:40:
Dat werkt niet.
UPDATE kan slechts 1 tabel updaten. Je zult met meerdere update statemens moeten werken.
Dat heb ik ook al geprobeert, maar hoe rijg ik die aan elkaar in een query, heb geen zin elke keer weer een query aan te passen

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Je kan het niet aan elkaar rijgen met 1 query.
Ik weet ook niet of je in Access batches kunt uitvoeren met meerdere sql statements (ik betwijfel het), maar in SQL Server zou je het bv zo kunnen doen:

code:
1
2
3
4
5
update tabelA set ...
GO

update tabelB set ...
GO

https://fgheysels.github.io/


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 27-05 00:03
whoami schreef op 15 maart 2004 @ 11:52:
Je kan het niet aan elkaar rijgen met 1 query.
Ik weet ook niet of je in Access batches kunt uitvoeren met meerdere sql statements (ik betwijfel het), maar in SQL Server zou je het bv zo kunnen doen:

code:
1
2
3
4
5
update tabelA set ...
GO

update tabelB set ...
GO
hmm zal het ff proberen, maar als meerdere query's niet mogelijk is, is het dan wel mogelijk om een variabele in een query op te nemen, zo dat ik elke keer zegmaar de naam van de nieuwe tabel gewoon in kan vullen zonder de query aan te passen?

edit: hmmm GO werkt niet :'(

[ Voor 4% gewijzigd door DarkShadow op 15-03-2004 11:59 ]


  • ruthger
  • Registratie: September 2000
  • Laatst online: 22-11-2024
Ik denk dat je je database verder moet normaliseren. Kijk daar eerst eens naar.

Maar je fout je hem in dat je elke veld van elke tabel expliciet moet vermelden in de set statement.

code:
1
2
3
4
5
6
7
UPDATE beek_debav, debilt_debav, dekooy_debav, eelde_debav, 
hvholland_debav, ijmuiden_debav, schiphol_debav, vlieland_debav, 
vlissingen_debav
SET beek_debav.[rrr] = beek_debav.[rrr]/10,
debilt_debav.[rrr] = debilt_debav.[rrr]/10,
dekooy_debav.[rrr] = dekooy_debav.[rrr]/10,
eelde_debav.[rrr] = eelde_debav.[rrr]/10 enzenz

Veni, vidi et cervesiam


Verwijderd

Kan je het niet in een module verwerken?

Dit is een voorbeeld die ik zelf in mijn access programma gebruik.

is in de richting van:

Function Orderregistreren(Verkoopordernummer As Long, Artikelnummer As Long)
CurrentDb.Execute "UPDATE Artikel SET Artikel.Verkoopordernummer = " & Verkoopordernummer & " WHERE Artikel.Artikelnummer = " & Artikelnummer & ";"
End Function

Je roept dan de funtie aan in de bva code.
bijv: Call Orderregistreren(........ , .........)

Hierbij is Artikel de tabel en Artikel.Verkoopordernummer een kolom in die tabel.
Op deze manier kan je meerdere tabellen/kolommem updaten als ik het goed heb.

Ik hoop dat je er wat aan hebt.

[ Voor 10% gewijzigd door Verwijderd op 15-03-2004 12:00 ]


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 27-05 00:03
Ruthger schreef op 15 maart 2004 @ 11:56:
Ik denk dat je je database verder moet normaliseren. Kijk daar eerst eens naar.

Maar je fout je hem in dat je elke veld van elke tabel expliciet moet vermelden in de set statement.

blabla
Deez voert hij op het moment uit zonder foutmeldingen, ik neem aan dat het verder goed gaat :)
Bedankt! Wat bedoel je trouwens met verder normaliseren van de database? En wat zijn de voordelen daarvan?

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 27-05 00:03
Verwijderd schreef op 15 maart 2004 @ 11:59:
Kan je het niet in een module verwerken?

Dit is een voorbeeld die ik zelf in mijn access programma gebruik.

is in de richting van:

Function Orderregistreren(Verkoopordernummer As Long, Artikelnummer As Long)
CurrentDb.Execute "UPDATE Artikel SET Artikel.Verkoopordernummer = " & Verkoopordernummer & " WHERE Artikel.Artikelnummer = " & Artikelnummer & ";"
End Function

Je roept dan de funtie aan in de bva code.
bijv: Call Orderregistreren(........ , .........)

Hierbij is Artikel de tabel en Artikel.Verkoopordernummer een kolom in die tabel.
Op deze manier kan je meerdere tabellen/kolommem updaten als ik het goed heb.

Ik hoop dat je er wat aan hebt.
hmmm bedankt, dat kan zeker later nog erg van toepassing zijn!

Verwijderd

whoami schreef op 15 maart 2004 @ 11:40:
Dat werkt niet.
UPDATE kan slechts 1 tabel updaten. Je zult met meerdere update statemens moeten werken.
[wildegokmode]
Kan het ook niet als je van die twee tabellen een view maakt en vervolgens probeert die view te updaten??
[/wildegokmode]

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 27-05 00:03
hmmm hij was erg aan het rekenen dus ik ben maar even gaan eten, maar nu bleek dat hij uiteindelijk niets heeft veranderd :?

Ook als ik de query maar op 2 tabellen uitvoer loopt hij al vrij snel vast

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Verwijderd schreef op 15 maart 2004 @ 12:13:
[...]


[wildegokmode]
Kan het ook niet als je van die twee tabellen een view maakt en vervolgens probeert die view te updaten??
[/wildegokmode]
Ik denk het niet.

https://fgheysels.github.io/


  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

Ik weet wel zeker van niet: Access kent geen views.

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant


Verwijderd

ATS schreef op 15 maart 2004 @ 13:09:
Ik weet wel zeker van niet: Access kent geen views.
Jawel, alleen heet het dan een query......

Verwijderd

testje

[ Voor 99% gewijzigd door Verwijderd op 15-03-2004 13:32 ]


Verwijderd

De enigvoudigste manier om een update query in elkaar te sleutelen (ook over meerdere tabellen) is door gebruik te maken van de query builder die in access zit.

Selecteer de juiste tabellen in het scherm en zorg dat ze correct aan elkaar gekoppeld zijn (gaat automatisch als je relaties hebt gelegd).
Sleep de velden die je wilt wijzigen naar het rooster.
Selecteer uit het menu Query --> query bijwerken.
Je krijgt nu het veld "wijzigen in" in het raster en je kan nu bij het juiste veld de juiste berekening invoeren (i.e. [tabelnaam].[veldnaam]/10 )
Selecteer nu uit het menu beeld --> SQL. Kopier dit SQL statement naar je code.

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 27-05 00:03
Verwijderd schreef op 15 maart 2004 @ 13:21:
De enigvoudigste manier om een update query in elkaar te sleutelen (ook over meerdere tabellen) is door gebruik te maken van de query builder die in access zit.

Selecteer de juiste tabellen in het scherm en zorg dat ze correct aan elkaar gekoppeld zijn (gaat automatisch als je relaties hebt gelegd).
Sleep de velden die je wilt wijzigen naar het rooster.
Selecteer uit het menu Query --> query bijwerken.
Je krijgt nu het veld "wijzigen in" in het raster en je kan nu bij het juiste veld de juiste berekening invoeren (i.e. [tabelnaam].[veldnaam]/10 )
Selecteer nu uit het menu beeld --> SQL. Kopier dit SQL statement naar je code.
Als ik dat doe loopt hij nog steeds vast :(, naja pas na het aanpassen van de code, dit levert de volgende code op:

code:
1
2
3
4
5
6
7
8
9
10
UPDATE beek_debav, debilt_debav, dekooy_debav, eelde_debav, 
hvholland_debav, ijmuiden_debav, schiphol_debav, vlieland_debav, 
vlissingen_debav SET beek_debav.ff = [ ], debilt_debav.ff = [ ], dekooy_debav.ff = 
[ ], eelde_debav.ff = [ ], hvholland_debav.ff = [ ], ijmuiden_debav.ff = [ ], 
schiphol_debav.ff = [ ], vlieland_debav.ff = [ ], vlissingen_debav.ff = [ ]
WHERE ((([beek_debav].[ff])='-9,9') AND (([debilt_debav].[ff])='-9,9') AND 
(([dekooy_debav].[ff])='-9,9') AND (([eelde_debav].[ff])='-9,9') AND 
(([hvholland_debav].[ff])='-9,9') AND (([ijmuiden_debav].[ff])='-9,9') AND 
(([schiphol_debav].[ff])='-9,9') AND (([vlieland_debav].[ff])='-9,9') AND 
(([vlissingen_debav].[ff])='-9,9'));


Die pas ik dan aan naar dit:

code:
1
2
3
4
5
6
7
8
9
10
UPDATE beek_debav, debilt_debav, dekooy_debav, eelde_debav, 
hvholland_debav, ijmuiden_debav, schiphol_debav, vlieland_debav, 
vlissingen_debav SET beek_debav.ff = [ ], debilt_debav.ff = [ ], dekooy_debav.ff = 
[ ], eelde_debav.ff = [ ], hvholland_debav.ff = [ ], ijmuiden_debav.ff = [ ], 
schiphol_debav.ff = [ ], vlieland_debav.ff = [ ], vlissingen_debav.ff = [ ]
WHERE ((([beek_debav].[ff])='-9,9') Or (([debilt_debav].[ff])='-9,9') Or 
(([dekooy_debav].[ff])='-9,9') Or (([eelde_debav].[ff])='-9,9') Or 
(([hvholland_debav].[ff])='-9,9') Or (([ijmuiden_debav].[ff])='-9,9') Or 
(([schiphol_debav].[ff])='-9,9') Or (([vlieland_debav].[ff])='-9,9') Or 
(([vlissingen_debav].[ff])='-9,9'));


Omdat bij AND hij niets gaat bijwerken (volgens mij kijkt die dan naar alle tabbellen of die allemaal op hetzelfde moment een '-9,9' waarde hebben, dit is echter op allerlei verschillende tijdstippen zo...

Ik heb wel relaties gewoon gelegd, in zon relatie scherm alle tabellen erna toe gesleept.

[ Voor 35% gewijzigd door DarkShadow op 16-03-2004 10:21 ]


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 27-05 00:03
edit: dubbelpost :P

[ Voor 100% gewijzigd door DarkShadow op 16-03-2004 10:20 ]


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
zou je:

- je vorige post aan kunnen passen, hij is veel te breed
- [rml]whoami in "[ MS Access]Meerdere tabellen tegelijk up..."[/rml] nog eens door willen nemen als psuedo code, die doet namelijk precies wat je wilt....
- noem anders ook even op in welk platform je aan het devven bent (asp / vba / vb)

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Verwijderd schreef op 15 maart 2004 @ 13:14:
[...]

Jawel, alleen heet het dan een query......
Maar, dan heb je nog een instead of trigger oid nodig.
Als je een VIEW hebt, die bestaat uit meerdere tabellen, dan kan je er niet zomaar een INSERT / UPDATE of DELETE statement op loslaten.
Je zult dan mbhv een instead of trigger moeten specifieren welke gegevens er in welke tabellen moeten komen.

Topicstarter:
Ik zou toch maar even kijken hoe je je datamodel kunt normaliseren. In de P&W FAQ vind je wel een linkje naar een tutorial over normaliseren.

[ Voor 16% gewijzigd door whoami op 16-03-2004 10:26 ]

https://fgheysels.github.io/


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 27-05 00:03
FvKnijff schreef op 16 maart 2004 @ 10:24:
zou je:

- je vorige post aan kunnen passen, hij is veel te breed
- [rml]whoami in "[ MS Access]Meerdere tabellen tegelijk up..."[/rml] nog eens door willen nemen als psuedo code, die doet namelijk precies wat je wilt....
- noem anders ook even op in welk platform je aan het devven bent (asp / vba / vb)
-hmmm zo layout verneukend is het nou ook weer niet...
-Die post heb ik doorgenomen, maar dat werkt niet
-Als je het topic had doorgelezen weet je dat ik helemaal niet aan het devven ben, maar gewoon een simpele database heb gebouwt in MS Access (handig progje van microsoft), en alleen met sql-query's mn tabellen gemakkelijk wil updaten (asp wil ik later misschien nog gaan toepassen, licht aan het onderzoek)

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 27-05 00:03
@whoami, ik zal die tutorail even doornemen, wist niet dat deze er was :), bedankt

[ Voor 77% gewijzigd door DarkShadow op 16-03-2004 11:03 ]

Pagina: 1