schrijven custom function

Status
Niet open voor verdere reacties.

Kenny Henderyck

Nieuwe gebruiker
Lid geworden
8 nov 2007
Berichten
3
Hi all,

ik heb twee tabellen:
1) tabel die data bevat uit een systeem
2) tabel die inconsistencies beschrijft

de inconsistencies die in tabel 2 worden beschreven zou ik willen testen op de data van tabel 1.

tabel 1 bevat volgende kolommen:
Item, lokatie, actief/inactief, safety stock, ......

tabel 2 bevat volgende kolommen
actief/inactief, safetystock, ......

elke rij in tabel 2 (vb actief + safetstock <>0 = inconsitency 1) vormt een inconsistency

ik zou hiervoor een custom function willen schrijven in VBA. Nu ik ben nieuw in VBA dus dit vlot niet zo makkelijk.


Ik werk met SELECT CASE waarbij elke inconsistency een andere case is en waarin ik met een iif statement de inconsistency beschrijf.

Maar ik heb geen idee hoe ik de twee tabellen waarvan ik bepaalde velden met elkaar vergelijk in mijn function inlaad.

hieronder heb ik mijn eerste 'poging' erbij gezet


Public Function Check_Inconsistency(Inconsistency As String) As String

Dim Inconsistency
a= Basic data (non-case specific I) //tabel 1
b= non-case specific inconsistencies //tabel 2

Select Case Inconsistency

Case "Active SKU without ABC-classification"
iif(
a![External SKUSw] = b![External SKUSw]
AND
a![UDC_INVEN_ABC_CD] = b![UDC_INVEN_ABC_CD]
And
(a![MFG_POLICY 1] <> b![MFG_POLICY]
OR
a!a![MFG_POLICY 2] <> b![MFG_POLICY])
, "YESactiveskuwithoutabc-classification", "empty")
Case "Inactive SKU with ABC-classification"
iif(
a![External SKUSw] = b![External SKUSw]
AND
a![UDC_INVEN_ABC_CD] = b![UDC_INVEN_ABC_CD]
, "YESinactiveskuwithabc-classification", "empty")
Case Else
Debug.Print "other inconsistency"
End Select

End Function
 
Kenny,

Zoals jij het op wil lossen kan het wel maar het is niet dynamisch. Als je een nieuwe consistency heb moet je die hardcoded opnemen in je functie.
Als je echter voor ieder veld in tabel1 een veld maakt in je Consistency tabel(2?) waarin je dan de mogelijke kombinaties aangeeft dan kan je die uitvragen met code en ben je dynamisch bezig.

dus als tabel1 een veld heeft "Actief" die True of False en een veld die "ABC-classification" heet met de mogelijke waarden true of false dan maak je in tabel 2 een veld aan die Actief heet en een die ABC-classification heet.

De eerste consistency is dan als Actief true is en ABC-classification false is.
De tweede consistency is dan als Actief false is en ABC-classification false is.

Als je toch een functie wil schrijven zoals je beschrijft gebruik dan wel even de code-tags dan wordt het geheel leesbaarder. Of voeg een voorbeeld database bij (gezipt, niet gerart)

Succes!
 
dank je voor je respons en ik heb besloten toch voor de meer dynamischere oplossing te gaan.

Nu ik ben een tabel aan het bouwen waar ik elke variable ontdubbel:

bv Externalskusw actief en ExternalSKUSw inactief
MFG_policy OBS en MFG_policyHST en MFG_policy TBO
enzovoort

ik heb een zeer groot aantal variable die op deze manier ontdubbeld worden

Hoe kan ik dan een "universele' SQL-string schrijven die elke fout kan vindnen op basis van deze tabel...

ik zit potvast.......
 
ik ben niet bekend met de structuur van je database.

als je die post (of een gedeelte ervan) gezipt(!) dan kunnen we ernaar kijken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan