Neuigkeiten:

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

Mobiles Hauptmenü

Mailadresse automatisch vorbereiten

Begonnen von neutrino, Juli 21, 2019, 13:00:36

⏪ vorheriges - nächstes ⏩

MzKlMu

Hallo,
warum äußert Du Dich nicht zu dem gewünschten Beziehungsbild?
Gruß Klaus

Beaker s.a.

@neutrino
Hm, könnte es sein, das diese DS verwaist sind, also das Feld "Kdnr" leer ist?
Dann würden die gar nicht in der Abfrage auftauchen.
Ansonsten kannst du auch einfach das Kriterium in der ursprünglichen Abfrage
ändern
UPDATE Ansprechpartner As AP INNER JOIN Kundenbasis As K ON AP.Kdnr = K.Kdnr SET AP.Mailadresse = K.Mailvorbereitung WHERE AP.MailAdresse Not Like '*@*'

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

neutrino

@Klaus: Ehrliche Antwort, ich weiß nicht wie .. :)

@ekkehard: Ich dachte erst, das mit dem @ ist die Lösung, komischerweise funktioniert dies aber gar nicht, damit werden gar keine Felder gefüllt.
Ich habe jetzt mit "is null" weiter experimentiert und habe festgestellt, dass die Laufzeite eine Rolle spielt. Die 4000 Adressen + 6000 APs benötigen etwas Zeit. Wenn ich ca 1min abwarte und erst dann das Formular refreshe, kommen auch die Ergebnisse !! Praktisch wäre es, könnte man irgendwo erkennen, dass der Code noch arbeitet (Balken o.ä.). Kann man einen solchen Balken irgendwie einblenden ?

Gruß
neutrino

MzKlMu

#18
@neutrino
was weißt Du nicht, wie man ein Bild hier einfügt, oder was ein Beziehungsbild ist ?

ZitatDie 4000 Adressen + 6000 APs benötigen etwas Zeit.
Eigentlich ist das noch Kleinkram für Access, das ist eine Sache von 1-2 Sekunden.
Vorausgesetzt, die DB ist richtig aufgebaut. So ist z.B. für eine gute Performance eine sinnvolle Indizierung von Feldern unerlässlich.
Daher sind auch die Beziehungen der Tabellen enorm wichtig.

Hast Du überhaupt Beziehungen im Beziehungsfenster angelegt ?

Gruß Klaus

neutrino

#19
So schlimm ist es nicht, das Bild wäre kein Problem ;D ;D Aber das Beziehungsbild wäre schwierig. Meine Datenbank ist total komplex, über viele Jahre gewachsen. Funktioniert aber (auch Dank diesem Forum) perfekt..

Gruß
neutrino

neutrino

Nein, habe ich jedenfalls nicht bewusst. Sicherlich könnte man die Performance deutlich verbessern, aber im normalen Tagesgeschäft läuft alles auf Knopfdruck.

Josef P.

Hallo!

ZitatWenn ich ca 1min abwarte und erst dann das Formular refreshe, kommen auch die Ergebnisse

Currentdb.Execute sollte doch synchron ablaufen. Ein Requery nach diese Code-Zeile sollte meiner Meinung nach die neuen Daten anzeigen.

mfg
Josef

neutrino

Man muß sich dies wie folgt vorstellen: Ich bearbeite einen bestimmten Kundensatz und gebe die Mailvorbereitung in ein dazu vorgesehenes Feld ein. Den Code aktiviere ich in dem Formular mit einer Schaltfläche. Die Ergebnisse kommen aber erst dann im Unterformular mit den vielen Ansprechpartnern hoch, wenn ich das Formular refreshe (oder zB einen Datensatz vor und dann wieder zurückschalte). Weil aber immer die komplette Tabelle durchläuft, muß ich mit dem refresh über eine Minute warten, bis auch Daten ganz unten in der Tabelle durchgelaufen sind.

Daher würde ich am liebsten nur den einen gerade offenen Datensatz bearbeiten (denn mehr ändert sich sowieso in dem Moment nicht), aber dazu habe ich noch keine Lösung.

Gruß
neutrino

DF6GL

Hallo,

dann nutze doch das AfterUpdate-Ereignis des "Mailvorbereitung"-Feldes und aktualisiere (nur) die mit diesem Kunden-DS korrelierenden Ansprechpartnern.  (Entweder mit dem besagten SQL-Update-Statement und einer Where-Condition oder aber auch mit ein bisschen VBA das Recordset der Unterformulare)

Zudem kann dabei auch die Standardwert- Eigenschaft des Mailadressfeldes mit dem Eingabewert besetzt werden...

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

neutrino

Den Standardwert habe ich besetzt. Gute Lösung !

Dies:  mit dem besagten SQL-Update-Statement und einer Where-Condition habe ich nicht umsetzen können.

DF6GL

Hallo,

Sub Mailvorbereitung_AfterUpdate()

Me!UfoSteuerelementname!MailAdresse.Defaultvalue = """" & Me!MailVorbereitung & """"

Currentdb.Execute "UPDATE Ansprechpartner SET Mailadresse = '" & Me!Mailvorbereitung & '" WHERE MailAdresse is Null And KDNR = " & Me!KDNR ,dbFailOnError   ' falls KDNR vom Datentyp LONG ist.
Me!UfoSteuerelementname.Form.Requery

End Sub
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

neutrino

Nochmals vielen Dank für Eure Hilfe !!! Dies ist ein tolles Forum !

neutrino

Hallo,
habe einen schönen Code entdeckt, der mir einen "bitte warten" Fortschrittsbalken in der Statusanzeige anzeigt.

Private Sub btnStatuszeile_Click()
    Dim lngZaehler As Long
    Const clngMaximum = 100000

    SysCmd acSysCmdInitMeter, "Bitte warten...", clngMaximum
    For lngZaehler = 1 To clngMaximum
        SysCmd acSysCmdUpdateMeter, lngZaehler
    Next

    SysCmd acSysCmdRemoveMeter
End Sub


Wie kann dieser Code mit meinem Code

Private Sub Befehl279_Click()
CurrentDb.Execute "UPDATE _Ansprechpartnerbasis As AP INNER JOIN Kundenbasis As K ON AP.Kdnr = K.Kdnr SET AP.Mail = K.MailBasis WHERE AP.Mail is null", dbFailOnError
End Sub


"verheiratet" werden, damit während der Laufzeit meines Codes der "bitte Warten" Balken in der Statusanzeige angezeigt wird ?

Gruß
neutrino

ebs17

Die Zusammenführung wird nicht funktionieren können, da Massendatenverarbeitung (Abfrage) und laufender Zähler nicht zusammenpassen.

Entweder Du aktualisierst per Schleife. Dann kannst Du Deinen Fortschritt wunderbar betrachten, zumal das Ganze dann deutlich länger laufen wird.
Oder aber Du siehst zu, dass die Abfrage flüssig läuft, so dass eine Fortschrittsanzeige gar keine Chance hat zur Sichtbarkeit => Indexnutzung
Mit freundlichem Glück Auf!

Eberhard

neutrino