PDA

Vollständige Version anzeigen : Etiketten an bestimmter Stelle drucken


Kekskrümel
13.06.2012, 13:50
Hallo zusammen,

ich komm schon wieder nicht weiter: Ich möchte mein Etikett (Bericht) jetzt auch an einer bestimmten Stelle ausdrucken. Dazu habe ich folgende Beispiel-DB aus dem Internet runtergeladen und will nun davon das Formular "sfrm8163, 2 x 5, Person" in meine DB übertragen. Ich habe dieses Formular gewählt, weil mein Etikettenbogen auch so aufgeteilt ist mit 2 x 5 Etiketten.

Ich habe im Codemodul schon geschaut und überlegt, aber einen passenden Code zum Auswählen des richtigen Etiketts leider nicht gefunden. Kann mir hierbei jemand helfen? Was muss ich denn alles in meine DB importieren? Geht das da nur um die Aufteilung oder müssen da schon die Maße des Etikettenbogens hinterlegt werden oder wird das durch mein Textfeld gesteuert?

Danke schon mal, steh echt auf der Leitung.

Anne Berg
13.06.2012, 23:06
Hi,

schreib doch bitte auch gleich dazu, dass dein Upload der Datei "Etikettendruck2000.zip" eine accdb enthält, damit man sich nicht umsonst die Mühe mit dem Download macht, wenn man kein Access 2010 zur Verfügung hat.

Marsu65
14.06.2012, 00:57
Dazu habe ich folgende Beispiel-DB aus dem Internet runtergeladen
Welches Beispiel, woher?

Bei dem Dateinamen dachte ich zuerst, dass es das Beispiel vom DBWIKI ist.
Dort gibt es aber das von dir angesprochene sfrm nicht.

BTW: Wäre auch schön gewesen, wenn du in diesem Thema weitergemacht hättest:
http://ms-office-forum.net/forum/showthread.php?t=289594&highlight=einzelnes+etikett

Es wird sich also um das dort genannte Bsp. von TommyK handeln.

Es reicht nicht, nur ein sfrm zu übernehmen. Den Rest brauchst du wohl auch.
Somit lautet die Antwort auf deine Frage
Was muss ich denn alles in meine DB importieren?
Am besten: alles!

Du brauchst nur die Beispieltabellen an geeigneter Stelle durch deine eigenen Adresstabellen zu ersetzen, sofern der Aufbau identisch ist.
Ansonsten sind mehr Anpassungen notwendig, die voraussetzen, dass du den Aufbau und Code im Bsp. verstehst.

Ich habe im Codemodul schon geschaut und überlegt, aber einen passenden Code zum Auswählen des richtigen Etiketts leider nicht gefunden.
???
Die Auswahl des Etiketts kannst du doch in dem Auswahlformular vornehmen.
Daher erkenne ich dein Problem nicht wirklich.

Kekskrümel
14.06.2012, 10:16
Hallo zusammen,

vielen Dank erstmal für eure Tips.

Anne: ich werde es für das nächste Mal beherzigen.

Marsu: Das ist richtig, es handelt sich um die Datenbank von TommyK im anderen Thema.

Ich hätte aus der Datenbank nur das besagte Formular übernommen, weil ich es eigentlich nur bräuchte, um die Position zu bestimmen und nicht so ein "aufwändiges Druckmenü" haben wollte. Deshalb wollt ich nicht alles übernehmen.

Die Auswahl des Etiketts kannst du doch in dem Auswahlformular vornehmen.

Das weiß ich. Aber ich dachte, ich muss das dann noch irgendwie per Code einbauen, dass beim Ausdruck wirklich die Stelle genommen wird, die ich hier anwähle.

Anne Berg
14.06.2012, 10:53
Hallo,

du brauchst die Ereignisprozedur die hinter dem Druck-Button liegt und die dort aufgerufenen Prozeduren.
Das sollte sich doch relativ leicht feststellen lassen...

Kekskrümel
16.06.2012, 12:28
Hallo zusammen,

nachdem ich fast zwei Tage vergeblich versucht hab nachzuvollziehen, was da passiert und welche Codeschnipsel ich für mich brauch und es nicht hingekriegt hab, habe ich mir einen anderen Weg überlegt, bei dem ich jetzt leider auch hänge:

ich habe jetzt im Bericht 10 ungebundene Textfelder erstellt, in der Größe, wie später meine Etiketten sind und ich habe das Auswahlformular aus der Beispiel-DB übernommen. Jetzt würde ich das ganze gern über vba so lösen:
Füll das Feld aus, welches im Auswahlmenü ausgewählt wurde ... Da such ich mich grad durch`s Internet, vielleicht hat ja jemand noch einen Tip für mich!
LG

hcscherzer
16.06.2012, 12:36
Warum gibst Du so schnell auf statt 'am Ball' zu bleiben und zu versuchen, das einmal gewählte Beispiel zu verstehen? Ich wage zu behaupten, dass es Dir mit dem Nächten Versuch so ähnlich ergehen mag. Schon aus dem Grund lehne ich persönlich es ab, Dir hier irgend einen Code zu präsentieren, den Du möglicherweise (auch wieder) nicht verstehst.

Mein Tipp: etwas mehr Ausdauer, Geduld und ein wenig Fleiß.

Kekskrümel
16.06.2012, 12:45
Naja ist Ansichtssache. Ich dachte halt, ich hätt zuviel Zeit verbraucht. Zwei Tage nur vor Code`s sitzen und rumprobieren ... Da hab ich halt überlegt, ob das andere für mich leichter geht

hcscherzer
16.06.2012, 14:34
Wie der Lateiner sagt: per aspera ad astra ;)

Kekskrümel
29.06.2012, 13:33
Hallo zusammen,

nachdem ich mich jetzt noch mal sehr intensiv mit dem Thema auseinander gesetzt habe, und - ich geb`s zu - auch andere Lösungswege aus dem Internet probiert habe, stelle ich folgendes fest:

Ich bekomme keine Fehlermeldung, aber wenn der Bericht sich öffnet, ist das Etikett immer auf Position 1 plaziert. Auch die Anzahl der Etiketten wird ignoriert.

Mein Bericht enthält ein ungebundenes Textfeld, das mit den benötigten Daten gefüllt wird. Kann es sein, dass ich eine Eigenschaft dieses Textfeldes umstellen muss, damit es "beweglich" wird. Hab auch da schon geschaut, aber leider nichts gefunden.

Danke noch mal für alles!

Anne Berg
29.06.2012, 15:09
Hallo,

ich vermute, du hast den Bericht falsch angelegt. Das ließe sich wohl am einfachsten klären, wenn du mal eine Test-DB hochlädst, an der man dir die notwendigen Einstellungen und Schritte zeigen kann.

Wenn zig Tutorials und Beispiellösungen dich nicht zum Ziel führen, machst du wohl einen grundsätzlichen Fehler.Kann es sein, dass ich eine Eigenschaft dieses Textfeldes umstellen muss, damit es "beweglich" wird. Nein, du musst beim Drucken einfach nur so viele Etiketten überspringen wie du vorgegeben hast. Die Steuerung erfolgt ausschließlich über Berichtsereignisse.

BTW: Um welches Etikettenformat handelt es sich?

Kekskrümel
29.06.2012, 16:22
Hallo Anne,

vielen Dank, dass du mir nochmal hilfst!

Ich hab erstmal noch ein Problem: ich hab jetzt eine TestDB vorbereitet, die ca 800 KB hat. (gezippt und komprimiert)
Diese darf ich nicht hochladen.
Ich habe aber in diesem Thread schon eine mit fast 1,5 MB hochgeladen.

Woran kann das liegen?

Anne Berg
29.06.2012, 16:49
Hallo,

da musst du dich wohl irren, im ersten Post hat die gezippte Datei keine 100 KB und eine andere kann ich nicht entdecken. Die Regeln sind hier unverbiegbar, die Grenzen der Dateigrößen können nicht überschritten werden. Es ist aber auch kaum vorstellbar, dass ein Test-Beispiel von derartigem Umfang nötig sein sollte. Bist du sicher, die Datei via Access komprimiert zu haben, vor dem Zippen? Hast du Bilder in der DB, dann wirf sie raus, sowie alles was nichts mit dem aktuellen Problem zu tun hat, denn genau das ist der Sinn einer Test-DB. ;)

PS:
Und lade nicht wieder eine fremde DB hoch, sondern deine eigene Version, aber gern mit Hinweis auf die Herkunft der Lösung, so dass wir leichter nachvollziehen können, wo bei deinem Versuch die Musterlösung umzusetzen der Fehler liegt.

Und nach Möglichkeit keine ACCDB.

Kekskrümel
01.07.2012, 11:22
Hallo Anne,

Jetzt hab ich es geschafft.

Anbei hänge ich meine Datei an. Ich hab mich an der Datei von TommyK aus dem Thread http://ms-office-forum.net/forum/sho...zelnes+etikett orientiert.

Deine damaligen Vorschläge wegen den Namen hab ich zur Kenntnis genommen, bin noch am überlegen, wie ich das umsetze, weil wir bereits mit Teilen der Datenbank arbeiten ... Also bitte einfach ignorieren!

Ich werde dann Avery Zweckform Etiketten benutzen No. Avery J4722

Vielen Dank und liebe Grüße

sivi
01.07.2012, 11:53
Hallo Keckskrümel,

wenn ich es richtig verstanden habe, willst Du die verbrauchten Etiketten einfach überspringen!?

Ich mach das folgend:
Ich öffne ein Fenster und frage nach Anzahl verbrauchter Etiketten.
Wenn die Anzahl > 0 ist, mache ich per "docmd.runsql Insert into......."
einfach leere Datensätze in die Etikettentabelle. (for i = 1 to anzahl verbrauchter etiketten)
Danach mache ich ein Insert mit den entsprechenden Daten, welche auf den
Etiketten stehen sollen und so ist das Problem gelöst!
Die leeren Datensätze werden leer gedruckt, danach die gefüllten Datensätze.
Eigentlich ganz einfach.

LG, SIVI

Kekskrümel
01.07.2012, 12:12
Hallo Sivi,

vielen Dank für deine Hilfe. Mein Problem hast du erkannt. Genau das brauche ich.

Leider suche ich schon ewig, überall ist zu lesen, dass es ganz einfach ist. Ich hab nur Grundkenntnisse, soll diese Datei aber trotzdem für die Firma aufbauen.
Aber ich werd mich noch mal in deinen Vorschlag eindenken, vielleicht klappt`s ja. Hört sich jedenfalls nicht so schwer an ...

Anne Berg
01.07.2012, 14:49
Hallo Kekskrümel,

nun hast du uns aber eine DB gezeigt, in der nicht der geringste Versuch, das Problem zu lösen, zu entdecken ist. Noch nicht einmal die Nr. des Etiketts ist im Formular vorgesehen. Auch ist der Bericht nicht geeignet für den Etikettendruck, der Seitenfuß muss weg.
Hattest du nicht ursprünglich von Endlosetiketten gesprochen? Welches Etikettenformat setzt du denn ein?

...und was hast du mit dem Klassenmodul "Klasse1" vor? :confused:

PS:
Mit dem Link auf ein von dir gefundenes Suchergebnis können wir nichts anfangen, du musst den konkreten Link auf den Thread oder Beitrag posten.

Thomas Möller
01.07.2012, 15:12
Hallo!

wenn ich es richtig verstanden habe, willst Du die verbrauchten Etiketten einfach überspringen!?
vielen Dank für deine Hilfe. Mein Problem hast du erkannt. Genau das brauche ich.

Besorg Dir mal bitte die KnwoHow.mdb (http://www.freeaccess.de/knowhow.asp).
Darin findest Du ein entsprechendes Beispiel.

CU

Anne Berg
01.07.2012, 19:26
Hallo,

ich hab das Beispiel aus der KnowHow-DB mal für dich umgesetzt, ich finde das genügt für den Anfang, die andere Lösung ist eher etwas für gehobene Ansprüche. ;)

Als Beispiel habe ich das Etikettenformat Zweckform 3425 gewählt, das kommt deinem Etikettenmaß am nächsten.

Die im Formular und Bericht auftretenden Fehler resultieren aus fehlenden Datenfeldern, das habe ich mal so gelassen.
(Eigentlich sollte es selbstverständlich sein, eine im Prinzip fehlerfreie und getestete Beispiel-DB hochzuladen.)

Kekskrümel
02.07.2012, 08:41
Hallo zusammen,

als erstes mal vielen lieben Dank für eure Hilfe!

Hab jetzt Anne`s Lösung bei mir umgesetzt und es klappt schon sehr gut, bin bis auf eine Kleinigkeit ganz zufrieden:

Wenn ich jetzt den Bericht öffne, klappt alles schon, Position, Anzahl Etiketten usw.
Aber was nicht mehr funktioniert: Ich hatte voher das so eingestellt, dass Zeilenumbrüche und gewisse Sachen auch fett formatiert werden. Das klappt jetzt nicht mehr, es kommt alles in normaler Schrift, keine Zeilenumbrüche mehr, dafür zeigt es die Zeichen vom Code mit an. Bsp.:

<"b">Name:</"b"> Test<"BR"><"b">Kunden-Nr.:</"b"> 699<"BR"><"b">

Hat jemand da noch eine Idee, wie ich das anpassen muss.

Noch mal 1000 Dank!

LG
Kekskrümel

PS.: Die Anführungszeichen in meinem Beispiel existieren nicht, ich hab sie nur eingefügt, weil sonst die Zeile hier dementsprechend formatiert wird und ich das nicht demonstrieren könnte.

Anne Berg
02.07.2012, 08:51
Hallo Kekskrümel,

ich hatte den Bericht ja neu erstellt und die Unterstützung des HTML-Formats gibt es in A2003 noch nicht.
Da musst du wohl das Textfeld in A2010 noch einmal neu anlegen bzw. seine Eigenschaften anpassen.

Kekskrümel
02.07.2012, 09:06
Ok vielen Dank!

Kekskrümel
02.07.2012, 09:44
Wunderbar, jetzt funktioniert alles!

Vielen Dank!

:)

Kekskrümel
06.07.2012, 14:02
Hallo nochmal,

ich verzweifel grad wieder und wäre dankbar für jeden Tip: nachdem ich der festen Überzeugung war, das jetzt alles passt, wollte ich heute die ersten Etiketten drucken und stell leider fest, dass ich zwar die Anzahl der Leeretiketten eingeben kann und diese werden in der Vorschau auch übersprungen, aber trotzdem beginnt der Ausdruck immer auf Position 1. Woran kann das liegen?

Danke für nochmalige Hilfe

Anne Berg
13.07.2012, 12:57
Hallo,

ich habe das nochmal ausgetestet und das beigefügte neue Beispiel erstellt.

Damit kannst du die Startposition festlegen und pro Aufkleber die Anzahl bestimmen.

Kekskrümel
14.07.2012, 13:19
Hallo Anne,

vielen Dank dafür. Ich werde es ausprobieren.

LG

Kekskrümel
26.07.2012, 17:21
Hallo Anne,

hatte in letzter Zeit viel Arbeit, bin leider erst jetzt dazu gekommen, deinen Vorschlag umzusetzen.

Was bedeutet denn in deinem Code diese Zeile genau:

Private Sub Berichtskopf_Format(Cancel As Integer, FormatCount As Integer)
iPos = 0
xPos = 0
End Sub

Da bekomm ich leider die Fehlermeldung, dass die Variable nicht deklariert wär. Habe den Code von deinem Beispiel kopiert und kann bei dir auch nichts rausfinden, was es bedeutet.

Wäre schön, wenn du mir noch mal helfen könntest

Anne Berg
26.07.2012, 18:20
Hallo,

die Deklaration der Variablen befindet sich direkt oberhalb der Prozedur.
Du solltest schon alles übernehmen, wenn du das Beispiel einsetzen willst.

Am besten also das komplette Modul kopieren, inklusive Kommentare, und nicht nur einzelne Prozeduren.

Zu ihrer Bedeutung:
Mit Hilfe von ipos wird die Anzahl der Leer-Etiketten umgesetzt und xpos wird für den Mehrfachausgabe einzelner Etiketten gebraucht. Dazu werden die Zähler zu Beginn, im Ereignis "Berichtskopf_Format", auf 0 gesetzt.

Kekskrümel
27.07.2012, 08:29
1000 Dank Anne, es funktioniert prima jetzt.