Examen genereren uit vragenlijst

V. Hoe zou ik een examen kunnen laten genereren uit een (Access) databank? Bv. drie vragen van een bepaalde categorie, twee van een andere enz. Ik denk dat het met Access best zou gaan.

A. Neen, Access is niet echt geschikt. Met Access kan je een lijst maken, maar niet een willekeurige selectie genereren. Ik zou dit doen, met Word en Excel:

  • Maak een lijst van alle vraagcategorieën die je nodig hebt / wil gebruiken. Noteer die, en maak een code voor elk.
  • Stel je examenvragen op. Selecteer elk van de vragen, en druk Alt+F3 om een tekstfragment te maken. Begin de naam van elk van die fragmenten met de passende code van de vorige stap.
  • Lijst alle tekstfragmenten op – daarvoor kan je gebruikmaken van de code voorgesteld in Stackoverflow. Ik zou die code zo aanpassen en plakken in een nieuw te maken module (via Alt+F11):
    Sub ListBuildingBlocks() 
    Dim oTemplate As Template 
    Dim oBuildingBlock As BuildingBlock 
    Dim i As Integer 
    For Each oTemplate In Application.Templates 
      For i = 1 To oTemplate.BuildingBlockEntries.Count 
      Set oBuildingBlock = oTemplate.BuildingBlockEntries.item(i) 
      Debug.Print oBuildingBlock.Name>
      Next 
    Next 
    End Sub

    en die code uitvoeren in het immediate window. Het resultaat is de lijst van alle beschikbare tekstfragmenten.

  • In Excel twee kolommen maken: een eerste met de namen van de tekstfragmenten, en een tweede met een willekeurig getal (=RAND()).
  • Filter op de tekstfragmenten – met behulp van de code waarmee elke fragmentnaam start.
  • Sorteer op het willekeurig getal en neem er zoveel je nodig hebt – bv. vier voor die ene categorie waar je nu mee bezig bent.
  • Selecteer de namen van de fragmenten, en plak in Word.
  • Druk op F3 na elk van de namen van de fragmenten
  • En je hebt je examen. Je hebt kunnen gebruikmaken van alle opmaakmogelijkheden van Word (met name enters en inspringen maar ook afbeeldingen en lijsten of tabellen, wat niet zo maar kan in Excel of Access) en Excel heeft voor de selectie gezorgd.