Ich möchte von einem Datensatz Etiketten drucken, und zwar wenn in meinem Feld Anzahl = 2 steht, dann zwei Etiketten mit der ID-Nummer und einer jeweiligen Bezeichnung a und b. Wenn Anzahl = 6, dann 6 Etiketten mit je a,b,c,d,e,f.
Hat jemand eine Ahnung, wie ich das realisieren kann?
Danke im Voraus.
Hi,
siehe Anhang.
Harald
[Anhang gelöscht durch Administrator]
erstmal danke für die schnelle Antwort, aber ich glaube du hast mich falsch verstanden:
Das Problem mit dem Mehrfach-Druck ein und des selben Datensatz hab ich wie folgt gelöst:
Private Sub Detailbereich_Print(Cancel As Integer, PrintCount As Integer)
Static Anzahl As Integer
If Anzahl < Me![Anzahl Schnitte] = 0 Then
Me.NextRecord = True
Me.MoveLayout = False
Me.PrintSection = False
Else
If PrintCount < [Anzahl Schnitte] Then
Me.NextRecord = False
End If
End If
End Sub
wie bekomme ich jetzt aber eine Art Nummerierung mit Buchstaben dazu, als Beispiel bei 3 gedruckten Datensätzen) jeweils a,b und c pro Etikett???
Zitat von: teddy1848 am September 17, 2012, 15:06:59
erstmal dawie bekomme ich jetzt aber eine Art Nummerierung mit Buchstaben dazu, als Beispiel bei 3 gedruckten Datensätzen) jeweils a,b und c pro Etikett???
In meinem Beispiel erscheint beim zweiten Datensatz, bei dem zwei Etiketten vorgegeben sind, ein A (auf dem ersten Etikett) + B (auf dem zweiten Etikett),
beim dritten Datensatz mit der Vorgabe 6 erscheinen A, B, C, D, E, F.
Oder soll ich Deine Zeilen (a,b und c pro Etikett) so interpretieren, dass auf jedem Etikett des dritten Datensatzes "A, B, C, D, E, F" erscheinen soll?
Harald
nein, ist schon richtig. Werde es gleich nochmal ausprobieren.
ich bekomme es nicht hin. :-[ :-[
was mach ich falsch?
Private Sub Detailbereich_Print(Cancel As Integer, PrintCount As Integer)
If Me.[Anzahl Schnitte] = 0 Then
Me.NextRecord = True
Me.MoveLayout = False
Me.PrintSection = False
Me.buchstabe = Chr(Me.PrintCount + 64)
'wenn AnzahlEtiketten ' noch nicht erreicht ist
Else
If Me.PrintCount < Me.[Anzahl Schnitte] Then
Me.NextRecord = False
End If
End If
End Sub
Hi,
was passiert, wenn Du statt Deiner VBA-Zeilen diese hier nimmst:
Private Sub Detailbereich_Print(Cancel As Integer, PrintCount As Integer)
If Me.Anzahl > 0 Then
Me.Bezeichnung = Chr(Me.PrintCount + 64)
'wenn AnzahlEtiketten ' noch nicht erreicht ist
If Me.PrintCount < Me.Anzahl Then
Me.NextRecord = False
End If
End If
End Sub
Me.Anzahl ist wohl Dein Me.[Anzahl Schnitte]?!?
Was bedeutet Anzahl Schnitte?
Harald
funktioniert, super vielen Dank. Nur eine Sache: bei Anzahl bleibt das Feld auch leer, dann soll nur ein Etikett gedruckt werden ohne Buchstaben. Wie kann man das noch intergrieren?
Anzahl Schnitte bedeutet: Anzahl der angefertigten Objektträger (Von Gewebeschnitten) einer Patientenprobe.
hat sich erledigt, hab die Lösung. danke noch mal.
war zu schnell: doch noch das gleiche Problem:
funktioniert, super vielen Dank. Nur eine Sache: bei Anzahl bleibt das Feld auch leer, dann soll nur ein Etikett gedruckt werden ohne Buchstaben. Wie kann man das noch intergrieren?
Hi,
die Routine zum Druck-Button habe ich angepaßt:
Private Sub Etikett_Click()
Dim x As Integer
If Me.Anzahl > 0 Then
For x = 1 To Me.Anzahl
DoCmd.OpenReport "Etiketten", acViewPreview, , "id = " & Me.id
Next x
Else
DoCmd.OpenReport "Etiketten", acViewPreview, , "id = " & Me.id
End If
End Sub
siehe auch Anhang.
Harald
[Anhang gelöscht durch Administrator]
Hi Harald,
erstmal ein dickes Lob und Dankeschön, dass du mir hier bei meinem Problem hilfst und immer probt antwortest, Hut ab!
Mir geht es nicht um den Button, den brauche ich nicht unbedingt. Ich hätte gerne im Etikettenbericht so wie er jetzt funktioniert, dass die Datensätze angezeigt werden als ein Etikett ohne Buchstaben, wo in Anzahl Schnitte nix steht.
Hier nochmal der bisherige Code von dir:
Private Sub Detailbereich_Print(Cancel As Integer, PrintCount As Integer)
If Me.[Anzahl Schnitte] > 0 Then
Me.Bezeichnung = Chr(Me.PrintCount + 64)
'wenn AnzahlEtiketten ' noch nicht erreicht ist
If Me.PrintCount < Me.[Anzahl Schnitte] Then
Me.NextRecord = False
End If
End If
End Sub
LG
Annett
Hi Annett,
kleine Anpassung:
Private Sub Detailbereich_Print(Cancel As Integer, PrintCount As Integer)
If Nz(Me.Anzahl, 0) > 0 Then Me.Bezeichnung = Chr(Me.PrintCount + 64) ' nur bei einer Anzahl größer 0 wird ein Buchstabe zugeordnet
'wenn AnzahlEtiketten ' noch nicht erreicht ist
If Me.PrintCount < Me.Anzahl Then
Me.NextRecord = False
End If
End Sub
Harald
[Anhang gelöscht durch Administrator]
Hi HArald,
es funzt immer noch nicht richtig.
Wenn am Anfang Anzahl Schnitte = 0, zeigt der Bericht auch keinen Buchstaben an, kommen dann Daten, wo 2,3 oder ein anderer Wert steht, werden die Buchstaben ausgegeben (wie gewünscht).
Nur wenn dann wieder Datensätze ohne Eingabe von Anzahl Schnitte kommen, werden da Buchstaben angezeigt und zwar der bei der der vorherige DAtensatz aufgehört hat.
Ich hoffe, das ist verständlich, hier ein Bsp.
ID 1 (0)
2A (2)
2B
3B (0)
Hi,
Private Sub Detailbereich_Print(Cancel As Integer, PrintCount As Integer)
If Nz(Me.Anzahl, 0) > 0 Then
Me.Bezeichnung = Chr(Me.PrintCount + 64)
Else
Me.Bezeichnung = ""
End If
'wenn AnzahlEtiketten ' noch nicht erreicht ist
If Me.PrintCount < Me.Anzahl Then
Me.NextRecord = False
End If
End Sub
Das wars :) :) :) :) :)
DAnke, danke.
LG aus dem Ruhrpott.
Annett
Sorry Harald, ich hab noch ne Frage. Mein Chef hatte noch eine glorreiche Idee, an der ich mich bis jetzt versucht habe. Es soll noch ein zusätzliches Etikett gedruckt werden, wenn in einem zu dem Datensatz zugehörigen Ja/nein-Feld das Häckchen gesetzt ist und auf dem Etikett soll "PAS" stehen (zur Info ist eine spezielle Gewebefärbung). Kann man das auch noch in den String integrieren?
Wäre toll, wenn du mir noch einmal helfen könntest.
LG
Hi Annett,
mit String meinst Du das, was den Buchstaben enthält?
Harald
hab das falsche Wort benutzt, ich meinen den Code den ich zum Etikettendruck benutze
Hi Annett,
anbei ein ungetesteter Code, um mein Verständnis zu überprüfen:
Private Sub Detailbereich_Print(Cancel As Integer, PrintCount As Integer)
If Nz(Me.Anzahl, 0) > 0 Then
Me.Bezeichnung = Chr(Me.PrintCount + 64)
Else
Me.Bezeichnung = ""
End If
if nz(Me.DeinJa_Nein_Feld, false) = true then
Me.Deine_Zusatzbezeichnung = "PAS"
else
Me.Deine_Zusatzbezeichnung = ""
end if
'wenn AnzahlEtiketten ' noch nicht erreicht ist
If Me.PrintCount < Me.Anzahl Then
Me.NextRecord = False
End If
End Sub
Bitte die namen der Me.... Felder Deinen Gegebenheiten entsprechend anpassen.
Ist das gemeint?
Hi,
ich rudere zurück.
Wie lautet Dein Code zum Ausdrucken?
Harald
Nachtrag
Im Anhang hat das Formular zwei neue Buttons bekommen:
Drucken PAS: druckt ein Etikett, wenn ein Haken gesetzt ist
Drucken beides: erstellt beide Etiketten-Ansichten nacheinander.
War das gemeint?
[Anhang gelöscht durch Administrator]
Das passt schon sehr gut, nur soll das Etikett mit "PAS" zusätzlich zu dem schon vorhanden gedruckt werden. Bei dem Code ist nur das Etikett mit "PAS" nicht das ohne .
der code zum Ausdruck lautet mit deinen Änderungen:
If Nz(Me.[Anzahl Schnitte], 0) > 0 Then
Me.Bezeichnung = Chr(Me.PrintCount + 64)
Else
Me.Bezeichnung = ""
End If
If Nz(Me.PAS, False) = True Then
Me.Bezeichnung_PAS = "PAS"
Else
Me.Bezeichnung_PAS = ""
End If
If Me.PrintCount < Me.[Anzahl Schnitte] Then
Me.NextRecord = False
End If
End Sub
Annett
es soll ein Ausdruck inkl. der PAS-Drucke sein. nicht zwei verschieden Ausdrucke, den PAS alleine dsa wär nicht so das Problem für mich. Als Beispiel:
ID (45) mit 3 als Anzahl Schnitte und Hacken bei PAS
45A, 45B, 45C, 45 PAS
ID (66) mit 0 als Anzahl und Haken bei PAS
66, 66 PAS
Hi,
dann doch Antwort 19:
Mach ein zusätzliches Feld im Etikett: ich hatte es "Deine_Zusatzbezeichnung" genannt
und bau die roten Zeilen aus Antwort 19 ein, wobei noch der Name vom Ja_Nein_Feld (ich hatte es "DeinJa_Nein_Feld" genannt) angepaßt werden muss.
Harald
Hab ich so gemacht mit dem zusätzlichen Feld, siehe Code von Antwort 21. Da passiert abe oben beschriebenes Problem
Hi,
wie rufst Du das Drucken vom Etikett auf?
Per Button auf dem Formular? Wenn ja, wie lautet der Code, der beim Button hinterlegt ist?
Oder machst Du eine Abfrage, in der Ja_Nein-Feld ausgewertet wird?
Harald
im Moment per Seitenlayout des Berichts Etiketten. Einen Button brauch ich nicht unbedingt.
Annett
Hi Annett,
ist mir rätselhaft.
Im angehängten Beispiel bekomme ich auch Etiketten, die keinen "PAS"-Haken haben, auch aus der Seitenansicht heraus.
Falls das nicht hilft: Ist es machbar, dass Du Deine Datenbank in komprimierter und gezippter Form als a2003-Version ("schlimmstenfalls" ;) als a2007) mit unsensiblen Beispieldaten zur Verfügung stellst?
Und mit Bitte um Nachsicht, aber Weiterarbeit erst ab morgen. ;D
Harald
[Anhang gelöscht durch Administrator]
Lass mal gut sein Harald, du hast mir schon sehr geholfen. Die Datenbank ist sehr umfangreich und vollgepackt mit Daten, die ich nicht mal ebenso löschen kann. Dann muss halt zweimal gedruckt werden, ist auch nicht mit so einem großen Aufwand verbunden.
Schönen Abend noch.
Annett