Juli 15, 2020, 14:57:47

Neuigkeiten:

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


Drucken von angezeigtem Datensatz

Begonnen von 00Toni, März 10, 2015, 20:15:33

⏪ vorheriges - nächstes ⏩

00Toni

Hallo

nachdem ihr mir bei meinem ersten Post sehr gut geholfen habt, und ich die Ganze struktur nochmal überdacht und geändert habe, läuft alles soweit sehr gut. Ich habe nurnoch ein paar kleinere Probleme die ich bekämpfen muss. Ich hoffe ihr könnt mir da wieder so gut helfen.

Problem 1: in meinem Formular lasse ich immer nur einen Datensatz anzeigen. Zur zeit nutze ich eine Makro von MS um die Papiere auszudrucken. Allerdings druckt es mir dann ALLE Datensätze. Momentan nicht schlimm aber später mal bei 100 Datensätzen wids doch sehr dünn. Wie kann ich da also nur den angezeigen Datensatz ausdrucken.

Problem 2: Kann man einen Datensatz nach dem Drucken Sperren sodas es nicht mehr (zumindest im Formular) ändern kann.

Problem 3: Welche Formel kann ich benutzen um zahlen, die in meinem Datensatz drinstehen zusammenzurechnen? Mit =Summe([feld]+[feld1]) erhalte ich alles aus allen Datensätzen. Ich will aber nur aus dem einen (aktuellen) datensatz die Zahlen zusammenrechnen

Problem 4: Kann ich meine Datenbank irgendwie so steuern das nur das Formular aufgeht und der Ganze andere rest von Access zubleibt? (also als Benutzeroberfläche) hintergrund ist der, das viele Leute damit arbeiten sollen. und ihr kennt das ja wenn dort ein VollD*** irgendwas löscht was man braucht, kann man alles von vorn machen.

Das ist ne ganze Menge und ich hoffe ihr könnt und wollt mir helfen.

Ich danke schonmal im vorraus.

LG Toni

MaggieMay

März 10, 2015, 22:02:17 #1 Letzte Bearbeitung: März 10, 2015, 22:07:31 von MaggieMay
Hallo Toni,
Zitat von: 00Toni am März 10, 2015, 20:15:33Wie kann ich da also nur den angezeigen Datensatz ausdrucken.

Am besten, du verabschiedest dich von den Makros und setzt Ereignisprozeduren ein, denn über VBA-Code kann man leichter kommunizieren.
Zum Öffnen des Berichts nutzt du dann die OpenReport-Methode, dabei kannst du die aktuelle Datensatz-ID als Filterkriterium (-> WhereCondition) übergeben.

ZitatKann man einen Datensatz nach dem Drucken Sperren sodas es nicht mehr (zumindest im Formular) ändern kann.

Dazu kannst du ein Kennzeichen "gedruckt" (Ja/Nein) hinzufügen, das du nach dem Drucken setzt, wobei zu beachten ist, dass der tatsächliche, erfolgreiche Ausdruck nicht automatisiert festgestellt werden kann, sondern vom Anwender auf Rückfrage (bspw. im Close-Ereignis des Berichts) bestätigt werden muss. Im Formular fragst du dieses Feld im Ereignis "Beim Anzeigen" ab und kannst davon abhängig die Textfelder oder den ganzen Datensatz sperren, bspw. über die Formulareigenschaft "Bearbeiten zulassen" (und weitere).

ZitatMit =Summe([feld]+[feld1]) erhalte ich alles aus allen Datensätzen.

Ganz einfach, lass die Summe-Funktion weg und addiere nur.

Zitatdas nur das Formular aufgeht und der Ganze andere rest von Access zubleibt?

Wenn das lediglich dem Schutz deiner Anwendung dienen soll, gibt es andere Möglichkeiten, bspw. die Ausführung mit der Access-Runtime oder die Verteilung einer accdr-Datei, die einfach durch Umbenennung der Dateierweiterung erzeugt werden kann. Auch die Erstellung einer accde wird gerne empfohlen, damit wird aber lediglich der VBA-Code verborgen. Außerdem gibt es die Möglichkeit, die Optionen zu einzustellen, dass der Blick auf das Navigationspanel versperrt wird und die Anwendung ausschließlich formulargesteuert zu bedienen ist ohne die Entwurfsansicht freizugeben. Ich würde also empfehlen, in dieser Richtung weiterzuforschen.

Einen weiteren Schutz bietet die Aufteilung der DB in Frontend (nur Anwendungsteil) und Backend (nur Tabellen), denn dann kann ein "zerschossenes" Frontend problemlos ausgetauscht werden, ohne dass Daten verloren gehen.
Freundliche Grüße
MaggieMay

00Toni

Hallo
Danke für die schnelle antwort.
ZitatAm besten, du verabschiedest dich von den Makros und setzt Ereignisprozeduren ein, denn über VBA-Code kann man leichter kommunizieren.

Leider habe ich das fach VBA in der Schule verschlafen ;-( deswegen hatte ich gehofft ein passendes Makro zu finden. Ich weis zwar wie ich da reinkomme um das zu schreiben aber habe kein plan was da rein muss.

ZitatGanz einfach, lass die Summe-Funktion weg und addiere nur.

Wenn ich das mache verkettet er mir nur die Zahlen und rechnet sie nicht zusammen.

ZitatEinen weiteren Schutz bietet die Aufteilung der DB in Frontend (nur Anwendungsteil) und Backend (nur Tabellen),

ok ich hoffe ich lehne mich jetzt nicht zu weit aus dem Fenster und frage mal vorsichtig ... Wie teile ich das auf.
Ich hatte an sowas gedacht wie: Doppelklick auf eine Anwendung/Programm oder Datei und dann geht ein fenster auf wo nur das Formular drin ist. Damit man garkein zugang zum rest hat.

MaggieMay

März 11, 2015, 00:23:33 #3 Letzte Bearbeitung: März 11, 2015, 00:28:24 von MaggieMay
Hi,
Zitat von: 00Toni am März 10, 2015, 23:40:10Ich weis zwar wie ich da reinkomme um das zu schreiben aber habe kein plan was da rein muss.
so ähnlich geht es dann wohl auch einem Programmierer, der nicht mit Makros arbeitet. Der VBA-Code dagegen ist bekannt.

ZitatWenn ich das mache verkettet er mir nur die Zahlen und rechnet sie nicht zusammen.

Dann sind es keine Zahlen. Das kannst du folgendermaßen umgehen:
=Val([feld])+Val([feld1])

ZitatWie teile ich das auf.

Dafür gibt es eine Access-Funktion, sollte sich vmtl. im Ribbon "Datenbanktools" finden lassen.

ZitatIch hatte an sowas gedacht wie: Doppelklick auf eine Anwendung/Programm oder Datei und dann geht ein fenster auf wo nur das Formular drin ist.

Meine Antwort dazu hast du vermutlich gelesen, die Umsetzung ist nicht unbedingt trivial, aber möglich.

Aber auch das Verstecken des Access-Fensters ist grundsätzlich möglich, doch damit habe ich mich noch nicht befasst, weil ich derartige Manipulationen ablehne und Anfängern auch nicht empfehlen würde.
Freundliche Grüße
MaggieMay

00Toni

Hallo ihr lieben

ich bin soweit fast durch mit meinem Projekt...

Bleibt nurnoch das problem mit dem Drucken. Gibt es bei euch jmd der mir nen VBA-CODE schreiben könnte, der sagt: Drucke im Formular "Formular_WA_Paletten" nur den angezeigten Datensatz aus. ??

Vielen Dank

Toni

MzKlMu

Hallo,
wie heißt der Primärschlüssel des Datensatzes, wie heißt das Formularfeld das diesen anzeigt und welcher Datentyp hat dieser?
Gruß
Klaus

el_gomero

Hallo Toni,

ne gute Beschreibung dazu gibts in der faq --> http://www.donkarl.com?FAQ5.9
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

00Toni

Der Primärschlüssel ist die ID die von Access vergeben wird. Das Formularfeld hat den selben namen ( ID) um es zu unterscheiden. Datentyp ist AutoWert.
Ich danke euch im vorraus.

LG Toni


el_gomero

Hallo,

Zitat
Das Formularfeld hat den selben namen ( ID) um es zu unterscheiden.


Aha  ::)
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen