Bepaalde waarden in een veld verplaatsen naar een ander veld

Status
Niet open voor verdere reacties.

coolice

Gebruiker
Lid geworden
12 feb 2007
Berichten
14
Veld "Overig" bevat meerdere waarden, waaronder "ACID", "AIFF" en "WAV". Nu heb ik een nieuw Veld "Audio Format" (meerdere waarden) aangmeaakt. Nu wil ik de waarden "ACID", "AIFF" en "WAV" uit Veld "Overig" overzetten naar Veld "Audio Format". Helaas is dit met kopiëren en plakken niet mogelijk. De enige methode is om dit per record handmatig in Veld "Audio Format" de waarden aan te vinken en in Veld "Overig" de waarden uit te vinken. Weet iemand hoe ik dit kan automatiseren? Als dit d.m.v. een VBscript dient te gebeuren, graag duidelijk uitleggen hoe dit moet. Ik heb niet zoveel verstand van Visual Basic, wel van Basic.

Ook heb ik geprobeerd om de database naar Excel te exporteren, aanpassen en weer importeren in Access. Helaas kan Access geen velden met meerdere waarden importeren, deze velden zijn blanco.
 
Laatst bewerkt:
Ik snap niet helemaal wat je aan het doen bent; en gezien de reacties ben ik niet de enige :). Misschien moet je een voorbeeldje maken, dat maakt het wat duidelijker. Wat ik wel denk te lezen is dat je een veld hebt gemaakt met meervoudige waarden. Daar ben ik bepaald geen voorstander van. Al was het maar omdat je dan tegen dit soort problemen aanloopt :). Microsoft heeft deze 'uitvinding' nogal trots op de markt geslingerd, maar daarbij geen enkele rekening gehouden met gangbare database conventies. Gevolg: je verliest alle compatibiliteit met normale databases, en imports vanuit Excel, zoals je geprobeerd hebt, zijn volslagen kansloos. Maar hé, zolang ze maar blijven lachen bij Microsoft :).
 
Bedankt voor je reactie, Octafish.

Beide velden mogen "Meerdere waarden toestaan". Jij geeft aan dat je daar geen voorstander van bent. Kun je mij aangeven hoe jij dit dan aanpakt?

Veld "Audio Format" heeft de volgende instellingen op Opzoeken:

- Weergave besturingselement: Keuzelijst met invoervak
- Type rijbron: Lijst met waarden
- Rijbron: "ACID";"AIFF";"WAV"

- Meerdere waarden toestaan: Ja
 
Waarom hernoem je het veld [Overig] niet gewoon naar [Audio Format]? Of is dat te simpel?
De reden dat ik geen voorstander van een veld met meervoudige waarden ben (en dan zeg ik het hééél voorzichtig) is dat je database van het ene op het andere moment niet meer genormaliseerd is. En dat zou hét belangrijkste uitgangspunt van een database moeten zijn: één veld mag maar één waarde bevatten. En dat gooi je dus met alle plezier vrijwillig overboord :). Resultaat: je kunt je database nooit meer upgraden naar een ander database format, mocht dat ooit nodig zijn. En je maakt het jezelf en ontwikkelaars behoorlijk ingewikkeld om de informatie er goed uit te krijgen. Je kunt wel iets doen met zo'n veld, maar het veld updaten bijvoorbeeld is niet mogelijk. Zeker niet vanuit een ander veld met meervoudige waarden. En dan lijkt zo'n veld in het begin wellicht handig, in de praktijk is dat dus lang niet altijd het geval.

De meest simpele en voor de hand liggende oplossing, (waar de afgelopen 3000 jaar alle databaseontwikkelaars nooit over geklaagd hebben, dus wat bezielde Microsoft eigenlijk?) was een aparte tabel te maken, en die te koppelen. Dan maak je dus voor elk Audioformat een eigen record aan. En dan heb je geen enkel probleem in je db.
 
In het veld [Overig] staan behalve ACID, AIFF en WAV nog meer waarden, dus kan ik het niet hernoemen.

Ik heb nu een aparte tabel [Audio Format] aangemaakt. Is het met VBA mogelijk om de waarden ACID, AIFF en WAV van veld [Overig] ook in veld [Audio Format] te krijgen?
 
Dat kun je met een gewone toevoegquery doen.
 
Ik heb geprobeerd om het met een toevoegquery te doen, maar het lukt helaas niet. Ik krijg een foutmelding dat niet alle recrods in de toevoegquery kunnen worden toegevoegd.
 
Ik zou zeggen: post eens een voorbeeldje; dat kijkt voor ons een stuk makkelijker.
 
Ik heb zoals je aangaf een nieuwe tabel [Audio Format] aangemaakt, met daarin de waarden ACID, AIFF en WAV. Nu wil ik deze waarden die in het veld [Overig] staan verplaatsen naar veld [Audio Format #2]. Ik heb een gedeelte van mijn database toegevoegd. Het is uiteindelijk de bedoeling om van de overige velden ook een aparte tabel te maken.
 

Bijlagen

't Is een beetje puzzelen, maar dit zou moeten werken. Overigens moet je nu elke waarde apart als veldwaarde ingeven, omdat er niks uit andere tabellen is te halen.
Code:
INSERT INTO Samples ( Audio_Format.[Value] )
SELECT 3 AS Expr1
FROM Samples
WHERE (((Samples.Overig.Value)="WAV"));
 
Helaas werkt het niet. Ik krijg de foutmelding dat niet alle recrods in de toevoegquery kunnen worden toegevoegd.
 
Dat kan altijd, als sommige waarden bijvoorbeeld niet bestaan. Ik moest ook wat experimenteren met de data voordat-ie het deed.
 
Expr1 is een naam die Access zelf toevoegt als je de query maakt. Mag alles zijn. Ik heb je voorbeeldje zodanig bewerkt dat je met 2 queries WAV kunt toevoegen en verwijderen, zodat je kunt stoeien met de materie.
 

Bijlagen

Nu lukt het wel. Hartstikke bedankt hiervoor!!! :thumb:

Ik zag wel dat je ID aan de tabel hebt toegevoegd. Moet deze veld er perse erbij?
 
Haal 'm weg, en hij werkt niet meer. Trek zelf je conclusie :).
Overigens heb ik de db uitgebreid; deze versie haalt de waarden uit de tabel i.p.v. handmatig een waarde invoeren. En het leegmaken doet-ie nu met alle velden. Deze versie zou je bijvoorbeeld kunnen gebruiken i.c.m. een formulier waarin je de te vervangen waarde (uit Overig) vult vanuit een keuzelijst. Hoef je niks meer in te typen.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan