Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

abfrage nach lesebestätigung neu selektieren

Begonnen von Icemann1970, Mai 08, 2017, 21:33:05

⏪ vorheriges - nächstes ⏩

Icemann1970

Hallo, ich wieder :-(
Komplizierte Frage, hoffentlich könnt Ihr mich verstehen.

Also, ich habe eine ein Formular basierend auf einer Abfrage erstellt, die angezeigten Daten im Endlosformular werden als Bericht an einer Mail Adresse gesendet. Das ist kein Problem. Jetzt kommts..... wenn ich das Formular (basierend auf die Abfrage) wieder öffne / Aktualisiere, möchte ich die Datensätze, die ich per Mail gesendet habe nicht mehr angezeigt bekommen aber nicht gelöscht, da diese Daten in einem anderen Formular benötigt werden.

Beispiel.
Ersatzteilbestellung zu einem Objekt. Ich bestelle 10 Ersatzteile und sende diese als PDF per Mail und mir fallen am nächsten Tag zu dem gleichen Objekt weitere Ersatzteile ein kann ich die nicht einzeln senden weil die zu den anderen (bereits bestellten) Teilen dazugefügt werden. Um einen Überblick nach ende der Arbeit zu erhalten müssen alle Ersatzteile gespeichert bleiben.
Hoffentlich habe ich mich deutlich ausgedrückt.
Mir schwebt da was durch den Kopf.... Im Aktuellen Abfrage Formular per Befehlsschaltfläche (Bestellung senden) noch zusätzlich automatisch hinter jedem Datensatz ein Häckchen ja/nein automatisch auf 0 oder -1 setzten, das könnte ich ja dann im Vorfeld in den Abfragekriterium eintragen ( Kontrollkästchen xy --> Kriterium "Wahr oder Falsch" setzen.
Mfg. Udo

MzKlMu

Hallo,
verwende lieber ein Datum (BestelltAm) statt des Hakens.
Wenn die Mail raus ist, setzt Du per Aktualisierungsabfrage die Datensätze das Datum auf das aktuelle Datum.
Dann siehst Du was wann bestellt wurde. Bei einem leeren Datumsfeld ist die Bestellung nicht raus.
Gruß Klaus

Icemann1970

Hallo Klaus.
Stimmt. Du hast recht Datum und Uhrzeit ist noch besser. Habe im Formular hinter einem Button den Code : Dazugehörigen Bericht öffnen, Per Mail senden und Datum einfügen. Funktioniert soweit auch ABER ..... das Datum erscheint nur beim ersten Datensatz im Endlosformular. Habe das Textfeld für Datum im Detailbereich gesetzt.
Würde gerne für den Code die Codetags des Forums benutzen aber es funktioniert bei mir nicht (das Internet ist bestimmt kaputt ) ;-) ;-)
Hast du da eine Lösung oder eine Richtung die ich einschlagen muss?
Mfg. Udo

Icemann1970

Hallo,
Wie kann ich ein Datum "Jetzt()" im Formularkopf auf die im Detailbereich im Endlosformular befindliche Gebundenes Feld "BestellDatum" (in alle ausgewählten) Datensätze übergeben?
Mfg. Udo

MzKlMu

Hallo,
mit einer Aktualisierungsabfrage. Als Kriterium muss dann der Fremdschlüssel der gedruckten Datensätze verwendet werden.

Hast Du eine übergeordnete Bestellung für die z.B. 10 bestellten Ersatzteile ?
Gruß Klaus

Icemann1970

#5
Hallo Klaus.
Wenn ich im Formular die Ersatzteile auswähle kann ich "häckchen" setzen ob die Teile in einer Sammelkiste (Restekiste) da sind, die nicht da sind werden dann über den Button "Material bei Hersteller bestellen" zum Bericht geführt.
Wenn ich dann überprüft habe und den Button "Bestellung senden" drücke soll im Bericht in allen Datensätze das Heutige Datum geschrieben und gespeichert werden. Das Datum brauche ich a`als "Nachweis" und b`für Abfragen damit die bereits bestellten Teile nicht wieder aufgeführt werden.
Siehe Bild im Anhang.
Mfg. Udo

Icemann1970

Morgen Klaus.
Sorry, habe nicht richtig gelesen. Sollte mal alles in Ruhe machen. Bin jetzt auf dem richtigen Weg.
Danke nochmal
Mfg. Udo

Icemann1970

#7
Guten Morgen Klaus.
Ich komme nicht weiter und brauche nochmal deine / eure Unterstützung. Als erstes kann ich den Code nicht hier mit der # eingeben daher sende ich ihn nochmal so rüber.
So, mein Anliegen ist, wenn ich den Befehl ausführe wird der Bericht gesendet aber das Datum macht Fehler.
Der Befehl ist im Bericht, der gefiltert nach Gerätenummer ist ( in diesem Fall die Nr 1)

Private Sub BestSenden_Click()
Dim Element As Variant, strAdr As String
   On Error GoTo Rundmail_Err
    DoCmd.OpenReport "MaterialLagerVorhanden", acViewReport, , "[Geräte Nummer] = '" & Me![Geräte Nummer] & "'"
    DoCmd.SendObject acSendReport, "", "pdf", strAdr, , , " Ersatzteibestellung zu Gerätenummer: " & Me.Geräte_Nummer & " Geprüft und Freigabe durch " & Me.Text41, " Die Ersatzteile sind auf Lager/Gebraucht. Bestellung wurde geprüft durch siehe Absender der Mail."    '(kommt noch automatisierung dazu.)   
        'INFO: Wenn bericht gesendet soll jetzt bestelldatum in der Tabelle Material Feld BestellDatum mit Jetzt() gefüllt werden
        'Me.Text54 = " Nach dem Senden kann ich diesen Text zum testen in dem ungebundenem Textfeld im Bericht
                      'sehen (nur so für mich zum testen, funktioniert) "   
    Me.[Material].[BestellDatum] = Now()      ' <----- das funktioniert nicht,Fehlermeldung:  MS Access kann den in Ihrem Ausdruck angesprochene Feld '1' nicht finden.
      Me.Requery
Rundmail_Exit:
      Exit Sub
Rundmail_Err:
      MsgBox Error$
      Resume Rundmail_Exit
End Sub


Fehlermeldeung:
MS Access kann den in Ihrem Ausdruck angesprochene Feld '1' nicht finden.

die 1 hat so wie es aussieht nichts mit der Gerätenummer zu tun da der fehler "Feld'1' auch mit der Gerätenummer 2 auftaucht.

Könnt ihr mir bitte dabei helfen?
Mfg. Udo

DF6GL

Hallo,

.
.
.
.
'INFO: Wenn bericht gesendet soll jetzt bestelldatum in der Tabelle Material Feld BestellDatum mit Jetzt() gefüllt werden

Currentdb.Execute "Update Material Set BestellDatum = Now() Where [Geräte Nummer] = '" & Me![Geräte Nummer] & "'"


        'Me.Text54 = " Nach dem Senden kann ich diesen Text zum testen in dem ungebundenem Textfeld im Bericht
                      'sehen (nur so für mich zum testen, funktioniert) "
   
'''''   Me![BestellDatum] = Now()      ' Bestelldatum muss im Form vorhanden sein.  Diese Zeile ist aber überflüssig.   
    Me.Requery
.
.
.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Icemann1970

Hallo Franz.
Vielen vielen dank. Ich habe da zwei Wochen dran gesessen und Google gequält und du machst das in 10 Minuten. Respekt.
Funktioniert ABER :-) ich habe im Beitrag 5 ein Bild gesendet. In dem Formular wird über Häkchen gefiltert welche Teile intern (Sammelkiste) vorhanden sind und welche nicht. Oben sind zwei Button Intern oder bei Hersteller bestellen. Dein Code erstellt bei allen Datensätzen zugehörig zur Gerätenummer nach dem Senden das Datum, ich würde gerne nur das Datum in den Bestellten (gesendeten) Ersatzteile einfügen lassen. Sprich die Ersatzteile, die noch nicht gesendet wurden bleibt das BestellDatum noch leer. (Da aus "einer" Bestellung ja " zwei (gesplittete)" Bestellungen werden, die an zwei unterschiedliche Adressen gesendet werden.
Hintergrund ist. Im Hauptformular werden zu einem Gerät mit und mit Ersatzteile bestellt, alle bestellten Ersatzteile zu diesem Gerät werden in einer Abfrage bei bedarf abgefragt. ( Kann die gesendeten nicht löschen) wenn der Kollege wieder zu dem Gerät Ersatzteile bestellt, sollen die Bereits bestellten Teile nicht erscheinen, die ich dann mit dem Kriterium " BestellDatum = Wahr " ausblende, Daher darf das Datum nicht in alle Datensätze erscheinen. Kannst du mir das auch noch zeigen ?
Mfg. Udo

DF6GL

Hallo,

wenn ich es richtig deute, dann soll nur bei den Datensätzen mit angehaktem Feld "InternVorhanden" das Datum gesetzt werden...:

.
.
.
Me.Dirty = False
Currentdb.Execute "Update Material Set BestellDatum = Now() Where [Geräte Nummer] = '" & Me![Geräte Nummer] & "' And [InternVorhanden] = True "
.
.


Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MzKlMu

Hallo,
ich habe in dem Bild weiter oben das LOGO entfernt (War gewünscht worden).

Gruß Klaus

Icemann1970

Danke Klaus.
Danke Franz. Ich würde Euch gerne mal auf einen Grillnachmittag einladen....Natürlich auch diejenigen, die mir bisher so toll geholfen haben, mit Rat und tat. IHR SEID KLASSE !!!!

Nun noch eins, alles funktioniert. Würde aber noch einen kleinen schliff rein bekommen. Die Zeiten wann eine Mail versendet wurde "BestellDatum" soll nicht komplett aktualisiert werden beim senden sondern nur die, die noch kein "Bestelldatum" ausgefüllt haben. Sprich, jetzt werden alle gesendete auf das letzte Datum/Zeit geändert und ich kann nicht kontrollieren wann die einzelnen Bestellungen gesendet wurden.
Mfg. Udo

Icemann1970

 CurrentDb.Execute "Update Material Set BestellDatum = Now() Where [Geräte Nummer] = '" & Me![Geräte Nummer] & "' And [ImLagerErhältlich] = True " & "' And [BestellDatum] = "IsNull"
   
Mfg. Udo

Icemann1970

Mfg. Udo