Hoe verzamel ik de gemeenschappelijke cijfers in een tabel?

Status
Niet open voor verdere reacties.

fanis01

Gebruiker
Lid geworden
12 feb 2011
Berichten
104
Hallo,
Ik heb een access met 2 tabellen.
Tabel1 en Tabel2. Tabel1 heeft 1 rij met 2 velden: Veld 1 is de "Cursus" veld en Veld 2 is de "Instructors" veld.
Tabel2 heeft 7 rijen met 2 velden: Veld 1 is "Vak" met 7 vakken: ABCDEFG en Veld 2 is de "InstructorNumber" met de nummers: 8222326. Rij1 is A8 rij2 B2 rij C2 rij D2 rij E3 rij F2 en rij G6.
Ik wil de gemeenschappelijke instructor nummers van Tabel2 terugzien in Tabel1 onder “Instructors” maar dan op volgorde en achter elkaar.
Dus in dit geval “2368” zonder komma's of spaties. Kan dat?

Ik heb 10 keer geprobeerd een vrijwel leeg bestand te uploaden maar het is me niet gelukt. Vandaar de uitgebreide beschrijving.

Bij voorbaat dank
Fanis
 
Dat uploaden zou ondertussen wel moeten kunnen, maar de accdb extensie is nogal lastig voor HelpMij :). Het beste kun je de db eerst comprimeren, en dan zippen. Is hij dan nog te groot, verander dan de extensie van de zipfile naar .xlsb, dan zul je zien dat je ineens veel grotere bestanden mag uploaden. Wij veranderen de extensie dan wel weer terug naar zip, en pakken hem dan wel weer uit. Beetje een omweg, maar hij werkt.
En zet vooral records in je tabel, want a) ik ben geen tikpoes, en b) ik heb records nodig om iets te kunnen zien :). En eerlijk gezegd snap ik ook nog niet veel van je vraag, dus de db zal dat hopelijk ook duidelijker maken.
 
Dat uploaden zou ondertussen wel moeten kunnen, maar de accdb extensie is nogal lastig voor HelpMij :). Het beste kun je de db eerst comprimeren, en dan zippen. Is hij dan nog te groot, verander dan de extensie van de zipfile naar .xlsb, dan zul je zien dat je ineens veel grotere bestanden mag uploaden. Wij veranderen de extensie dan wel weer terug naar zip, en pakken hem dan wel weer uit. Beetje een omweg, maar hij werkt.
En zet vooral records in je tabel, want a) ik ben geen tikpoes, en b) ik heb records nodig om iets te kunnen zien :). En eerlijk gezegd snap ik ook nog niet veel van je vraag, dus de db zal dat hopelijk ook duidelijker maken.
Bekijk bijlage Test.zipBekijk bijlage Test.zip
 
Kan ik mij toch herinneren dat ik om tabellen met gegevens had gevraagd :). Hier zit zo goed als niks in, en Tabel1, die je zou willen koppelen met Tabel2, bevat zelfs geen enkele instructor. Dus zo kunnen we er niks mee. Graag tabellen met herkenbare (lees: waarden die iets voorstellen) records. Al lees ik de vraag vermoedelijk nog steeds verkeerd. Dus leg vooral ook uit wat de bedoeling is, want ik snap er dus nog steeds niks van. Ik zie bijvoorbeeld in tabel1 een veld [Course] met één record en daarin de waarde "Techniek". In tabel2 zie ik een veld "Vak" met waarden als A, B, C etc. Geen Techniek dus. Nogmaals: als je een voorbeeldje maakt, doe er dan fatsoenlijke waarden in, zodat we de bedoeling een beetje kunnen begrijpen. Voor jou is het waarschijnlijk helder wat er moet gebeuren, maar wij kunnen niet in jouw hoofd kijken!
 
Kan ik mij toch herinneren dat ik om tabellen met gegevens had gevraagd :). Hier zit zo goed als niks in, en Tabel1, die je zou willen koppelen met Tabel2, bevat zelfs geen enkele instructor. Dus zo kunnen we er niks mee. Graag tabellen met herkenbare (lees: waarden die iets voorstellen) records. Al lees ik de vraag vermoedelijk nog steeds verkeerd. Dus leg vooral ook uit wat de bedoeling is, want ik snap er dus nog steeds niks van. Ik zie bijvoorbeeld in tabel1 een veld [Course] met één record en daarin de waarde "Techniek". In tabel2 zie ik een veld "Vak" met waarden als A, B, C etc. Geen Techniek dus. Nogmaals: als je een voorbeeldje maakt, doe er dan fatsoenlijke waarden in, zodat we de bedoeling een beetje kunnen begrijpen. Voor jou is het waarschijnlijk helder wat er moet gebeuren, maar wij kunnen niet in jouw hoofd kijken!

Bekijk bijlage Test.zip

Ik heb het hopelijk iets duidelijker gemaakt.
Ik tabel2 staan nu deelvakken die gegeven worden door een aantal verschillende instructeurs. Die hebben een nummer.
Nou de vraag is als volgt:
Ik wil de gemeenschappelijke instructor nummers van Tabel2 terugzien in Tabel1 onder “Instructors” maar dan op volgorde en achter elkaar. Dus In tabel 1 wil ik onder “Instructors” dit zien “2368”.
 
OK, laat ik er voor het gemak even van uit gaan dat ik het snap, en dat je, op basis van het eerste woord van het vak (Techniek, etc) de instructors wilt samenvoegen in één record in tabel1. Dan moet je dus beginnen met het maken van een query die de gegevens groepeert op dat eerste woord. Dat zou met deze query kunnen.
PHP:
SELECT Left([vak],InStr(1,[vak]," ")-1) AS Course, InstructorNumber FROM Table2 GROUP BY Left([vak],InStr(1,[vak]," ")-1), InstructorNumber ORDER BY InstructorNumber;
Dan heb je de instructors gegroepeerd bij elkaar. Voor het vervolg zul je, vrees ik, een VBA functie moeten maken die deze query uitleest, en de nummers in één string zet. Vervolgens moet die string dan worden toegevoegd aan Tabel1.
En hier komt dan gelijk een volgend probleem om de hoek kijken: omdat je voorbeeld (nog steeds) geen reële data laat zien, wordt dat best lastig. Want ik ga er toch niet van uit dat jouw productie omgeving uit één vak bestaat, en derhalve ook maar voor één vak deeldocenten kent. Maar omdat er nu dus maar één groep is te maken, is de volgende stap niet goed te maken/testen. En dat zou je wel willen. Of kun je die functie zelf maken? Kan natuurlijk ook :).

Maar hopelijk snap je nu een beetje waarom we om voorbeelden vragen met data waar we wat aan kunnen zien/mee kunnen doen. Al die voorbeelden met een paar nietszeggende records: ik kan er niet zoveel mee.
 
OK, laat ik er voor het gemak even van uit gaan dat ik het snap, en dat je, op basis van het eerste woord van het vak (Techniek, etc) de instructors wilt samenvoegen in één record in tabel1. Dan moet je dus beginnen met het maken van een query die de gegevens groepeert op dat eerste woord. Dat zou met deze query kunnen.
PHP:
SELECT Left([vak],InStr(1,[vak]," ")-1) AS Course, InstructorNumber FROM Table2 GROUP BY Left([vak],InStr(1,[vak]," ")-1), InstructorNumber ORDER BY InstructorNumber;
Dan heb je de instructors gegroepeerd bij elkaar. Voor het vervolg zul je, vrees ik, een VBA functie moeten maken die deze query uitleest, en de nummers in één string zet. Vervolgens moet die string dan worden toegevoegd aan Tabel1.
En hier komt dan gelijk een volgend probleem om de hoek kijken: omdat je voorbeeld (nog steeds) geen reële data laat zien, wordt dat best lastig. Want ik ga er toch niet van uit dat jouw productie omgeving uit één vak bestaat, en derhalve ook maar voor één vak deeldocenten kent. Maar omdat er nu dus maar één groep is te maken, is de volgende stap niet goed te maken/testen. En dat zou je wel willen. Of kun je die functie zelf maken? Kan natuurlijk ook :).

Maar hopelijk snap je nu een beetje waarom we om voorbeelden vragen met data waar we wat aan kunnen zien/mee kunnen doen. Al die voorbeelden met een paar nietszeggende records: ik kan er niet zoveel mee.

Beste OctaFish,
Wat jammer is, is dat ik niet een actuele werk access-bestand mag geven en noodgedwongen een vage benadering moet creëren om verder te komen.
Ik heb nu de tabellen weer aangepast om het een beetje meer reëel te lijken (Een andere cursusnaam en andere vakken) alleen onze vrije Internet computer is uitgevallen en kan nu (vanuit mijn werk) het vernieuwde bestand niet meesturen.

De Instructor nummer is niet zomaar een nummer. Het geeft aan 1: wat de instructiebevoegdheid moet zijn van die mensen en 2: of die bevoegdheid tijdens de cursus vervalt.
Als Ik bij Tabel1 een opsomming kan zien dat voor de cursus b.v. Draadverbindingstechniek die specifieke vakbevoegdheden moet hebben, dan initieer ik onder andere bepaalde brieven en mails om de Instructeurs te veroosteren.

Dus bij Tabel1 onder InstructorsOverzicht moet ik de codes 2368 kunnen zien.
In feite vraag ik de lijst met gemeenschappelijke nummers uit Tabel2 te doen Transponsen op Tabel1 maar dan op volgorde.

Ik heb inderdaad de SQL qwery gemaakt maar ik kom niet verder kennelijk omdat de VBA functie onbreekt.

Helaas ben ik de computertaal niet machtig om een VBA functie te maken.
 
Mag ik je verzoeken om niet meer nodeloos te quooten? De lengte van de draad wordt zo wel érg lang, en het is natuurlijk totaal niet nodig als mijn eigen berichtje er gewoon (en mag ik zeggen: veel leesbaarder) erboven staat. De QUOTE knop is géén antwoordknop. Daarvoor is het tekstvak <Snel reageren>, kun je ook gelijk gaan typen en wat is daar mis mee? :D
In de query die ik je gaf, zit geen vba functie, dus dat is vreemd. Het is de letterlijke SQL uit een query die is gemaakt op jouw db, dus als je een nieuwe query maakt, geen tabellen selecteert en op de knp SQL klikt, kun je de complete tekst zo plakken en de query uitvoeren.
 
Bekijk bijlage TestNEW.zip

Dit is een vernieuwde bestand met wat duidelijkere gegevens.
Ik heb ook veel op internet gezocht voor een betere omschrijving van datgene wat ik zoek. Dat dus op tabel1 op een enkele "cell" de waarden 2368 bij elkaar brengt.
Ik denk dat in het engels zoiets gesteld zou moeten worden als: Convert multiple row values into one single concatenated "cell". En ik noem het een "cell" omdat het op 1 plaats in 1 rij van tabel1 moet komen.
Veel voorkomende antwoorden op internet creëren meerdere rijen. En dat is nou juist wat ik niet wil. Het moet op tabel1 op de bestaande rij komen onder InstructorsOverzicht.
En dat likt dus niet
 
OK, nu heb je het een stuk ingewikkelder gemaakt met je nieuwe voorbeeld. In de eerste versie was er nog wat te filteren omdat je de naam van de Course had aangevuld en er een spatie in de course zat waardoor er gematched kon worden met de course in tabel1. Dat lukt nu dus niet meer. En we hebben het hier over 'velden' en 'records', zeker niet over 'cellen'. Daarvoor moet je naar het Excel forum :).
Als je in dit forum (goed) had gezocht, had je wel een draadje van een paar jaar geleden gevonden waarin ik iets vergelijkbaars heb gemaakt van wat jij zoekt, en techniek dus om waarden van meerdere records 'samen te vatten' als één waarde in één record. Dus het is absoluut te doen. Maar dus níet op basis van de door jou geleverde tabellen.
 
Hi,
Ik heb al heel veel gezocht meneer. Zowel in het nederlandse Helpmij.nl als in heel veel andere sites in het engels. Ik heb al uren zitten denken alleen wat de beste omschrijving is. Daarom heb ik het ook in het engels genoemd.
Als u weet waar het is geef mij aub. een link of iets anders concreets.
 
De link zou ik zo een-twee-drie natuurlijk ook niet meer weten, het was een aantal jaren geleden. Maar de db die ik toen gemaakt heb, kan ik wel laten zien. Zit hier bij. De vraag was wel iets anders als de jouwe, TS wilde de losse records samenvoegen in verschillende velden en niet in één veld, maar de techniek is hetzelfde. Kijk maar of je het snapt, en kunt aanpassen naar je eigen situatie.
 

Bijlagen

  • Samenvoegen.zip
    46,8 KB · Weergaven: 29
Ok. Thanks voor alle moeite.
Het is me niet gelukt. Maar ik blijf het proberen.
Fanis
 
En we willen best helpen, maar op zijn minst hebben we dan toch reële gegevens nodig die enigszins de werkelijkheid benaderen, dummydata uiteraard, want we zijn niet geïnteresseerd in jullie bedrijfsgegevens. En bij voorkeur iets wat lijkt op het gewenste eindresultaat, al is het maar een Excel tabel die je in de db erbij zet. In ieder geval tabellen waarvan de veldnamen en tabelnamen kloppen, anders blijf je bezig.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan