1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Prozedur zu groß

Dieses Thema im Forum "Microsoft Access" wurde erstellt von Aitutaki, 25 Oktober 2011.

  1. Aitutaki

    Aitutaki Benutzer

    Hallo,

    habe diverse Formulare mit dazugehörigen Codes. Nach der Bearbeitung (Erweiterung) eines besonders langen Codes bekomme ich plötzlich die Fehlermeldung "Fehler beim Kompilieren: Prozedur zu groß."

    Der Code besteht hauptsächlich aus einer sehr langen Reihe, sich wiederholender If-Elementen, die beim Anklicken von Checkboxen die Aktivität, Sperrung und Farben von Text- und Bezeichnungsfeldern ändern. Hier ein Ausschnitt als Beispiel:

    If Me!AdrCheck = "1" Then
    Me!Adr_GebDat.Enabled = True 'Aktivität
    Me!Adr_GebDat.Locked = False 'Sperrung
    Me!Adr_GebDat.BackColor = RGB(255, 255, 255) 'Textfeldhintergrundfarbe weiß
    Me!Adr_GebDat.ForeColor = RGB(0, 0, 0) 'Textfeldschriftfarbe schwarz
    Me!Bezeichnungsfeld393.ForeColor = RGB(0, 0, 0) 'Bezeichnungsfeldschriftfarbe schwarz
    Else
    Me!Adr_GebDat.Enabled = False 'Aktivität
    Me!Adr_GebDat.Locked = True 'Sperrung
    Me!Adr_GebDat.BackColor = RGB(204, 200, 194) 'Textfeldhintergrundfarbe mittelgrau 1
    Me!Adr_GebDat.ForeColor = RGB(162, 157, 150) 'Textfeldschriftfarbe mittelgrau 3
    Me!Bezeichnungsfeld393.ForeColor = RGB(162, 157, 150) 'Bezeichnungsfeldschriftfarbe mittelgrau 3
    End If

    Nun möchte ich diesen Code aufspalten und die sich wiederholenden Teile in einen einzigen Teil setzen, den ich mit CALL aufrufen möchte. Wie ließe sich das aufspalten? Soll dabei ein Modul oder ein Klassenmodul verwendet werden?

    Ich bin VBA-Anfänger, wäre sehr dankbar für eine Hilfe.

    Viele Grüße

    Robert
     
  2. Aitutaki

    Aitutaki Benutzer

    Hallo,

    weiß jemand wenigstens, ob Module oder Klassenmodule für eine Unterprozedur in Frage kommen?

    Viele Grüße

    Robert
     
  3. ukulele

    ukulele Datenbank-Guru

    Ich glaube mit VB und Access kennt sich hier keiner richtig aus. Ich kann dir nur bei T-SQL helfen.
     
  4. Charly

    Charly Datenbank-Guru

    Hallo Aitutaki,

    was Du nimmst ist eigentlich egal.

    Wenn Du ein Klassenmodul nimmst baust Du ein Objekt mit Eigenschaften usw. (Ist am Anfang aber mehr Arbeit).
    Wenn Du ein normales Modul nimmst hast Du nur so was wie einen Sammelbehälter für Funktionen.

    Beispiel für eine Funktion in einem Modul:

    Ich will bei jedem Start eines Formulars seinen Namen in einer Messagebox angezeigt bekommen.

    Code fürs Formular:
    Code:
    Private Sub Form_Load()
    MsgBox "Mein name ist " & test(Me), vbOKOnly
    End Sub
    
    Code fürs Modul:
    Code:
    Public Function test(ByRef f As Form) As String
    test = f.Name
    End Function
    
    Ist sehr einfach gehalten und nicht sonderlich Sinnreich zeigt aber wie es funktioniert.

    Gruß Charly
     
Die Seite wird geladen...
Ähnliche Themen
  1. Davvud
    Antworten:
    3
    Aufrufe:
    962
  2. bluepeople12
    Antworten:
    3
    Aufrufe:
    1.328

Diese Seite empfehlen