Fout in VBA-code?

Status
Niet open voor verdere reacties.

DvdB88

Gebruiker
Lid geworden
11 nov 2013
Berichten
9
Beste lezers,

Ik wil graag een agenda bijhouden via Access, als onderdeel van mijn database.

Ik ben geen kei in programmeren/VBA en ben dus online gaan zoeken naar een voorbeeld van een ander. Nu heb ik een voorbeeld gevonden, die precies is als ik wens op http://www.accessallinone.com/access-2010-vba-intermediate-tutorials/. Het gaat om tutorial nummer 28. Aldus het youtube filmpje wat hierbij hoort, zou de agenda de tijd van de afspraak moeten weergeven als je hem opent. Dit is echter niet het geval. Als ik een maand waarop een afspraak gepland staat wil openen, krijg ik een error. De agenda wordt dan niet goed geopend.

Ik heb het vermoeden dat er een fout zit in de VBA-code en na verschillende verwoede pogingen van mijn kant, kom ik er niet uit...

Is er iemand die mij hiermee kan helpen?

Met vriendelijke groet,
DvdB
 
Lijkt het je niet handig om ook even te vertellen wat de foutmelding is die je krijgt?
 
Of, nog veel beter, de db meeposten?
 
De db kun je downloaden via de link die ik stuurde, en dan nummer 28.

De foutmelding is "There has been an error. Please reload the form," bij het openen van frmCalender (in de database, die te vinden is via de link, nummer 28). Maar, dit gebeurt alleen als je het formulier opent op een maand dat er een afspraak staat (zie tblClass); als er geen afspraak staat die maand is er geen probleem en opent het formulier zich gewoon.
 
Bedoel je dat wij de fouten uit een tutorial van accessallinone.com/ moeten halen? Zou ik toch hun laten doen...
 
Ik heb het hen gevraagd, inmiddels 3 weken geleden, maar geen reactie gekregen. Dus ik hoopte dat hier iemand bereid was er een kijkje in te nemen...
 
Dat wordt dan vanavond, want ik heb op het werk geen 2010. Ik dacht trouwens dat het voorbeeld wel zou werken, maar dat je het niet in je eigen db kreeg ingebouwd. Het is altijd beter om te kijken naar je eigen db, want daar wil je de functie uiteindelijk werkend hebben, niet in de tutorial db.
 
Het zou geweldig zijn als je er een blik op kunt werpen! Ik heb de rest van de code bekeken en dat kan ik wel ombouwen voor mijn eigen database; het meeste kan precies zo blijven als het is. Dus als je er achter kunt komen waarom die foutmelding komt en hoe ik dat kan oplossen, dan ben ik heel erg geholpen.

Alvast heel hartelijk bedankt!
 
Het voorbeeldje gaat stuk op veel te ingewikkeld denken; in de functie LoadArray() wordt een SQL string opgebouwd waarin de functie DLookup gebruikt wordt voor StartTime en EndTime. Die functies werken in deze syntax niet, en (en dat is de clincher) ze zijn ook helemaal niet nodig, want de tijden staan al gewoon in de tabel. Je hoeft ze dus helemaal niet op te zoeken.
Vervang de variabele strSQL door deze:
Code:
strSQL = "SELECT tblClass.ClassID, tblClass.ClassDate, tblLocations.ClassRoom, tblClass.StartTime, tblClass.EndTime, " _
    & "tblLevel.Level, tblLevel.Code, Left([tblTeachers].[FirstName],1) & Left([tblTeachers].[LastName],1) AS Teacher " _
    & "FROM tblLocations INNER JOIN ((tblCourse INNER JOIN tblLevel ON tblCourse.Level = tblLevel.LevelID) " _
    & "INNER JOIN (tblClass INNER JOIN tblTeachers ON tblClass.TeacherID = tblTeachers.TeacherID) " _
    & "ON tblCourse.CourseID = tblClass.CourseID) ON tblLocations.LocationID = tblClass.LocationID " _
    & "ORDER BY tblClass.ClassDate;"
En hij werkt.
 
Ik heb de boel eens even bestudeerd... het geheel werkt inderdaad, veel dank daarvoor.

Alleen... hij geeft de tijden nu weer als rare gegevens, zoals 0,66667, in plaats van 16.00 bijvoorbeeld. Heb je hier ook een oplossing voor? Dat de tijd wel op een normale wijze wordt weergegeven?
 
Opmaak. Datums en tijden zijn getallen, en je ziet de tijd nu als getal. Je hoeft dus alleen de notatiete veranderen.
 
Misschien een domme vraag... maar hoe doe ik dat...?
 
Laatst bewerkt:
In een tabel ga je naar het Ontwerpscherm van de tabel, selecteer je het veld in klik je in het onderste deel van het scherm in de regel <Notatie>. Daar typ je dan: Korte Tijdnotatie (of een eigen variant).
In formulieren: Ontwerpscherm, veld selecteren, <Eigenschappen>, en veld <Notatie>. De rest als hierboven.
 
Ah zo eenvoudig! Ik denk dat die database ook mijn ingewikkeld denken heeft aangezet!

Het werkt! Dank!
 
Mag je de vraag op <Opgelost> zetten.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan