Alternative Lösung für DLookup

  • Access

    Alternative Lösung für DLookup

    Hallo :)

    ich habe folgendes Problem. In einem Access - Programm, dass mein Vorgänger geschrieben hat gibt es folgende Situation :

    Es wird aus einer Tabelle ein Feld ausgewählt. Dies geschieht mit einer Abfrage. Dieses Feld wird auf die ersten zwei Buchstaben/Ziffern beschränkt. Da wir nur diese benötigen.
    Jetzt habe ich die Aufgabe bekommen folgenden Code

    Spoiler anzeigen
    ' strSqlStat = "SELECT E44765_DBSTAT_STV_D_SEL.* FROM E44765_DBSTAT_STV_D_SEL WHERE " & _
    ' "(((E44765_DBSTAT_STV_D_SEL.GB)='11' Or (E44765_DBSTAT_STV_D_SEL.GB)='L1' Or " & _
    ' " (E44765_DBSTAT_STV_D_SEL.GB)='S1' Or (E44765_DBSTAT_STV_D_SEL.GB)='M1'


    Variable zu gestalten. Ich soll quasi die Einträge die fett und unterstrichen sind so anpassen, dass man quasi ohne irgendwas über VBA zu wissen eine Tabelle ändern kann und dort die Einträge anpasst.
    Hintergrund : Ich habe eine Tabelle erstellt tbl_GB. In dieser Tabelle steht M1, S1, L1, 11 usw. drin. Ändert sich jetzt ein Geschäftsbereich, weil zb die Rechnungen für diesen vollgelaufen sind erhöht sich der Wert um 1.

    Dafür habe ich folgende Lösung bereits mit Hilfe erhalten :

    Spoiler anzeigen
    strSqlStat = " SELECT* FROM E44765_DBSTAT_STV_D_SEL " & _
    " WHERE GB = '" & DLookup("[aktGB]", "tbl_GB", "[Geschäftsbereich] = 'Strecke'") & _
    " Or GB = '" & DLookup("[aktGB]", "tbl_GB", "[Geschäftsbereich] = 'KASN'") & _
    " Or GB = '" & DLookup("[aktGB]", "tbl_GB", "[Geschäftsbereich] = 'Lager'") & _
    " Or GB = '" & DLookup("[aktGB]", "tbl_GB", "[Geschäftsbereich] = 'MBI'") & _
    " Or GB = '" & DLookup("[aktGB]", "tbl_GB", "[Geschäftsbereich] = 'OT-Werkstatt'")



    Was ich jetzt brauche ist : eine Alternative zu diesem Code bzw. eine Alternative zu DLookup. Der Code an sich funktioniert. Komme ich aber an den Punkt im Code in dem der eigentliche Sinn (nämlich eine große Tabelle mit unseren Umsatzdaten etc. gefüllt wird) schießt die Ausführung des Codes sich ab. Ohne ersichtlichen Fehlercode. Meine Vermutung ist, dass die DLookup-Funktion einfach die falsche für diese Art ist. Mir wurde gesagt, dass - und ich zitiere -
    :"DLookup im Dauerfeuer ist genau so sinnvoll als wenn man wegen jeder Flasche Bier einzeln zum Getränkemarkt quer durch die Stadt und zurück fährt."

    Leider suche ich vergebens nach einer Lösung. Muss dazu sagen : Bin gelernter Systemintegrator und wurde hier so mehr oder weniger in diese Aufgaben mit VBA und Access rein geworfen.

    Hat da jemand eine Idee oder alternative Lösung zu ?