Meerdere alter tables in een query

Status
Niet open voor verdere reacties.

MarcovD

Gebruiker
Lid geworden
3 feb 2006
Berichten
109
Ik heb een database welke ik bij verschillende personen heb uitstaan en deze wil ik gaan updaten. Voor deze update moet ik verschillende velden in bestaande tabellen toevoegen, daarom zou het mooi zijn als ik meerdere alter table statements kwijt kan in 1 query. Dit maakt het makkelijker om de update uit te voeren.

Ik zou dus graag een query maken "qryUpdate"met daarin bijvoorbeeld:
Alter table tabel1 add veld1 number;
Alter table tabel1 add veld2 number;
Update tabel1 set veld1 = 10;

Is dit mogelijk?

Als ik de query zo uitvoer dan krijg ik de melding dat de 2de alter table regel niet klopt, echter als ik deze apart uitvoer dan gaat deze wel goed.
 
Kan logischerwijs niet in 1 query.
Je kunt wel een stukje VBA schrijven en daarin je ALTER TABLE statements na elkaar uitvoeren.

Aparte werkwijze trouwens die je volgt...

Tardis
 
Tardis, dat van die VBA had ik zelf ook wel bedacht maar dat lijkt me zo omslachtig.

Wat bedoel je precies met aparte werkwijze?

Misschien is er iets mee uitleg nodig.
Ik heb een programma geschreven om facturen te maken voor vrienden van mij die voor zichzelf werken. Dat programma bestaat uit 2 delen 1 frontend en 1 backend.
De backend is de database, de frontend is het programma.
Soms moet ik het programma aanpassen en dat heeft dan ook (soms) gevolgen voor de database. Ik kan de database niet opnieuw neerzetten bij de gebruikers want daarin staat hun data. Vandaar dat ik dan de database bij de gebruikers wil updaten zodat de data bruikbaar blijft.

Ik hoop dat dit eea. duidelijker maakt.
 
Je zult ongetwijfeld een reden hebben om tabellen aan te passen als er iets wijzigt. Maar ik snap eerlijk gezegd ook niet waarom je in verschillende tabellen hetzelfde veld wilt toevoegen, met dezelfde waarde. Dit riekt naar een niet goed genormaliseerde tabel... Je Alter Table code kan overigens wel netter, want je kunt best in één keer meerdere velden toevoegen.
En het aanpassen van de tabellen via VBA is niet zo omslachtig als het lijkt.... In wezen gebruik je dezelfde code als in je queries, je hangt de code alleen achter een knop, en niet in een querie. Als je de veldnamen logisch doornummert, zoals je in het voorbeeld lijkt te doen, kun je dat zelfs ook volledig automatisch laten gebeuren, zodat je met een druk op de knop in al je tabellen steeds een nieuw veld met een nieuw volgnummer kunt aanmaken.
Maar ik ben ook benieuwd naar de reden voor je db-aanpassingen...
 
Laatst bewerkt:
Het voorbeeld dat ik heb gegeven in de eerste post was alleen een voorbeeld om aan te geven wat ik wil.
Dat ik het VBA ook kan dat snap ik maar dan moet ik ook weer een form maken met daarop een knop en daar achter dan weer de code die ik wil uitvoeren dat is volgens toch een stuk omslachtiger dan gewoon een query maken die meerdere aanpassingen in 1 keer uitvoer. Deze query kan ik dan ook exporteren en importeren in de bestaande database en daar uitvoeren.

Waarom ik de database wil aanpassen, is omdat zoals ik al aangaf het een facturen programma betreft en dit heb ik nu moeten aanpassen omdat je nu meerdere soorten btw hebt voor de bouw, namelijk 6 en 19 %. Dit betekent wel dat ik bij elke factuur regel wil kunnen aangeven om welke btw soort het gaat. En omdat ik de factuur later ook nog wil kunnen aanpassen/afdrukken terwijl misschien de btw inmiddels dan weer is aangepast, zal ik ook het gebruikte btw percentage moeten opslaan zodat ik altijd weet wat de uitgangssituatie was voor de betreffende factuur. Eerder was dit niet nodig aangezien er toen maar 1 btw percentage was (19%).

Ik hoop dat dit bijdraagt aan het oplossen van mijn vraag.
 
Je hoeft geen formulier met een knop te maken, als je de db automatisch wilt kunnen aanpassen. Er een procedure van maken, en die via een macro opstarten werkt ook. En een query maken die alles in één keer uitvoert, dat gaat nu eenmaal niet. Om het simpel te houden, zou ik het dus via een procedure+macro aansturen. Procedure en macro kun je, net ls een query, gewoon importeren in een andere db.
Voor wat betreft je btw: ik los dat doorgaans op via een aparte tabel met btw tarieven. BTW_ID, en BTW; meer heb je niet nodig. In de tabel Facturen zou je toch al een veld met BTW moeten hebben; de waarde daarvan haal je uiteraard op a.d.h.v. het artikelID. Daar heb je waarschijnlijk ook een aparte tabel voor, waarin je dan per artikel het BTW_ID in opslaat, zodat je het juiste BTW tarief kunt opslaan. In je facturen tabel sla je normaliter de op dat moment geldende waarde op; niet de gelinkte waarde. Want bij aanpassen van de tarieven wil je niet dat de reeds ingevoerde facturen veranderen.
Kortom: volgens mij zijn de aanpassingen die je hier aangeeft eenmalig, en zou ik geeneens tijd steken in het bedenken van een oplossing. Zelfs de tijd die ik nu steek in het typen van deze tekst kon al wel eens meer zijn dan de tijd die je nodig hebt voor deze aanpassingen ;)
 
Octafish je hebt gelijk dat het typen van de tekst waarschijnlijk langer duurt dan het maken van de oplossing voor mijn vraag.
Mijn vraag ging dan ook niet of ik wel of niet mijn programma op de juiste manier heb opgezet maar alleen of het mogelijk is om meerdere queries in 1 keer uit te voeren.
Maw ik was eigelijk alleen opzoek naar
Er een procedure van maken, en die via een macro opstarten werkt ook. En een query maken die alles in één keer uitvoert, dat gaat nu eenmaal niet. Om het simpel te houden, zou ik het dus via een procedure+macro aansturen. Procedure en macro kun je, net ls een query, gewoon importeren in een andere db.

Ik zet deze vraag nu op opgelost, want met je laatste commentaar (zie de quote) kan ik wel verder. :thumb:
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan