tekst overnemen via left functie

  • Onderwerp starter Onderwerp starter RiaZ
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

RiaZ

Gebruiker
Lid geworden
30 sep 2016
Berichten
6
Hallo,

Ik wil in een veld een samengestelde tekst hebben gebaseerd op teksten die gebaseerd zijn op 3 andere velden. Ik heb de volgende expressie ingevoerd Left([Ras];3) & "-" & Left([Akkerbouwer];3) & " " & Left([partij-id];2) .
Ik krijg dan als antwoord partijcode
2-2 16

De nummers 2 staat voor de primaire sleutel, evenals het volgende nummer 2, terwijl ik tekst wil. Ik heb gelezen dat ik het dan tussen "" moet plaatsen maar dan krijg ik de veldnaam te staan ipv van de tekst die in heet record staat.

Ik hoop dat mijn vraag duidelijk is en hoop dat iemand me kan helpen.

Groetjes
 
Allereerst welkom bij HelpMij! Je vraag is in zoverre duidelijk dat ik snap wat je wilt, maar eigenlijk toch ook weer niet... Als je dit ziet: 2-2 16, dan komt dat omdat je in de cellen waar 2-2 uitkomt (de velden [Ras] en [Akkerbouwer]) niet meer hebt staan. Het zijn blijkbaar numerieke velden, en als daar 2 of 12 in staat, dan krijg je met Left([Ras];3) nooit meer terug dan 2 of 12.
Deze opmerking:
... terwijl ik tekst wil.
zou ik zelf vertalen als: je wilt dit zien: twee-twee zestien. Maar ik vermoed dat je dát nu net niet wilt :).
 
Allereerst dank je wel voor de snelle reactie.
Het gegevenstype van die velden is tekst, alleen de nummers die weergegeven worden zijn de primaire sleutels van de records van gegevens uit een andere tabel.
In die velden is een besturingselement geplaatst die toegang geeft tot bepaalde gegevens uit een andere tabel.
Is mijn vraag zo verder verduidelijkt??
Ik hoop het!
Ben erg benieuwd..

groetjes
 
Je veld is dus numeriek, en dan maakt het niet uit wat het tekstveld is. Sterker nog: tekstvelden zijn per definitie altijd tekst. Zit ook een beetje in de naam natuurlijk...
Maar je wilt dus blijkbaar voorloopnullen zien en dat is gelukkig niet zo moeilijk.

Probeer dit eens:
Code:
Right("000";Left[Ras];3);3) & "-" & Right("000";Left([Akkerbouwer];3);3) & " " & Right("00";Left([partij-id];2);2)
 
Dank je voor je reactie, het is niet het antwoord wat brengt waar ik naar op zoek ben.
Moet ik gebruik maken van een query ipv een tabel omdat ik tekst over wil nemen die uit een andere brontabel komt.
en zo ja moet ik dan een verwijzing maken naar de tblRassen en de tblContactpersonen en hoe doe ik dat?
Dit is nogmaals de expressie die ik gemaakt had, hoe pas ik deze aan met de verwijzing naar de andere tabellen? Left([Ras];3) & "-" & Left([Akkerbouwer];3) & " " & Left([partij-id];2)
Ik vul deze dan in bij criteria, neem ik aan.
Ik hoop dat je het begrijpt....

groetjes
 
Steeds minder.... waarom haal je er een extra tabel bij? We praten toch over een query?
 
Nee, daar zit mijn fout, komt ik access kennis tekort helaas. Ik was inderdaad aan het proberen om bovenstaande vraag in een tabel te plaatsen, waarschijnlijk zit daar mijn fout. Ik ga het proberen op te lossen via een query. Misschien dat de expressie werkt als ik hem gewoon dan bij de veldnaam Partij-code invoer, ik ga het morgen proberen. Ik moet dat toch ook kunnen!!
 
Ik moet dat toch ook kunnen!!
Mooi streven :thumb:. Access is een programma waarin je zonder kennis van databases eigenlijk niet kunt/moet werken. Je kunt het niet vergelijken met Word of Excel, waarin elke ongeschoolde gebruiker gelijk aan de slag kan en resultaat ziet. Een fout die meer mensen maken :).
 
Oke, maar we geven het niet op. Ik heb geprobeerd een Query te maken gebaseerd op een tabel overzicht percelen. Left([Ras];3) & "-" & Left([Akkerbouwer];3) & " " & Left([partij-id];2) . Ik krijg dan als antwoord partijcode 2-2 16. De cijfers 2 zijn de ID van het Ras en de volgende 2 is het ID van de akkerbouwer.
Nu ben ik het aan het proberen om het via de basistabellen aan het doen, dus ras uit de tabel rassen en akkerbouwer uit de tabel contactpersonen. Als ik dan alleen die selectie gemaakt heb en verder nog niets en klik dan op uitvoeren dan krijg ik de foutmelding dat de typen in de expressie niet met elkaar overeenkomen. Hoe los ik dat op?
't Zal wel echt een beginnersvraag zijn, maar als ik het niet vraag kom ik ook niet verder.....
 
Ik heb geen idee wat je nu aan het proberen bent. Post eens een voorbeeldje van de database mee, dan kunnen we zien wat er aan data beschikbaar is. Left() heeft sowieso nooit last van het soort veld; zowel een tekstveld als een getalveld kan je daarmee bewerken. Enige probleem wellicht is als er een veld leeg is; dan valt er niks te halen namelijk.
 
Hoi Ria,
Ik heb de db inmiddels ontvangen via mumzel, dus ik kan er nu naar kijken. Ik zie een paar vreemde zaken; om te beginnen snap ik je relaties tussen de tabellen niet helemaal, met name de link tussen [Rassen] en [Overzicht percelen] klopt niet. Relaties moeten altijd tussen een sleutelveld en een gerelateerde sleutel worden gemaakt. Daarnaast is de tabel [Contactpersonen] nergens aan gekoppeld.

Volgende puntje: de tabel [Overzicht percelen] heeft geen sleutel. Daarnaast heb je in die tabel een veld dat een sleutel zou moeten zijn ( [partij-id]) maar dat kan dat nooit zijn, omdat je daar een keuzelijst achter hebt hangen met de waarden "1601";"1602";"1603";"1604";"1605";"1606". En dat kan natuurlijk niet. Als je al een volgnummer wilt maken, gebruik dan een functie. Ik heb die functie regelmatig in verschillende varianten gepost (functienaam: volgnummer) dus als je die opzoekt in dit forum kom je al een stuk verder met een automatisch oplopend volgnummer op basis van een jaartal.

Verder snap ik dus niet helemaal hoe je de vraag ziet, want ik zie zo gauw niet welke velden/tabellen de bron van je query moeten zijn. de query Partijcode is het in ieder geval niet...
 
Hallo,

Ik heb inmiddels een oplossing gevonden voor mijn vraag. De fout van mij ligt in de basis doordat ik de relaties tussen de tabellen niet goed gemaakt had. Dit is inmiddels wel gebeurd en kom dan uiteindelijk toch tot een goed antwoord.
Dankjewel voor jullie antwoord, het heeft mij uiteindelijk wel de goede richting ingestuurd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan