2009-06-02 17 views
0

Ich habe einen Benutzer, der sich mit einer Endlosformularseite für Access Database beschäftigt, wo sie eine Reihe von Filtern und Dateneingaben durchführen können.MS Access Controlling Kopieren/Einfügen von Daten aus fortlaufendem Formular

Gelegentlich möchte der Benutzer in der Lage sein, einige Zeilen aus diesem Formular auszuwählen und sie direkt in eine E-Mail einzufügen. Outlook formatiert die Daten in eine Tabelle ziemlich gut auf seinem eigenen, aber das Problem, das wir ist haben, die Drop-Down-Steuerelemente aus dem Header in den eingefügten Daten enthalten ist, wie Sie unten sehen können:

Employee_Absences 
drpEmployee drpOrgDescrip lstTimeCode txtToDate txtFromDate chkShowExcused DESCR AbsenceDate Hours Excused_Hours Time Code employee_lookup.ORG_DESCRIP ImportedDate 
      6/2/2009 1/1/2009 0 Bob 1/4/2009 4 0 VAC Medical 5/7/2009 4:51:31 PM 
      6/2/2009 1/1/2009 0 Bill 1/4/2009 6 0 VAC Medical  5/7/2009 4:51:31 PM 
      6/2/2009 1/1/2009 0 Betty 1/4/2009 4 0 VAC Medical 5/7/2009 4:51:31 PM 
      6/2/2009 1/1/2009 0 Beth 1/5/2009 2 0 VAC Gamers 5/7/2009 4:51:31 PM 

der Benutzer nicht Ich möchte mich jedes Mal damit beschäftigen, Spalten zu löschen und neu anzuordnen, wenn sie ein paar Zeilen in eine E-Mail einfügen wollen, und es wäre ziemlich unfreundlich, sie in einen separaten Bericht oder ein Datenblatt zu zwingen, nur um zwei oder drei Zeilen zu erhalten. Ich habe versucht, mit der Reihenfolge der Parameter in der Abfrage zu verwirren, die das Formular füllt, aber das hilft überhaupt nicht.

Gibt es eine Art Copy-to-Clipboard-Ereignis, in das ich mich einklinken kann und die Datenzeilen magisch machen? Irgendwelche anderen Vorschläge?

Antwort

1

Dies ist sicherlich ein Layout-Problem auf dem Formular. Das Auswählen von Zeilen eines fortlaufenden Formulars sollte die Daten aus Steuerelementen in dem Formularheader nicht kopieren.

Vielleicht habe ich das Problem falsch verstanden?

Es ist sicherlich ist möglich, Daten in die Zwischenablage zu setzen. Sehen Sie diese Seite:

Copy variables/control contents to memory

Aber zum Einfügen in eine E-Mail, dann würden Sie Klartext benötigen und die E-Mail müßte in einer Schrift mit fester Breite angezeigt werden. Wenn Sie nicht HTML schreiben möchten, gibt es keine einfache Möglichkeit, eine Tabelle zu formatieren, die in eine Nicht-Text-E-Mail eingefügt wird. Wenn sie HTML senden (was sie nicht sein sollten), wird eine HTML-Tabelle funktionieren. Wenn sie RTF verwenden (und das sollte nicht sein), weiß ich nicht, was passiert, wenn Sie HTML einfügen.

Versuchen Sie herauszufinden, warum das Formular-Header-Steuerelement kopiert wird. Meine Wette ist, dass der Benutzer die anfängliche Auswahl nicht richtig definiert, und Sie lehren ihnen, dies zu tun (oder das Unterformular zu konstruieren, um es zu verhindern), Sie müssen nichts programmieren - was die ganze Schönheit von Access ist.

Eine andere Anmerkung, ich glaube nicht an Bearbeitungen in kontinuierlichen oder Datenblattformen, denn wenn Sie dynamische Kombinationsfelder und dergleichen für die Datenvalidierung benötigen, kann es zu allen möglichen Problemen führen. Stattdessen verwende ich Endlos- und Datenblattformulare als Listen und lasse ein Detailunterformular an die PK des Endlos-/Datenblattformulars binden, so dass bei Auswahl eines Datensatzes im Endlos-/Datenblattformular die Daten im bearbeitbaren Detailunterformular angezeigt werden.

Ich habe gerade zu viele Probleme mit der Bearbeitung von kontinuierlichen und Datenblattformen und das ist, warum ich das getan habe. Die einzige Ausnahme, die ich dafür mache, ist eine Rechnungsform, bei der es sonst keinen guten Weg gibt.

+0

Danke für den Link und das Detail Unterformular Vorschlag-- Für jetzt kann ich nur eine kleine Zwischenablage Schaltfläche erstellen, die der Benutzer drücken kann, um Daten in die Zwischenablage zu kopieren, wie durch eine separate VBA-Funktion bestimmt. Sie wissen nicht, wie Sie die Operation 'In Zwischenablage kopieren' abfangen können (Strg + C oder Rechtsklick auf das Kontextmenü), um die Ausführung des VBA-Codes auszulösen, oder? – nvuono

+0

Sie können die Tastenvorschau im Formular verwenden, um diesen Tastendruck abzufangen und zu testen. Nicht sicher, ob du das brauchst oder nicht. –