Etikettendruck

Guten Tag,
ich möchte jeweils 1 Etikett aus der aktuellen Ansicht meines Formulars aus meiner Tabelle drucken. Dazu will ich mir einen Schalter in das Formular bauen, und der druckt die eine Adresse auf einen Etikettendrucker.
Jetzt habe ich das Etikett mit dem Assistenten gemacht und auf die db verwiesen. 2 Probleme habe ich.

  1. will er immer alle Adressen aus der db drucken, ich will nur die im Formular aktuelle Adresse haben
  2. habe ich nach jedem Etikett 3 leere. Hat das vielleicht mit der Feldgröße zu tun und wenn ja, wie kann ich die beim Druck auf die benutzten Zeichen begrenzen?
    Danke
    MM

Hallo,

ich möchte jeweils 1 Etikett aus der aktuellen Ansicht meines
Formulars aus meiner Tabelle drucken. Dazu will ich mir einen
Schalter in das Formular bauen, und der druckt die eine
Adresse auf einen Etikettendrucker.
Jetzt habe ich das Etikett mit dem Assistenten gemacht und auf
die db verwiesen.

was heißt das?

2 Probleme habe ich.

  1. will er immer alle Adressen aus der db drucken, ich will
    nur die im Formular aktuelle Adresse haben

Öffne den Bericht per "Klick-Ereignis des Buttons und gibt der Openreport-Methode die ID des akt. DS im Where-Condition-Parameter mit (siehe dazu in der VBA-Hilfe zu Openreport)

  1. habe ich nach jedem Etikett 3 leere. Hat das vielleicht mit
    der Feldgröße zu tun und wenn ja, wie kann ich die beim Druck
    auf die benutzten Zeichen begrenzen?

vermutlich ist die Berichtsbreite zu groß. Die darf nicht größer als die druckbare Breite des Drucker abzüglich der eingestellten Ränder sein.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz,
Danke erst einmal. Ich bin da sachlich inzwischen was weitergekommen. Vorabgestellt, ich habe kaum Ahnung von access und beisse mich irgendwie durch.
Ich habe jetzt den Bericht soweit, habe auch mit den Rändern gearbeitet, das half aber nicht. Da ich ja immer nur ein Etikett der aktuell im Formular befindlichen Adresse haben will, und das esrte Etikett passt, könnte ich ja auch einfach nur die Seite eins des Berichtes = 1. Etikett drucken.
Nun habe ich in dem Formular einen Schalter eingefügt, über ein Makro steuere ich den Bericht an, Ansicht Ausdruck, jetzt muss ich den Bericht nur auf die erste Seite des im Formualar angezeigten Datensatzes beschränken und weiss an dieser Stelle nicht weiter.
Hast Du noch einmal einen Tipp
Danke
Michael

Hallo,

Danke erst einmal. Ich bin da sachlich inzwischen was
weitergekommen. Vorabgestellt, ich habe kaum Ahnung von access
und beisse mich irgendwie durch.
Ich habe jetzt den Bericht soweit, habe auch mit den Rändern
gearbeitet, das half aber nicht.

Was ist mit der Höhe? Die darf auch nicht höher sein als die Etikettenhöhe.

Da ich ja immer nur ein
Etikett der aktuell im Formular befindlichen Adresse haben
will, und das esrte Etikett passt, könnte ich ja auch einfach
nur die Seite eins des Berichtes = 1. Etikett drucken.

das ist das Pferd von hinten aufgezäumt.

Nun habe ich in dem Formular einen Schalter eingefügt, über
ein Makro steuere ich den Bericht an, Ansicht Ausdruck, jetzt
muss ich den Bericht nur auf die erste Seite des im Formualar
angezeigten Datensatzes beschränken und weiss an dieser Stelle
nicht weiter.

Am Besten läßt Du (diesen Murks, sorry) auch bleiben.

Reduziere lieber testweise die Breite und Höhe des Berichtes deutlich unter die Etikettenmaße und teste den Ausdruck. Wenn die Berichtsabfrage, so es eine gibt, auch wirklich nur einen DS pro Adresse liefert und die Kriterium beim Öffnen des Berichtes richtig angegeben wird, dann geht das auch.
Benutz auch mal einen DINA4 Drucker , um zu sehen, wie der Bericht überhaupt eingestellt ist.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Frank,
bin jetzt im Home Office, habe alles gelesen und fange nochmal morgen ganz von vorne an. Wie gesagt, keine Access Ahnung. Muß aber mit der Lösung leben.
Ich habe eine einfache Tabelle und darüber ein Formular, wo ich mit den StandardButtons vor und rückblättere.
Dort will ich mir den Schalter reinsetzen, dir mir aus dem aktuell angezeigten Satz meiner Tabelle ein Adressetikett (Firma1, Firma2, Adresse1,PLZ,Ort) sofort auf meinen angeschlossenen Etikettendrucker (Etikettengröße 54*101 kommt vom Drucker, kann ich auch entsprechend auswählen) druckt. Kein wildes Formatieren, kein Schnick Schnack
Wie kann ich da am besten von Anfang an vorgehen. Welche Elemente muss ich hier wie kombinieren?
Danke vorab
Bis Morgen
MM

Hallo,

bin jetzt im Home Office, habe alles gelesen und fange nochmal
morgen ganz von vorne an. Wie gesagt, keine Access Ahnung. Muß
aber mit der Lösung leben.
Ich habe eine einfache Tabelle und darüber ein Formular, wo
ich mit den StandardButtons vor und rückblättere.
Dort will ich mir den Schalter reinsetzen, dir mir aus dem
aktuell angezeigten Satz meiner Tabelle ein Adressetikett
(Firma1, Firma2, Adresse1,PLZ,Ort) sofort auf meinen
angeschlossenen Etikettendrucker (Etikettengröße 54*101 kommt
vom Drucker, kann ich auch entsprechend auswählen) druckt.
Kein wildes Formatieren, kein Schnick Schnack
Wie kann ich da am besten von Anfang an vorgehen. Welche
Elemente muss ich hier wie kombinieren?

alles wie gesagt: erstelle einen Bericht mit Datenherkunft auf die Tabelle, stelle die Größe der (insgesamte aller) Bereiche auf kleiner als die Etikettengröße ein. Die Textfelder für die Daten kommen in den Detailbereich.

Teste den Bericht durch Aufruf aus dem Datenbankfenster/Berichte. Der muß dann eine Etikette pro Adresse (pro Datensatz) drucken, aber eben alle Adressen (Datensätze. Wenn das nicht richtig geht, stimmt etwas am Bericht nicht.

In Deinem Form erstellst einen Button, mit dem der Bericht geöffnet wird und die akt. Adresse druckt:

Sub btnDrucken_Click()
Docmd.Openreport „rptEtikette“ ,acpreview,"ID = " Me!ID
End Sub

dabei ist „ID“ das Primärschlüsselfeld in der Tabelle und (Me!)ID das Textfeld im Form, das eben diesen Primärschlüsselwert anzeigt.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Guten Morgen,
analg der vorgegebenen Vorgehensweise habe ich einen Bericht mit Datenherkunft auf die Tabelle gemacht, alle Größen kleiner als Etikett. Jetzt habe ich auch das Ausrufezeichen registriert, was mich warnte, daß der Bericht grßer als das Etikett ist.
Tatsächlich ist es mir jetzt gelungen, daß nur noch ein leeres Etikett folgt. Das Ausrufezeichen ist auch weg,aber ich bekomme das leere nicht weg. Selbst wenn ich die Etikettenbreite auf erheblich breiter setze, es bleibt. Dann habe ich im Design hinter die Textfelder aus der db ein statisches Feld angelegt, das wird auch auf dem eigentlichen Etikett angelegt. Das eine leere bleibt.
Ratlos…Hats Du noch eine Idee?
Grüße
Michael

Guten Morgen,
analg der vorgegebenen Vorgehensweise habe ich einen Bericht
mit Datenherkunft auf die Tabelle gemacht, alle Größen kleiner
als Etikett. Jetzt habe ich auch das Ausrufezeichen
registriert, was mich warnte, daß der Bericht grßer als das
Etikett ist.
Tatsächlich ist es mir jetzt gelungen, daß nur noch ein leeres
Etikett folgt. Das Ausrufezeichen ist auch weg,aber ich
bekomme das leere nicht weg. Selbst wenn ich die
Etikettenbreite auf erheblich breiter setze, es bleibt. Dann
habe ich im Design hinter die Textfelder aus der db ein
statisches Feld angelegt, das wird auch auf dem eigentlichen
Etikett angelegt. Das eine leere bleibt.
Ratlos…Hats Du noch eine Idee?

Wenn die Berichtshöhe auch genügend klein ist (bei zu größer Höhe erfolgt keine Warnung!), dann:

Vermutlich hast Du dann noch einen Seitenumbruch eingefügt, sei es durch das Seitenumbruch-Steuerelement oder durch Einstellung der Eigenschaft „Neue Seite“ der beteiligten Berichtsbereiche.

Oder es liegt eine falsche Einstellung am Druckertreiber noch vor.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo,

um in einem Bericht, der tabelarisch definiert ist, genau die Anzal der gewuenschten Etiketten yu drucken ist ein wenig tricky. Man muss mittels einer globalen Variablen mit der man die ausgegebenen Saetze zaehlt und den Befehlen:
Me.PrintSection = True/False
Me.MoveLayout = True/False
me.NextRecord = True/False
die Ausgabe im entsprechenden OnFormat-Ereignis steuern.

Tschau
Peter

HAllo,

wenn

„druckt die eine Adresse auf einen Etikettendrucker

stimmt, ist das nicht nötig. Der Etikettendrucker sollte (und im Normalfall passiert das auch), nach jedem Etikett eine neue „Seite“ erzeugen, wenn der Bericht die Etikettemgröße nicht überschreitet. „Neue Seite“ bedeutet bei einem Etikettendrucker ein neues Etikett, sofern die Etikettengröße im/beim Drucker auch richtig definiert ist.

Wenn natürlich der „Etikettendrucker“ ein ganz normaler (DinA4-) Drucker ist und sich mehrere Etiketten auf DinA4-Trägermaterial befinden, ist eine Positionierung des Ausdrucks einer jeden Etikette (d. h. jeden Datensatzes) vonnöten.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Guten Morgen,
nach langem Probieren habe ich es hinbekommen, es bleibt bei einem Etikett je Datensatz und es war die Labelgröße.
Nun versuche ich es zu drucken, haben Deinen Code genommen und versucht anzupassen. Dieser sieht nun wie folgt aus
Private Sub Befehl623_Click()
DoCmd.OpenReport „Etiketten“, acPreview, , "ID = " & Me!ID
End Sub
Führe ich den aus, bekomme ich eine Abfrage nach der ID (Titel Parameterwert eingeben). Ich will ja den aktuell aktiven Satz, Wie bringe ich ihm, das noch bei?
Danke
MM

Hallo,

Wie bringe ich ihm, das noch bei?

indem Du „ID“ durch den Namen des bei Dir gültigen Primärschlüsselfeldes ersetzt…