Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: mradlmaier am Mai 15, 2010, 20:15:43

Titel: Ereignisprozedurfunktionieren nicht mehr nach Konvertierung von .mdb auf .mde
Beitrag von: mradlmaier am Mai 15, 2010, 20:15:43
Hallo,

Meine Erreignisprozedur funktioniert nicht mehr, nachdem ich von .mdb auf .mde konvertiert habe...Ich dachte der VBA Code wird kompiliert, sieht aber so aus als ob er entfernt wird?

Mach ich da was falsch oder verstehe ich da was falsch?

Danke
Titel: Re: Ereignisprozedurfunktionieren nicht mehr nach Konvertierung von .mdb auf .mde
Beitrag von: MzKlMu am Mai 15, 2010, 20:31:50
Hallo,
bei einer MDE wird der VBA Code kompiliert und anschließend entfernt. Der ist weg, an den kommt auch der Entwickler nicht mehr.  Daher ist es wichtig, die passende MDB immer gut aufzubewahren.
Lässt sich in der MDB der Code fehlerfrei kompilieren?
ZitatVBA Editor >Debuggen >Kompilieren
Titel: Re: Ereignisprozedurfunktionieren nicht mehr nach Konvertierung von .mdb auf .mde
Beitrag von: mradlmaier am Mai 15, 2010, 21:18:14
Das ganze liess sich fehlerfrei kompilieren...
Da ich aber auch vermutet habe, daß es an der Kompilierung, habe ich überflüssigen Code entfernt. Danach ging`s. Komisch nur, wenn Du mal beide Varianten vergleichst:

Vorher:

Private Sub Form_Current()
    Dim lngWhite As Long
    lngWhite = RGB(255, 255, 255)
    If Me.NewRecord = True Then
        'hier der Code der bei einem neuen Datensatz gilt
        essDatum.ShowDatePicker = 1
        essDatum.BackStyle = 0
        essDatum.Locked = False
        'essDatum.BackColor = lngWhite
    Else
        'hier der Code der bei einem existierendem Datensatz gilt
        essDatum.ShowDatePicker = 0
        essDatum.BackStyle = 1
        essDatum.Locked = True
    End If
End Sub


Nachher:


Private Sub Form_Current()
    If Me.NewRecord = True Then
        'hier der Code der bei einem neuen Datensatz gilt
        essDatum.ShowDatePicker = 1
        essDatum.BackStyle = 0
        essDatum.Locked = False
    Else
        'hier der Code der bei einem existierendem Datensatz gilt
        essDatum.ShowDatePicker = 0
        essDatum.BackStyle = 1
        essDatum.Locked = True
    End If
End Sub


Verstehe jetzt nicht, warum die erste Variante nicht funktioniert?
Titel: Re: Ereignisprozedurfunktionieren nicht mehr nach Konvertierung von .mdb auf .mde
Beitrag von: MzKlMu am Mai 15, 2010, 23:26:50
Hallo,
bin nicht sicher, aber es könnte sein, dass die MDE den RGB Befehl nicht kennt. Weise mal den Farbcode für Weis direkt zu.
lngWhite = 16777215
Titel: Re: Ereignisprozedurfunktionieren nicht mehr nach Konvertierung von .mdb auf .mde
Beitrag von: Josef am Mai 16, 2010, 09:37:03
Hallo!

Die mde kennt alle Befehle, die auch eine mde kennt - denn beide kennen keine Befehle sondern beinhalten im Prinzip nur "Befehle" für die Access (egal ob Vollversion oder Runtime). ;)
In einer mde können aber einige Anweisungen nicht mehr ausgeführt werden. So wird z. B. docmd.OpenForm ..,acDesign zu einem Fehler führen.
Ansonsten sollte man meiner Ansicht nach eine mde nicht mit der Access-Runtime gleichsetzen.


Zu "funktioniert nicht mehr":
Vielleicht funktioniert der erste Code mittlerweile wieder.
Vielleicht wurde die mde auch auf einem anderen PC getestet und dort gab es dann ein Problem mit den Verweisen. Das könnte ein Grund sein, warum die RGB-Funktion nicht gefunden wurde. Vielleicht fehlt auch nur die Aktivierung der Ereignisbehandlung.
Welche Fehlermeldung kam eigentlich? Oder wie machte sich das "nicht funktionieren" sonst bemerkbar?

mfg
Josef