Januar 26, 2021, 19:48:28

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Ereignisprozedurfunktionieren nicht mehr nach Konvertierung von .mdb auf .mde

Begonnen von mradlmaier, Mai 15, 2010, 20:15:43

⏪ vorheriges - nächstes ⏩

mradlmaier

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

MzKlMu

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
Gruß
Klaus

mradlmaier

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?

MzKlMu

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
Gruß
Klaus

Josef

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