Neuigkeiten:

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

Mobiles Hauptmenü

Neueste Beiträge

#61
Formular / Re: E-Mail aus Access direkt v...
Letzter Beitrag von Bitsqueezer - November 26, 2025, 08:02:57
Hallo René,

Access macht ja nichts von alleine. Wenn Du also keinen Code gebaut hast, bei dem das Formular oder z.B. der Detailbereich auf einen Klick reagieren soll, dann passiert auch keine Code-Ausführung.

ZitatBei der Auswahl des Feldes habe ich btnSend ausgewählt und er zeigt mir auch die Handlung click daneben an.
Auch nach dem 6. Lesen kann ich mir nicht entfernt vorstellen, was dieser Satz bedeuten soll.

Ich würde generell Deine Mail-Send-Funktion verbessern, indem sie nach dem Abgreifen der Control-Inhalte prüft, ob der Inhalt valide ist. Für eine Mailadresse mal minimal das Vorhandensein auf "@" und natürlich, ob der Inhalt leer ist oder nicht. Ebenso sollte ein Betreff nie leer sein. Und ein leerer Body macht i.d.R. auch keinen Sinn.

Das sollte Deine Funktion alles prüfen und abfangen und den Benutzer darauf hinweisen, und wenn nicht alles erfüllt ist, die Mail nicht senden.

Daneben hilft dann einfach, einen Breakpoint in den Code zu setzen und zu debuggen. Dann siehst Du, was da genau passiert und wer der Verursacher ist.

Ansonsten müßte man schon den gesamten Formularcode sehen, um mehr dazu zu sagen. Wenn das schon der gesamte Code war, dann kann das, was Du sagst, nicht zutreffen, da es hier keinen anderen Eventcode als den eines Buttons gibt. Vorausgesetzt, "btnSend" ist der Name eines Button-Controls und nicht eines anderen Objektes...

Gruß

Christian
#62
Formular / E-Mail aus Access direkt verse...
Letzter Beitrag von rene.hundert - November 26, 2025, 07:21:11
Hallo in die Runde,

die Programmierung zum Senden von E-Mail direkt aus Access heraus funktioniert bei mir eigentlich ganz gut.

Private Sub btnSend_Click()
    fx_Email_Senden
End Sub


Private Sub fx_Email_Senden()
    '--- fx_EMail_Senden ()---
   
    Dim sEmail_Adress_Absender As String
    sEmail_Adress_Absender = ctlAbsenderEMail
   
    Dim sEMail_Adress_Empfaenger As String
    sEMail_Adress_Empfaenger = ctlEmpfaengerEMail
   
    Dim sTitle As String
    sTitle = ctlBetreff
   
    Dim sText As String
    sText = ctlTextEmail
   
    '--- Use Outlook App ---
    Dim app_Outlook As Outlook.Application
    Set app_Outlook = New Outlook.Application
   
    '--- Email erstellen ---
    Dim objEmail As Outlook.MailItem
    Set objEmail = app_Outlook.CreateItem(olMailItem)
    objEmail.To = sEMail_Adress_Empfaenger
    objEmail.Subject = sTitle
   
    objEmail.Body = sText
    objEmail.Display False
       
    objEmail.Send
    '--- Email erstellen---
   
    'Abschluss
    Set objEmail = Nothing
    Set app_Outlook = Nothing
    'Abschluss
   
    '--- Use Outlook App ---
    '--- fx_E-Mail_versenden ()---
End Sub

Ich habe nur das Problem, dass er mir eine leere E-Mail erstellt, sobald ich in dem Formular irgendwo hin clicke.

Sicherlich habe ich einen Fehler in meinem Code und sicherlich könnt ihr mir dabei helfen.

Bei der Auswahl des Feldes habe ich btnSend ausgewählt und er zeigt mir auch die Handlung click daneben an.

Vielen Dank und Gruß

René
#63
Formular / Re: Formular "vergisst" Datenq...
Letzter Beitrag von rene.hundert - November 26, 2025, 07:18:19
Servus in die Runde,

ich habe 100 Adressen. Da die Datenbank zu Beginn der kommenden Woche laufen muss, habe ich die Tabelle Adressen kopiert und für die Empfänger ein E angehängt (AdressenE).

Das ist zwar aus meiner Sicht nicht sauber, da ich ja dann zwei Datenbestände habe, die Mehrfachauswahl jetzt aber zurückzudrehen erscheint mir im Moment aufwendiger.

Man lernt ja dazu und ursprünglich habe ich Empfänger und Absender ja auch mit jeweils einem UFo erfasst und dann kam ich auf eine scheinbar bessere Idee.

Aber danke für eure Hilfe
#64
Tabelle/Abfrage / Re: Eingabe einer Zahl inklusi...
Letzter Beitrag von Markus R. - November 25, 2025, 19:51:45
Hallo,

danke für euere Vorschläge!
Die "> 98,6" im obigen Beispiel kann man sich als eine Art Reinheit des Stoffes vorstellen. Sie entsteht, weil man auf bestimmte Unreinheiten prüft und die gefundenen Werte von 100 abzieht. Mit Messfehlern usw. wird dann ein "> xx,x" draus.

Da in der Tabelle auch Messwerte aus anderen Analysen ohne Vergleichszeichen eingetragen werden sollen, gefällt mir die Version mit einer zusätzlichen Spalte für das Vergleichszeichen gerade sehr gut. Mit Lookup-Tabelle dahinter stelle ich mir auch die Dateneingabe "einfach" vor.

Die vorgeschlagenen Datentypen für Werte schaue ich mir jetzt mal genauer an.

In der Tabelle für die Sollwerte könnte das Vergleichszeichen ersetzt werden durch eine Spalte ObereGrenze und eine Spalte UntereGrenze, gegen die man den Messwert prüfen kann. Im Beispiel von oben würde der Sollwert "98,0" in der Spalte UntereGrenze stehen.

Wie könnte dann eine Abfrage aussehen?

Viele Grüße
Markus
#65
Tabelle/Abfrage / Re: Bedingte Formartierung im ...
Letzter Beitrag von Bitsqueezer - November 25, 2025, 12:47:12
Hallo Frank,

das ist richtig, nur vergißt man das bei der Eingabe schon mal und wundert sich dann, wenn es nicht funktioniert, obwohl man glaubt, alles richtig eingegeben zu haben.

Gruß

Christian
#66
Tabelle/Abfrage / Re: Bedingte Formartierung im ...
Letzter Beitrag von Frank200 - November 25, 2025, 11:44:03
Zitat von: Bitsqueezer am November 25, 2025, 09:18:18hat Access aus einem Feldnamen einen String gemacht
Das kann man vermeiden, indem jeder Feldname im Ausdruck in eckigen Klammern geschrieben wird. Unabhängig davon, ob dieser Sonderzeichen oder Leerzeichen enthält.
Das Gleiche gilt für Controlnamen.
#67
Tabelle/Abfrage / Re: Bedingte Formartierung im ...
Letzter Beitrag von Bitsqueezer - November 25, 2025, 09:18:18
Hallo,

außerdem muß man beachten, daß der CF-Editor von Access bisweilen sehr zickig ist. Man hat etwas eingegeben und gespeichert, und wenn man dann wieder den CF-Editor öffnet, hat Access aus einem Feldnamen einen String gemacht. Automatismen sind nicht immer ein Segen...

AfterUpdate würde auch nicht genügen, weil dann eine Farbänderung nur nach Änderung des Feldes eintritt. Rufst Du den Datensatz wieder auf, bleibt der Hintergrund, wie er gerade ist.

In einem Endlosformular ginge das ohnehin nicht. Also: CF ist der richtige Weg und die Kombobox kann das.
Beachte, daß der Wert der Wert der gebundenen Spalte sein muß. Wenn Deine Kombobox also aus ID und Text besteht, kannst Du nicht in der CF-Formel den Text abfragen, Du mußt dann den ID-Wert angeben.

Am einfachsten ist es zu testen, wenn Du die Formel, die Du für CF verwendest, mit in die Abfrage einbaust, dann siehst Du gleich, welche Zeile welches Ergebnis ergibt.

Bei komplexen Formeln ist das ohnehin eine gute Idee, denn dann kannst Du die CF-Formel stark vereinfachen, indem Du nach dem Ergebnis dieser zusätzlichen Spalte fragst. Die Abfrage berechnet das bedeutend schneller und die CF-Formel kann einfach auf True/False testen. Das beschleunigt auch die CF-Anzeige in einem Endlosformular.

Gruß

Christian

#68
Tabelle/Abfrage / Re: Eingabe einer Zahl inklusi...
Letzter Beitrag von Bitsqueezer - November 25, 2025, 09:11:38
Hallo,

würde ich auch so machen, wie von Klaus und Doming vorgeschlagen.
Vorteil ist, daß Du das auch in SQL abfragen kannst, mit IIf oder Switch.
Für die Vergleichsarten kannst Du eine Lookup-Tabelle anlegen, die vom Aufbau so ist, wie von Doming vorgeschlagen.

Ich würde bei Genauigkeit zum Datentyp "Decimal" raten, den es auch in Access gibt, wenn auch etwas versteckt.
Beachte aber, daß es kein VBA-Variablen-Pendant zu Decimal gibt, wenn Du in VBA damit rechnen willst, mußt Du die betreffende Variable als Variant deklarieren, die kann mit Decimal umgehen.

Double ist schon recht genau, aber je nach Anzahl Nachkommastellen, die Du vielleicht brauchst, nicht genau genug, wenn es um Messwerte geht. Es ist halt eine berechnete Fließkommazahl, während Decimal exakt die Ziffern speichert, die Du speichern willst. Dafür aber eben auch nur für die angegebene Anzahl Stellen (Gesamtanzahl, Nachkommastellen davon).

Gruß

Christian

#69
Tabelle/Abfrage / Re: Eingabe einer Zahl inklusi...
Letzter Beitrag von Doming - November 25, 2025, 06:17:08
Moin,

auch mein Senf dazu. Ich würde, wie vermutlich auch von den anderen angedacht, zu dem Wertefeld ein zweites anlegen mit einer Zahl statt der Vergleichszeichen, also z.B. 1 für =, 2 für >, 3 für < usw.
Das kann man dann später in einer Abfrage oder Schleife dementsprechend auswerten.

if (Vergleich = 1 And Wert = Referenzwert) _
Or (Vergleich = 2 And Wert > Referenzwert) _
Or (Vergleich = 3 And Wert < Referenzwert) usw.

Gruß
Doming
#70
Tabelle/Abfrage / Re: Eingabe einer Zahl inklusi...
Letzter Beitrag von MzKlMu - November 25, 2025, 00:04:01
Hallo,
die Zahl sollte als reine Zahl in der Tabelle angelegt werden, ohne die Vergleichszeichen. Datentyp mindestens Double, ggf. auch Dezimal oder Währung (ohne Währunssymbol), je nach erforderlicher Genauigkeit.
Verglichen mit dem Sollwert (der ebenfalls in einer Tabelle gespeichert werden sollte) wird dann in einer Abfrage per Formel. Erst in der Formel gibt es dann das Vergleichszeichen.
Welche Vergleichzeichen gibt es denn (=, >, <, =>, =<) ?
Erkläre die Vergleiche mal genauer.