Neuigkeiten:

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

Mobiles Hauptmenü

Vorauswahl Formular

Begonnen von julle, Dezember 29, 2015, 10:00:45

⏪ vorheriges - nächstes ⏩

julle

Hallo zusammen,

ich bin Access Einsteiger und hoffe auf euren Rat!

Es sollen 25 Formulare rein zum direkten Ausdruck angelegt werden. (spätere Nutzung der Daten nicht ausgeschlossen aber soll kurzfristig nicht kümmern).
Zur leichteren Handhabung soll ein kleineres Formular zu Beginn eines der Formulare auswählen und zusätzlich einen Benutzernamen hinzufügen.

Die Formulare einzeln mit ner provisorischen Datenbank dahinter bekomm ich hin aber nicht den Clou mit der Vorauswahl des richtigen Formulares...

Ich hoffe Ihr könnt mir kurz Helfen, ich habe viel im Internet und hier rumgesucht, vielleicht hab ich auch nur nach den falschen Schlagwörter gesucht.

Vielen Dank!

MzKlMu

#1
Hallo,
eines vorweg, Formulare sind zum Ausdrucken ungeeignet. Ausdrucke erfolgen über Berichte.

25 Formulare sind schon heftig. Wieso hast Du 25 Formulare ?
Wie unterscheiden sich die Formulare ?
Wie kommen denn die Daten in die Formulare ?
Welche Tabelllen gibt es denn ?
Eine Datenbank besteht im Regelfall aus mehreren Tabellen. Und eine Tabelle ist noch lange keine Datenbank.
Gruß Klaus

julle

#2
Es geht um Retourenaufnahme, eine Mitarbeiterin soll möglichst im Vollbildmodus im ersten Eingabefenster ihren Namen und den Kunden angeben und bekommt im zweiten Schritt das passende Formular (das eben genau so aussehen muss und immer leicht variiert) ausgespuckt. Sie tippt die Daten (Artikel, Datum, Zustand, aber auch Kundenspezifische Infos) ein und das Dokument wird gedruckt.

Ich weiß es ist keine klassische Access Anwendung, gerade weil die Daten dahinter weniger relevant sind. Aber ist sowas dann überhaupt möglich?
Danke schonmal!

MzKlMu

Hallo,
wie unterscheiden sich die Formulare, wieso müssen das 25 Formulare sein ?
Welches Dokument wird gedruckt, das Formular ?
Dass Formulare zum Drucken nicht geeignet sind hast Du gelesen ?

Im Grunde hast Du keine meiner Fragen hinreichend beantwortet.

Wahrscheinlich geht das alles viel einfacher, in dem man ein Formular auf die gewünschten Daten filtert.

Zitat(das eben genau so aussehen muss und immer leicht variiert)
Das ist auch irreführend, entweder es sieht genau so aus, oder es variiert.
Worin besteht die Variation ?
Gruß Klaus

julle

#4
Hi,
entschuldige meine unklare Antwort, aber danke für die Mühe bisher. Ich versuche mich genauer auszudrücken

Die Formulare unterscheiden sich in Format (Kopfzeile, Aufbau) und Eingabefeldern. Insgesamt werden ca. 15 bis 20 Felder abgefragt, von denen aber nur 6 immer identisch sind. Die eingegebenen Daten müssen nicht gespeichert werden.

Das auszufüllende Formular soll genauso gedruckt werden wie es bei der Eingabe sichtbar ist. Deswegen dachte ich, dass man evtl den Weg über die Berichte weglassen könnte, da ich faktisch ja einen Zettel im richtigen Format gedruckt habe nachdem ich den Druck-Button eingebaut und ausprobiert habe.

Vielleicht hilft die Erklärung der Ist-Situation.
Eine Dame steht vor einem Paket in der Retourenabteilung, sie holt sich den passenden Zettel und füllt ihn per Hand mit einem Kugelschreiber aus.
Da das sehr oft am Tag vorkommt und auch leicht Fehler passieren soll eine Eingabemaske die Arbeit erleichtern. Sie wählt ihren Namen und das Formular; es erscheint (ihr Name und das aktuelle Datum werden übernommen) und sie füllt die restlichen Felder aus. Sie drückt auf "Drucken", unterschreibt und ist fertig.

Habe mir überlegt dass man Adress- und Artikeldaten einpflegen könnte, aber das übersteigt meine momentanten Kompetenzen sehr, daher suche erstmal ich eine sehr einfache Lösung.

zu den Tabellen: Ich habe zwei Tabellen angelegt, eine für die Adressdaten und eine für die Artikel mit den einzelnen Eigenschaften. Da diese Daten aber garnicht mehr benutzt werden dachte ich, dass man hier weniger eine Datenbank aufbaut als nur die möglichkeiten von Access als Eingabe- und Druck-Tool nutzt.

beste Grüße

MzKlMu

Hallo,
Zitat(das eben genau so aussehen muss und immer leicht variiert)
hast Du da wirklich dann 25 unterschiedliche Formate ?
Wenn die Daten in 2 Tabellen stehen, sollten sich doch die Formulare vereinheitlichen lassen.

Formulare die nicht in Tabellen speichern, halte ich für unbrauchbar.
Willst Du immer alles noch mal eingeben, wenn z.B. ein Eingabefehler gemacht wurde ?
Gruß Klaus

DF6GL

Hallo,

ZitatEs sollen 25 Formulare rein zum direkten Ausdruck angelegt werden. (spätere Nutzung der Daten nicht ausgeschlossen aber soll kurzfristig nicht kümmern).
Zur leichteren Handhabung soll ein kleineres Formular zu Beginn eines der Formulare auswählen und zusätzlich einen Benutzernamen hinzufügen.

Erstelle die 25 Formulare mit einem verwendbaren Sonderzeichen am Anfang des Namens (z. B. "~Druckformular1")
Erstelle das "EingabeMaske"-Formular wie nachstehend beschrieben und ohne das Sonderzeichen im Namen ("frmStart").

Lege diese Tabelle an:  (Tabellen tblKunden, tblArtikel bleiben erst mal außen vor)
tblBenutzer:
BenutzerID  (Autowert, Primärschlüssel)
Benutzer_Vorname (Text)
Benutzer_Nachname (Text)
... evtl weitere Felder zum Benutzer


In frmStart kommen diese Steuerelemente:

Kombifeld "cmbBenutzer":
Steuerelementinhalt:  leer
Datensatzherkunft:  Select BenutzerID, Benutzer_Nachname from tblBenutzer order by Benutzer_Nachname
gebundene Spalte: 1
Spaltenanzahl: 2
Spaltenbreiten: 0cm; 4cm


Kombifeld "cmbFormulare"
Steuerelementinhalt:  leer
Datensatzherkunft:  Select  Name, Left(Name,1) from MSysObjects where Type =-32768 and Left(Name,1) ="~"
gebundene Spalte: 1
Spaltenanzahl: 2
Spaltenbreiten: 0cm; 6cm


mit Ereignisprozedur "Nach Aktualisierung" dieses Kombis:

Private Sub cmbFormulare_AfterUpdate()
DoCmd.OpenForm Me!cmbFormulare, , , , , , Me!cmbBenutzer
End Sub




In jedem "Druckformular" ein Textfeld "txtBenutzer" zur Anzeige des Benutzers und die nachstehende Ereignisprozedur:

Private Sub Form_Load()
If Not IsNull(Me.OpenArgs) Then Me!txtBenutzer = Me.OpenArgs
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

julle

Zitat von: MzKlMu am Dezember 29, 2015, 13:37:48

ZitatFormulare die nicht in Tabellen speichern, halte ich für unbrauchbar.
Willst Du immer alles noch mal eingeben, wenn z.B. ein Eingabefehler gemacht wurde ?

Ich halte das auch nicht für eine saubere Lösung, allerdings sind das genau die Vorgaben. Die Zettel werden nach Vorgaben physisch genauso benötigt. Kann ich auch nichts machen.
Wäre interessant im Nachgang die Daten zu erfassen und zu Nutzen, soll aber im ersten Schritt nicht passieren. Da müsste dann vielleicht auch eine fähigere Person als ich dran. Aber dank dir soweit!

Zitat von: DF6GL am Dezember 29, 2015, 13:45:54
Hallo,

Erstelle die 25 Formulare mit einem verwendbaren Sonderzeichen am Anfang des Namens (z. B. "~Druckformular1")
Erstelle das "EingabeMaske"-Formular wie nachstehend beschrieben und ohne das Sonderzeichen im Namen ("frmStart").

Vielen Dank für deine praktische Hilfe, ich versuch gerade das genauso nachzubasteln und melde mich dann zurück!!! :)

julle

#8
Danke nochmal DF6GL!
Also das sieht soweit ganz gut aus hab jetzt erstmal meine Mühe die ganzen Formulare einzupflegen...
wie kann man das ganze nun öffnen dass man nur die Eingabefenster sieht?

Grüße,
Julian.

julle

Zitat von: DF6GL am Dezember 29, 2015, 13:45:54
Hallo,

ZitatEs sollen 25 Formulare rein zum direkten Ausdruck angelegt werden. (spätere Nutzung der Daten nicht ausgeschlossen aber soll kurzfristig nicht kümmern).
Zur leichteren Handhabung soll ein kleineres Formular zu Beginn eines der Formulare auswählen und zusätzlich einen Benutzernamen hinzufügen.

Erstelle die 25 Formulare mit einem verwendbaren Sonderzeichen am Anfang des Namens (z. B. "~Druckformular1")
Erstelle das "EingabeMaske"-Formular wie nachstehend beschrieben und ohne das Sonderzeichen im Namen ("frmStart").


Kombifeld "cmbFormulare"
Steuerelementinhalt:  leer
Datensatzherkunft:  Select  Name, Left(Name,1) from MSysObjects where Type =-32768 and Left(Name,1) ="~"
gebundene Spalte: 1
Spaltenanzahl: 2
Spaltenbreiten: 0cm; 6cm


mit Ereignisprozedur "Nach Aktualisierung" dieses Kombis:

Private Sub cmbFormulare_AfterUpdate()
DoCmd.OpenForm Me!cmbFormulare, , , , , , Me!cmbBenutzer
End Sub

Ich sehe die Formulare im Kombinationsfeld, wie passiert jetzt der "Sprung" ins richtige Formular?
Danke!!!

Vielen Dank für die fachkundige Hilfe!

DF6GL

Hallo,

der Sprung passiert dann, wenn ein Formular im Kombifeld ausgewählt wird(wurde), d. h. das Ereignis "Nach Aktualisierung" auftritt.

Voraussetzung ist das korrekte Anlegen der Ereignisprozedur... (In Kombi-Eigenschaften/Ereignisse/Nach Aktualisierung auf die rechts liegenden 3 Pünktchen klicken, Code-Generator wählen und im VBA-Editor in den Prozedurrumpf den  restlichen angegebenen Code einbauen.
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

julle

Zitat von: DF6GL am Dezember 29, 2015, 17:24:04
Hallo,

der Sprung passiert dann, wenn ein Formular im Kombifeld ausgewählt wird(wurde), d. h. das Ereignis "Nach Aktualisierung" auftritt.

Voraussetzung ist das korrekte Anlegen der Ereignisprozedur... (In Kombi-Eigenschaften/Ereignisse/Nach Aktualisierung auf die rechts liegenden 3 Pünktchen klicken, Code-Generator wählen und im VBA-Editor in den Prozedurrumpf den  restlichen angegebenen Code einbauen.

Hatte mich an einer Stelle vertippt beim Namen, nun klappt es wunderbar! Vielen vielen Dank nochmal!

Eine andere Sache noch zu der ich im Cyberspace keine zufriedenstellende Antwort gefunden habe...
Es ist ja möglich die Sichtbarkeit eines Bereiches an Bedingungen zu knüpfen. Kann man einen Bereich im Formular unsichtbar machen aber im Druck sichtbar?

viele Grüße

DF6GL

Hallo,

wüsste nicht, wie...


ZitatFormulare sind zum Ausdrucken ungeeignet. Ausdrucke erfolgen über Berichte.
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

julle

Zitat von: DF6GL am Dezember 30, 2015, 11:44:48
Hallo,

wüsste nicht, wie...


ZitatFormulare sind zum Ausdrucken ungeeignet. Ausdrucke erfolgen über Berichte.

Habs hinbekommen, falls es jemand mal brauchen sollte gibt es bei Textfeldern unter Format die Option "Anzeigen" in der man die entsprechende Operation findet!

julle

Zitat von: DF6GL am Dezember 29, 2015, 13:45:54
Hallo,

In jedem "Druckformular" ein Textfeld "txtBenutzer" zur Anzeige des Benutzers und die nachstehende Ereignisprozedur:

Private Sub Form_Load()
If Not IsNull(Me.OpenArgs) Then Me!txtBenutzer = Me.OpenArgs
End Sub


Hey DF6GL ,
ich nochmal mit kurzer Frage: in dem Textfeld wird nur die Indexzahl ausgegeben, nicht der Name. Was muss ich ändern damit die richtige Information ausgegeben wird?

vielen Dank und beste Grüße
Julle