Hallo,
ich hab zwei zusätzliche Icons für Kopieren und Einfügen in meine Datenbank eingefügt, damit der Nutzer nicht immer rechtsklick->einfügen machen muss. (DoCmd.DoMenuItem acFormBar, acEditMenu, acPaste, , acMenuVer70 oder RunCommand acCmdPaste).
Ich bekomme aber nur die Fehlermeldung:
"Der Befehl oder die Aktion 'Einfügen' steht momentan nicht zur Verfügung"
Hab schon viel gesucht, aber bisher nicht wirklich eine Lösung gefunden.
Kennt jemand eine Lösung?
EDIT:
Ich sollte vielleicht noch erwähnen das die Icons in der oberen Menüleiste funktionieren. Nur nicht die selbstgebauten.
Hallo,
wie lautet der komplette Code der Prozeduren?
Vielleicht hast Du gar keinen akt. Datensatz (mehr) markiert
Schau Dir mal das Ergebnis des Assistenten an, der ein entspr. Copy&Paste erzeugt. (Datensatz duplizieren)
Anderseits steht bei solchen Sachen immer die Frage im Raum: Wozu wird das "Duplizieren" überhaupt gebraucht?
Hallo,
Nun, ich verwende ja den Assistenten-Code.
Außerdem hab ich es auch mit den Code von donkarl probiert. In beiden Fällen das gleiche Ergebnis.
Auch wenn ich einen Abschnitt in zB einen Memofeld markiere und dann kopieren will, gibt er mir eine Fehlermeldung raus.
Mit den normalen Menüleisten oder Mausfunktionen funktioniert das hingegen.
Hallo,
seit etlichen Jahren gibt MS die Emfehlung, nicht mit DoCmd.DoMenuItem... zu arbeiten, sondern dafür DoCmd.RunConmmand ... zu verwenden.
Obwohl der Assistent immern noch die alte Syntax verwendet!!!
Obs daran liegt?, dazu musst du uns deinen Code zeigen!
Gruß Oma
Hallo,
Naja, der Code ist halt direkt vom Assistenten, nichts geändert und so.
Private Sub BefehlEin_Click() 'Einfügen
On Error GoTo Err_BefehlEin_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, acPaste, , acMenuVer70
Exit_BefehlEin_Click:
Exit Sub
Err_BefehlEin_Click:
MsgBox Err.Description
Resume Exit_BefehlEin_Click
Ich hab es jetzt auch mit Docmd.RunCommand probiert, aber genau das Selbe.
Hallo,
nun, bei mir macht der Assistent bei "Duplizieren" und "Neuen Datensatz anfügen" dieses:
Private Sub Befehl5_Click()
On Error GoTo Err_Befehl5_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append
Exit_Befehl5_Click:
Exit Sub
Err_Befehl5_Click:
MsgBox Err.Description
Resume Exit_Befehl5_Click
End Sub
und auch nur, wenn ein vorhandener DS markiert ist. Eine Fehlermeldung erscheint dann, wenn kein, bzw. der neue Ds markiert ist.
wobei immer noch die Frage nach dem Sinn solcher Kopiererei offen ist....
Hallo,
ich will den Nutzer einfach nur eine einfache kopieren und einfügen ermöglichen, und zwar das er einfach nur auf die Schaltfläche klickt und dann das Textfeld mit den Inhalt der Zwischenablage gefüttert wird.
Also das, was normalerweise man mit Strg+C/Strg+V macht, oder per rechtsklick Maus etc.
Das ist schon alles.
Hallo,
naja, damit wird die Sinnhaftigkleit auch nicht klarer....
wie auch immer, nimm halt mal keinen Button, sondern das Doppelklick-Ereignis entweder des Formulares (Datensatzzeiger == Formular im Endlosform) oder des Feldes , das mit dem Einfügen behandelt werden soll.
Hallo T417,
Vielleicht hilft:
http://www.donkarl.com?FAQ6.15 (http://www.donkarl.com?FAQ6.15)
gruss ekkehard
Hallo,
Problem lag wohl daran das ich keinen klaren Fokus gesetzt hatte. Hab jetzt nur das Problem das ich eigenlich nur den markierten Teil eines Textes kopieren will. So wie es jetzt gelöst ist, kopiert Access aber den gesamten Text.
Private Sub BefehlKop_Click() 'Kopieren
On Error GoTo Err_BefehlKop_Click
Me.Memo1.SetFocus
DoCmd.RunCommand acCmdCopy
Exit_BefehlKop_Click:
Exit Sub
Err_BefehlKop_Click:
MsgBox Err.Description
Resume Exit_BefehlKop_Click
Das macht nur wenig Sinn. Diese Schaltfläche soll den Sinn erfüllen, wenn der Nutzer einen längeren Text ins Memofeld schreibt, und dann einen Abschnitt davon markieren und kopieren will, zB weil es irgendeine Nummer, ein Name, oder eine Projektbeschreibung ist.
Es geht mir also um das markieren eines Teils des Textes in dem Memofeld,- und diesen Teil dann kopieren.
Ich hoffe ich hab jetzt alle eure Fragen beantwortet.
Zu dieser Problemstellung hab ich bis jetzt nicht viel gefunden, ich hoffe einer von euch kennt da eine Lösung.
EDIT: Hab den Code korrigiert. Hatte versehentlich den EinfügenCode, anstatt den KopierenCode ähm eingefügt.
EDIT 2: Das Einfügen klappt auch nicht richtig, da ich ja den Fokus auf das Memofeld lege, überschreibt der mir den Inhalt.
Hallo T417,
Lege im Formularmodul im Modulkopf eine Variable an
Private m_strSelect As String
Im Ereignis LostFocus des Memofeldes wird diese befüllt
m_strSelect = Me!Memo1.SelText
Dein(e) Button-Ereignisprozeduren verwenden dann diese
Me!DeinZiel = m_strSelect
hth
gruss ekkehard
Hallo,
Tja, das funktioniert zwar, hat aber den Nachteil das er immer das einfügt was man zuletzt markiert hat.
Ach was solls.
Ich bin trotz stundenlangen Nachdenkens und suchens auf keine gute Lösung gekommen, ich geb diese Funktion jetzt auf.
Trotzdem danke für die Hilfe.
Hallo T417,
ZitatTja, das funktioniert zwar, hat aber den Nachteil das er immer das einfügt was man zuletzt markiert hat.
Ach was solls.
Ja, was denn sonst?
So hatte ich Deine Frage jedenfalls verstanden:
In einem Memofeld was markieren (auswählen),
diese Auswahl zwischenspeichern und
irgendwo? per Buttonclick wieder einfügen.
Veilleicht kannst Du mich aufklären.
gruss ekkehard