Neuigkeiten:

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

Mobiles Hauptmenü

Etikkettendruck

Begonnen von teddy1848, September 17, 2012, 12:29:21

⏪ vorheriges - nächstes ⏩

teddy1848

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.

bahasu

#1
Hi,

siehe Anhang.

Harald

[Anhang gelöscht durch Administrator]
Servus

teddy1848

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???

bahasu

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
Servus

teddy1848

nein, ist schon richtig. Werde es gleich nochmal ausprobieren.

teddy1848

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

bahasu

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
Servus

teddy1848

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.

teddy1848

hat sich erledigt, hab die Lösung. danke noch mal.

teddy1848

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?

bahasu

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]
Servus

teddy1848

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

bahasu

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]
Servus

teddy1848

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)

bahasu

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

Servus