Simple Syntax problemen Access

Status
Niet open voor verdere reacties.

Charunks

Nieuwe gebruiker
Lid geworden
16 nov 2019
Berichten
4
Goedenavond dames, heren,

Allicht dat iemand mij kan helpen met access. Ik gebruik de laatste versie van access (abonnement). Na het lezen van een boek (the excel analyst's guide to access) ben ik begonnen met het werken met de kennis.

Mijn eerste opgave is het omvormen van een string dat een datum voorstelt naar een door access herkende datum.
Na wat gekunstel in een query heb ik de string uit elkaar gehaald en heb ik de maand, dag en het jaar in 3 aparte velden staan. Met DateValue() wil ik deze dan laten omzetten naar een datum.

Maar nu komt het. Ik wil de drie velden laten samenbreiden naar een code die DateValue() herkennen kan als een datum. Ik heb hiervoor in een nieuwe kolom het volgende staan;
[Month] & ‘/’ & [Day] & ‘/’ & [Year]

Wanneer ik de query uitvoer vraagt access naar de waarde van /.
Dit gebeurt zowel met " " en ' '. Het ziet ernaar uit dat access niet herkent dat ik een / als string ertussen wil plaatsen. Hoe kan ik dit oplossen?

Verder wil ik mijn frustratie uiten. Wat een moeilijk programma is dit zeg! Ik heb vanochtend 2 uur gespendeerd om de functie Left(argument , argument) toe te passen. Ik kreeg continue een sytax error. Mijn boek gaf het antwoord niet. YouTube gaf het antwoord niet, en online vond ik ook geen oplossing. Naar wat geëxperimenteer moet ik er achter komen dat je in access functies anders verwerkt; Left(argument ; argument). Wat een verspilling van tijd zeg, mijn tijd heeft kennelijk geen enkele waarde voor microsoft!

In ieder geval, alvast bedankt voor je reactie!

gr,

Charunks
 
Verder wil ik mijn frustratie uiten. Wat een moeilijk programma is dit zeg!
Laten we even een misverstand uit de weg helpen, aan de hand van een simpel te begrijpen analogie. "Ik eet al minstens 50 jaar zelfstandig met vork en mes, dus ik denk wel te weten hoe een mes werkt. Nu heb ik het boek "Hersenchirurgie voor Dummies" gekocht, en een scherpe scalpel, maar toch gaan alle patiënten dood!" Snap je wat ik wil zeggen? Databases maken is een vak, en wil je dat goed doen, dan heb je een bepaalde basiskennis nodig. Microsoft vind overigens van niet, en ze proberen Access net zo makkelijk te maken als Word en Excel. Dezelfde opdrachten, dezelfde menustructuur, gebruik van wizards....

Je haalt het voorbeeld aan van de functie Left. Die werkt in Access exact hetzelfde als in Excel! Dus dat je hem niet aan de praat krijgt, ligt niet aan Access :). Je had de functie binnen 30 seconden aan de praat gehad, als je de knop <Functie Opbouwen> had gebruikt, het equivalent van de Functie wizard in Excel. Al is hij in Access dan niet grafisch. Maar dan had je dit gezien: Left(«string»; «lengte»). Vervolgens vervang je de code «string» door het veld (of de tekst) die je wilt gebruiken, en de code «lengte» door het aantal tekens. En klaar ben je.

Nu je eigenlijke vraag: het splitsen van de datum. Daarvoor gebruik je een verkeerde procedure. Sowieso maak je een aantal fouten, die het resultaat uiteraard tegenwerken.

1. Om te beginnen: het kan in één veld, en je hebt er dus geen drie nodig. Maar goed, dat mag uiteraard wel.
2. Vervolgens: je splitst je stringveld in velden waarvan de veldnamen beschermde namen zijn: Month, Day en Year mag je nooit gebruiken. Wél Maand, Dag en Jaar. Dan nog had het niet gewerkt, want
3. Je gebruikt de verkeerde functie: je moet DateSerial hebben. Daarmee vul je een Jaartal in (veld Jaar), een maand (Maand) en de dag (Dag).

Je functie voor de datum zou er dan zo uit kunnen zien:
Code:
Datum: DateSerial(Left([Datumtekst];4);Mid([Datumtekst];5;2);Right([Datumtekst];2))
En dan ben je dus in één keer klaar.
 
Heel erg bedankt voor je reactie octafish. Duidelijk. Dan verwacht access waarschijnlijk een ander argument en doet het gekke dingen. Ik ga het toepassen!

nu je het zegt over [Month] en dergelijke unieke variabelen, ik heb het gelezen, duidelijk.

voor wat je punt betreft over het leren gebruiken van een database, helemaal mee eens. Daar gaat tijd en leren in zitten.

Dat is de reden dat ik er een boek over koop. Mijn frustratie over de moeilijkheid zit m er in dat ik in diverse bronnen lees dat argumenten met een komma worden gescheiden gescheiden, terwijl het een semicolon blijkt te zijn. Daar moet ik dan zelf achter komen. Het is alsof je een cursus duits leren koopt, maar dan in de praktijk deens lijkt te spreken. erg leuk, maar niet toepasbaar voor wat je wilt doen (duits spreken). Mijn bronnen zijn dus niet 100% betrouwbaar. Zal ik mee moeten leren leven.

Nogmaals bedankt!
 
Je hoeft voor dit soort zaken geen boek te kopen, maar gewoon logisch nadenken :). Het komma-puntkomma probleem heeft alleen te maken met je landinstellingen. Daar kan geen boek tegenaan worden geschreven, want elke gebruiker kan dat anders instellen. In Nederland is de puntkomma gebruikelijk als lijstscheidingsteken, in andere landen een komma. ‘t Is maar net wat je hebt ingesteld. Daarom schreef ik ook: als je de Functie Opbouwen had gebruikt, had je het hele probleem nooit gehad, want dan krijg je automatisch het juiste teken. Gebruik de tools die er zijn, als ze je het werk gemakkelijker maken :).

Een klein verschil is er als je kijkt naar VBA code: die is altijd in Amerikaanse notatie, dus altijd een komma, ongeacht je landinstellingen. Je krijgt dan geheid foutmeldingen als je ze daar fout gebruikt. Maar daar zal elk boek je voor waarschuwen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan