toevoegquery of automatisch updaten tabel met VBA-code

Status
Niet open voor verdere reacties.

seppers

Gebruiker
Lid geworden
7 feb 2006
Berichten
11
Beste,

Ik maak momenteel een database voor beheer van lakprogrammas voor een poedercoatingstraat.
In een tabel Base_Data heb ik een veld BD_Artikelcode en een veld BD_Model.
In een andere tabel Kleurtoewijzing zit eveneens een veld KT_Model.
Verder zitten in de tabel Kleurtoewijzing de velden KT_Kleur, KT_Gemaprogramma en KT_Progtype.

Ik wil nu in een tabel Application_Data voor elk record in de tabel Base_Data de via de link BD_Model overeenkomstige waarden van KT_Kleur, KT_Gemaprogramma en KT_Progtype in de tabel Application_Data inschrijven.

Probleem is echter dat in de tabel Kleurtoewijzing per KT_Model er meerdere verschillende kleurcodes (KT_kleur) voorkomen.

Ik denk dat ik de tabel Base_Data record per record moet aflopen en dan in een query die de waarden voor het overeenkomstige KT_Model uit de tabel Kleurtoewijzing ophaalt eveneens record per record de bijhorende programmanummers en type naar de tabel Application_Data moet schrijven.

Echter, dat vereist nogal wat VBA-code en die ken ik nog niet.

Ik denk niet dat dit via een eenvoudige toevoegquery op te lossen valt, nietwaar ?

Alle hulp is welkom, anders moet ik duizenden records manueel gaan aanmaken !

Thx in advance !
 
Kan je deze vraag wat vereenvoudigen? Hij is moeilijk te lezen en te begrijpen.
Ik ga meestal af op die ene regel waar een vraagteken achter staat. Verder wordt het er door die BD en KT prefixen voor iedere veldnaam niet makkelijker op.

Het is voor jou waarschijnlijk wel duidelijk wat je wilt maar het kost mij teveel moeite om daar te komen.

Succes!
 
Achtergrond

Waarom zou je dit willen? Als ik het goed lees, heb je de gegevens nu beschikbaar als je verschillende tabellen combineert, waarom zou je die dan nog eens willen kopieren naar een nieuwe tabel?
 
Waarom zou je dit willen? Als ik het goed lees, heb je de gegevens nu beschikbaar als je verschillende tabellen combineert, waarom zou je die dan nog eens willen kopieren naar een nieuwe tabel?

Beste,
Ik heb inderdaad een 70-tal basisprogramma's die voor een 7-tal type-producten voor 10 kleuren de poeder-applicatie aansturen. Echter, aan élke artikel-kleur-combinatie moet een applicatie-programma gekoppeld worden. Het gaat om +/- 1000 artikelcodes en telkens in 10 kleuren geeft een 10,000-tal aan te maken combinaties.
Ik zou inderdaad voor een bepaald order dmv een query het applicatie-programma kunnen ophalen. Het probleem is dat de aansturing van de lijn gebeurd dmv een SQL-database en een Scada-systeem (WinCC). Bij aanmaak van een order wordt uit de tabel applicatie-data het applicatie-programma opgehaald. Dit moet dus op één of andere manier in deze tabel komen te zitten.
Verder zullen op termijn andere individuele applicatie-programma's in de tabel ingevoerd worden voor specifieke artikel/kleur-combinaties.
Ik probeer eerstdaags wel een beperkte versie van de database on-line te zetten voor meer duidelijkheid.
Alvast bedankt voor de reacties.
 
Als je 7 producten hebt die elk 10 kleuren kunnen hebben dan krijg je 70 combinaties
Als je dat uit wilt drukken in een query dan krijg je een cartetisch product. Dat wil zeggen voor ieder product 10 kleuren. Je SQL statement ziet er ongeveer als volgt uit:
Code:
select productID, KleurID from Producten, Kleuren
Bij 7 producten en 10 kleuren geeft deze query een resultaat terug van 70 records.

Dit is vast niet de totale oplossing voor je probleem maar misschien helpt het een beetje want ik snap het nog niet helemaal. Wellicht geeft je voorbeeld database meer inzicht.

HTH:D
 
Een beetje data analyse levert mij de volgende query op:

Code:
INSERT INTO Application_Data
SELECT Base_Data.*, Kleurtoewijzing.*
FROM Base_Data INNER JOIN Kleurtoewijzing ON Base_Data.BD_Model = Kleurtoewijzing.KT_Model;

Deze INSERT voegt de waarde die zijn gevonden vanuit Bas_Data met een voorkomen in Kleurwijziging toe aan de tabel.

Voor je info heb ik het Access-bestand toegevoegd.

Succes
Wim

Ik krijg het niet voorelkaar om iets te uplaoden.
Sorry
 
Laatst bewerkt:
Een beetje data analyse levert mij de volgende query op:

Code:
INSERT INTO Application_Data
SELECT Base_Data.*, Kleurtoewijzing.*
FROM Base_Data INNER JOIN Kleurtoewijzing ON Base_Data.BD_Model = Kleurtoewijzing.KT_Model;

Deze INSERT voegt de waarde die zijn gevonden vanuit Bas_Data met een voorkomen in Kleurwijziging toe aan de tabel.

Voor je info heb ik het Access-bestand toegevoegd.

Succes
Wim

Ik krijg het niet voorelkaar om iets te uplaoden.
Sorry


Ik heb één en ander eens in mijn database uitgeprobeerd en krijg de volgende foutmelding :
"De instructie INSERT INTO" bevat de volgende onbekende veldnaam : BD_Artikelcode. Zorg ervoor dat u de naam correct hebt getypt en probeer het opnieuw".

Nu is de naam BD_Artikelcode in het SQL_Statement niet expliciet vernoemd. Het is wél het sleutelveld in de tabel Base_Data. Heeft het hier misschien mee te maken ?

Ik heb momenteel erg weinig tijd om met mijn probleem bezig te zijn wegens een afname van een machine die me momenteel helemaal opslorpt (3 Finnen op bezoek).

Ik denk dat een kopie van de database verduidelijking moet scheppen.

Grtz, en toch alvast bedankt.
 
Als je 7 producten hebt die elk 10 kleuren kunnen hebben dan krijg je 70 combinaties
Als je dat uit wilt drukken in een query dan krijg je een cartetisch product. Dat wil zeggen voor ieder product 10 kleuren. Je SQL statement ziet er ongeveer als volgt uit:
Code:
select productID, KleurID from Producten, Kleuren
Bij 7 producten en 10 kleuren geeft deze query een resultaat terug van 70 records.

Dit is vast niet de totale oplossing voor je probleem maar misschien helpt het een beetje want ik snap het nog niet helemaal. Wellicht geeft je voorbeeld database meer inzicht.

HTH:D

Guus, dit is helemaal niet de bedoeling. Sorry voor de verwarring - ik denk dat ik echt best mijn database online zet. Probleem is dat die voor een groot deel bestaat uit gelinkte tabellen uit een SQL-database. Ik moet even kijken hoe ik het geheel offline zet.
Verder heb ik in mijn prille enthousiasme het probleem in eerste instantie uit mijn gedachten geschetst, waarbij ik de effectieve tabel- en veldnamen niet 100% nauwkeurig gespeld heb. Om verdere vewarring te voorkomen zal ik dus best alles hernoemen zodat dit overeenkomt met de hierboven beschreven benamingen. Ik vrees echter dat het weekendwerk zal worden - deze week zal ik sowieso slaaptekort hebben vrees ik.

Vriendelijke groeten, Jef
 
Jef,

Wanneer zien we (na je vermoeide dagen, zie mij handtekening) jouw versie tegemoet.

Wim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan