2de kleinste waarde opzoeken

Status
Niet open voor verdere reacties.

DirkVS

Gebruiker
Lid geworden
17 sep 2018
Berichten
37
Hoi, ik gebruik tabel VERKOOP met daarin een veld BTWPERC. Nu probeer ik om iets te maken om te kunnen factureren en daarom moet ik kunnen opzoeken welke verschillende btwperc er gebruikt werden.
Stel nu dat ik niet weet welke waarden er in de tabel voorkomen, maar dat er voor dit voorbeeld volgende BtwPerc in tabel zitten: 0, 6, 12 en 21.
Om de kleinste en de grootste waarde te vinden gebruik ik DMin en DMax:
Code:
Dim XBtwTariefMin, XBtwTariefMax As String
XBtwTariefMin = DMin("[BtwPerc]", "VERKOOP")
XBtwTariefMax = DMax("[BtwPerc]", "VERKOOP")
Dit werkt prima, hiermee vind ik 0 en 21 maar hoe moet ik zoeken naar 6 en 12?
Ik dacht, ik zoek met DMin naar de kleinste waarde die groter is dan XBtwTariefMin, maar dit is telkens fout (codelijn in geel)
Code:
Dim XBtwTariefMin2 As String
XBtwTariefMin2 = DMin("[BtwPerc]", "VERKOOP", "[BtwPerc] > XBtwTariefMin")
De fout is blijkbaar dat ik verwijs naar een variabele? Als ik dit verander in
Code:
XBtwTariefMin2 = DMin("[BtwPerc]", "VERKOOP", "[BtwPerc] = 6")
werkt het wel. Maar dit is uiteraard geen oplossing want dan vul ik de waarde die ik wens op te zoeken reeds in in de zoekopdracht.
Ik heb reeds alle mogelijke combinaties geprobeerd, maar hoe kan ik DMin gebruiken in combinatie met een variabele?
Iemand een idee?
 
je kan gebruikmaken van Small and Large met als 2e parameter 2 en dan krijg je de 2e grootste of de 2e kleinste of je kan ook nog met index werken.
Code:
Sub BTW()

     arr = Array(0, 6, 12, 21) 'array zo of via inlezen uit het tabblad
     For i = 1 To 4
          MsgBox "de " & i & "e kleinste  is " & WorksheetFunction.Small(arr, i)
          MsgBox "de " & i & "e grootste  is " & WorksheetFunction.Large(arr, i)
          MsgBox "het " & i & "e element in die array is " & WorksheetFunction.Index(arr, i)
     Next
End Sub
 
Laatst bewerkt:
@cow18

bedankt voor je reply, maar ik vermoed dat dit voor excel is? Mijn vraag gaat over VBA in Access.
 
Foutje, bedankt ... :o !
 
Hoi, een BTW percentage waarmee je rekent is toch mestal een nummer, niet een string? Voor een nummer (double want er zijn decimalen) zou het er als volgt uitzien:

Code:
Dim XBtwTariefMin as double
dim XBtwTariefMax As Double
dim XBtwTariefMin2 as double

XBtwTariefMin = DMin("[BtwPerc]", "VERKOOP")
XBtwTariefMax = DMax("[BtwPerc]", "VERKOOP")
XBtwTariefMin2 = DMin("[BtwPerc]", "VERKOOP", "[BtwPerc] > " & XBtwTariefMin)
 
@noellaG

inderdaad, moet double zijn ipv string

en dan werkt het

bedankt !!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan