ik ben ook bezig met zo'n soort database, en ben het probleem van jou ook al eens tegen gekomen.
Wat ik gedaan heb is een tabel maken met behulp van een sqlquery in VBA. In deze tabel zouden dan in jouw geval alle gemiste charges, met daarbij een of meerdere redenen.
Ik kan ongeveer wel aangeven hoe ie eruit zien.
[code]
Private Sub Bereken_Click()
'laat de query runnen die alle records in de tabel "Foutcode_Per_Record" wist
DoCmd.SetWarnings False
DoCmd.OpenQuery "Analyse - Pareto van foutcodes, Wis_records"
DoCmd.SetWarnings True
'Zet nieuwe waarden in de tabel
Dim letter, cijfer
Dim Db As Database
Dim Rs As Recordset
Set Db = CurrentDb()
Dim SQL As String
'zoek mbv SQL de betreffende record op voor de gekozen print
SQL = "SELECT ID_Nummer,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14 " & _
"FROM [Fout_Ass_Tot]WHERE Fout_Ass_Tot.ID_Nummer= " & Me.ID_Nummer.Value & ";"
Set Rs = Db.OpenRecordset(SQL, dbOpenDynaset)
'de oude records die nu gewist zijn staan nog en de invoervelden, requiry om te voorkomen dat hij gewiste records ziet!!!
Me.Requery
'deze functie bekijkt of de foutcode een waarde bevat, zo ja, dan wordt deze als record toegevoegd.
For cijfer = 1 To 14
If Rs.Fields((Chr(69)) & cijfer).Value <> 0 Then
'sla de foutcode en het aantal fouten op in een record
Me.Foutcode.Value = ((Chr(69)) & cijfer)
Me.Aantal.Value = Rs.Fields((Chr(69)) & cijfer).Value
'ga naar een nieuw record
DoCmd.RunCommand acCmdRecordsGoToNew
End If
Next cijfer
'sluit het form en open de grafiek
DoCmd.Close
DoCmd.OpenForm "Analyse - Pareto van Assemblagefouten, grafiek"
End Sub
[code\]
Het is niet zo'n heel moeilijk ding, maar je moet er wel ff op je gemak naar kijken.
Ik heb het opgelost door info in te laten vullen op een speciaal form (eis van de gebruikers

) maar het kan natuurlijk ook direct in een tabel
Het is misschien al wel duidelijk dat ik 14 foutcodes heb, waar jij er zoals ik het begrijp 39 hebt. Ik heb dezelfde keuze gemaakt als jij door in een record 14 verschillende foutcodes op te nemen. Dit ivm verschillende redenen, voornamelijk het gebruikersgemak (tabben door de foutcodes), en het beschikbaar hebben van alle gegevens in EEN record.
mbv deze bva code kan je dus alleen de ingevulde codes van EEN RECORD zichtbaar maken, ipv alle foutocodes.
ik hoop dat je wat aan al dit geblaat hebt
wel een vette lay-out trouwens, die van mij is dan maar saai grijs