Neuigkeiten:

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

Mobiles Hauptmenü

Text aus Formular mit DoppelClick kopieren

Begonnen von Problemkind, August 24, 2017, 13:42:36

⏪ vorheriges - nächstes ⏩

Problemkind

Ich nutze Access 2007-2010 und kämpfe mit einem kleinen Problem:

ich möchte das ein bestimmtes Feld vom meinem Formular mit Doppelklick oder auch Icon in die Zwischenablage kopiert wird.
Bevor die Fragen kommen warum?, hier eine kurze Erklärung:
Ich bekomme die Aufträge per Mail und muss den Eingang und die Weitergabe an den Mailabsender bestätigen. Dazu habe ich ein Feld angelegt, welches mir die 2 Daten (ID und Feld2) in einem Feld (Mailtext) zusammenführt. Das Ergebnis sieht dann wie folgt aus:   'Auftrag unter der Nummer 2541-17 an Schmidt, Hamburg'  weitergeleitet
Diesen Text möchte ich nun kopieren um ihn dann in die Mail einfügen zu können.
ID = Nummer
Feld2= Werkstatt
Mailtext: (kombi aus ID + freien Text + Werkstatt)

Versucht habe ich das mit der Ereignisprozedur:


Private Sub Mailtext_DblClick()           'Kopieren
On Error GoTo Err_Mailtext_DblClick
    Me.Mailtext.SetFocus
    DoCmd.RunCommand acCmdCopy
Exit_Mailtext_DblClick:
    Exit Sub
Err_BefehlKop_Click:
    MsgBox Err.Description
    Resume Exit_Mailtext_DblClick
End Sub

Wenn Access nicht schon vorher meckert, dann spätestens bei Me oder
Resume Exit_Mailtext_DblClick.

Da ich blutiger Anfängernutzer bin, wäre es toll wenn einer mir die perfekte Leitungslösung in einfachen Worten oder Beispiel nennen könnte.
Die oben genannte Lösung habe ich aus dem Forum entnommen, habe also schon die Beiträge versucht zu übernehmen / kopieren. Leider ohne Erfolg.

Lachtaube

Du musst den Text auswählen, bevor der Kopierbefehl abgesetzt wird.Private Sub Mailtext_DblClick()       'Textinhalt in Zwischenablage kopieren
   Dim TextLength As Long

   On Error GoTo Err_Mailtext_DblClick

   With Me.Mailtext
      '.SetFocus                      'den haben wir schon beim Doppelklicken
      TextLength = Len(.Text)
      If TextLength = 0 Then Exit Sub 'es gibt nichts zu kopieren
      .SelStart = 0                   'Anfang festlegen
      .SelLength = TextLength         'Länge festlegen
   End With

   RunCommand acCmdCopy               'Auswahl in Zwischablage kopieren
   
Exit_Mailtext_DblClick:
   Exit Sub

Err_BefehlKop_Click:
   
   MsgBox Err.Description
   Resume Exit_Mailtext_DblClick

End Sub
Grüße von der (⌒▽⌒)

Problemkind

Danke für den Tipp.
Sehe ich das richtig, dass ich in der Entwurfsansicht erst das Feld Mailtext auswähle und dann das Eigenschaftsblatt aufrufe, dann das Register "Ereignis" und Bei Doppelclick die Ereignisprozedur auswähle und dort den Text eintrage?
Habe ich so gemacht und bekomme eine Fehlermeldung:
Sie haben als Einstellug der Ereigniseigenschaft den Ausdruck Beim Doppelklicken eingegeben. Dieser Ausdruck hat einen Fehler verursacht: Deklaration der Prozedur entspricht nciht der Beschreibung oder einer Prozedur mit demselben Namen.

Ich glaube der Fehler sitzt ganz nah vor dem Bildschirm....

Lachtaube

Vor der Ellipse (...) im Ereignis ist doch ein Pfeil zum Aufklappen. Wähle dort Ereignisprozedur aus und klicke danach rechts daneben auf den Knopf mit der Ellipse.
Grüße von der (⌒▽⌒)

Problemkind

Erstmal Danke für die schnelle Antwort, aber..

Habe immer noch die gleiche Fehlermeldung (siehe oben).
Die Hilfe sagt folgendes:
Dieser Fehler tritt auf, wenn ein Ereignis nicht ausgeführt werden konnte, weil der Speicherort der Logik für das Ereignis nicht ausgewertet werden kann. Falls z. B. die OnOpen-Eigenschaft eines Formulars auf =[Field] festgelegt ist, tritt dieser Fehler auf, weil die Ausführung eines Makros oder Ereignisnamens erwartet wird, wenn das Ereignis auftritt.

Liegt es daran, dass ich das Feld "Mailtext" als  Felddatentyp "berechnet" innerhalb der Tabelle angelegt habe? Ausdruck  [Feld1]+[Feld2], Ergebnistyp: Text.

Ansonsten bin der festen Meinung alles andere so umgesetzt zu haben, wie geschrieben wurde.  :-\

DF6GL

Hallo,

poste bitte mit C&P den vollständigen Code der Prozedur...

Die Doppelklick-Prozedur hat ein Argument, das vermutlich fehlt:


xxxx_DblClick(Cancel As Integer)
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

Problemkind

Das war es.. Danke.
Hatte den Code von Lachtaube übernommen und nicht weiter nachgedacht..

Danke an Euch beide.

Lachtaube

... und ich hatte Deinen Code ohne Nachzudenken übernommen - schließlich steht ja auch noch die Aufforderung Kopieren daneben.  ???

PS: für die Verwendung berechneter Tabellenfelder gibt es in Access kaum gute Gründe - sie verschwenden IMHO nur Speicherplatz und lassen sich jederzeit in Abfragen, Formularen oder Berichten nachbilden.
Grüße von der (⌒▽⌒)