Hallo,
ich versuche verzweifelt von Outlook aus eine Checkbox in Access abzufragen.
Leider finde ich nichts im Netz und meine Kenntnisse sind sehr überschaubar.....
Dim objAccess As Access.Application
Set objAccess = GetObject(, "Access.Application")
objAccess.DoCmd.OpenForm "frmHauptseite"
objAccess.DoCmd.GoToControl "MailUmleitung"
If Me.MailUmleitung Then
MsgBox "Checkbox markiert"
Set objAccess = Nothing
End If
Hallo,
wenn schon, musst Du mit DLookup eine Tabelle abfragen, denn die Daten liegen ja in Tabellen und nicht in Formularen. Und wahrscheinlich muss auch noch auf einen bestimmten Datensatz referenziert werden.
Hallo,
von meiner Nachricht fehlt leider irgendwie die Hälfte:
Ich habe in Access eine Checkbox "MailUmleitung" in dem Formular "frmHauptseite" die ich von Outlook aus prüfen möchte ob sie markiert ist oder nicht.
Mit obigem Code komme ich auch soweit, dass der Focus auf die Checkbox gesetzt wird.
Allerdings bekomme ich es nicht hin den Status abzufragen.
Hier liegt das Problem -> If Me.MailUmleitung Then
Ich habe schon alles mögliche versucht aber immer bekomme ich Fehler....
Hallo,
ich habe da keine Erfahrung dazu.
Aber vieleicht hilft es ja schon die Bedingung vollständig zu nutzen.
If Me.MailUmleitung = True ThenDer Focus muss nicht zwingend auf die Checkbox gesetzt werden. Wenn das Formular offen ist, spielt zum Abfragen eines Feldes der Focus keine Rolle.
Und wie gesagt, Formulare speichern keine Daten, bist Du sicher, dass im Fomular auch der richtige Datensatz angezeigt wird ?
Ist das Formular an eine Datenquelle gebunden und ist die Checkbox an ein Tabellenfeld gebunden ?
Es geht nur um den Haken in der Checkbox in dem geöffneten Formular. An oder aus. Sonst werden keine Daten abgerufen.
Dadurch wird eine Weiterleitung in Outlook gesteuert. Ist die Checkbox gesetzt werden die eingehenden Mails weitergeleitet. Ist sie leer passiert nichts.
Methode oder Datenobjekt nicht gefunden, diese Fehlermeldung bekomme ich immer.
Auch bei "If Me.MailUmleitung = True Then" bekomme ich eine Fehlermeldung.
Die Checkbox ist ungebunden.
Hallo,
ZitatDie Checkbox ist ungebunden.
dann kann es ohnehin nicht funktionieren. Ein gesetzter Haken wird ja nicht gespeichert, das heißt, beim Öffnen des Formulars ist die Checkbox immer NULL (Leer).
Unabhängig von der Fehlermeldung kann das niemals funktionieren.
Die Checkbox muss zwingend gebunden sein.
Kannst Du ja selbst ausprobieren, öffne das Formular, setze den Haken, schließe das Formular, öffne es anschleißend wieder. Was macht der Haken ?
Zitat von: Mark77 am März 10, 2023, 14:14:35Auch bei "If Me.MailUmleitung = True Then" bekomme ich eine Fehlermeldung.
Weist du was Me bedeutet?
Me bezieht sicher immer auf das aktuelle Objekt.
Der Code kann also nur funktionieren, wenn er innerhalb eines Formulares ausgeführt wird.
So bezieht er sich auf das Objekt in dem er ausgeführt wird - also im besten Fall ein Outlook Klassenmodul.
Eine ordentliche Referenzierung würde also z.B. so aussehen, falls sich das Control im Hauptformular befindet:
objAccess.Forms!Formularname!Steuerelement
Aber mir scheint es sich hier um einen größeren Murx zu handeln.
DoCmd-Zeugs und Objektbezüge sind keine kooperierenden Partner.
Dim objAccess As Access.Application
' Formular und CheckBox dürften in einer konkreten Datei liegen, nicht beliebig in "Access"
Set objAccess = GetObject("X:\AnyWhere\AnyDB.accdb")
objAccess.DoCmd.OpenForm "frmHauptseite"
With objAccess.Forms("frmHauptseite")
MsgBox .MailUmleitung
End With
Vielen Dank für alle Antworten.
@markusxy, danke, das war schon die Lösung.
Ich habe schon soviel versucht, dass wohl immer eine Kleinigkeit falsch war.
Das mit dem Me. war nur ein letzter Versuch der aber natürlich auch nicht ging....
Nun funktioniert es so wie es soll.
Nochmals Danke an alle.