vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Drucken  
Autor: MT Arens
Datum: 02.07.03 11:58

Hallo Leute,

ich probiere den Inhalt eines DBGrids auszudrucken, und habe mir dafür den Code von den Tips & Tricks genommen und halt einfach mein DBGrid eingetragen.
Aber es kommt immer nen Fehler. Vielleicht kann mir ja einer sagen woran das liegt!
Also hier der Code:
Private Sub Command1_Click()
  Dim fmt As String
  Dim sRow As String
  Dim xPos As Long
  Dim I As Long
  Dim intProz As Integer
  Dim GridWidth As Long
  Dim ColWidth As Long
  Dim PageWidth As Long
  Dim sHeader As String
 
  Screen.MousePointer = 11
  With Printer
    .ScaleMode = 6    ' Maßeinheit "mm"
    xPos = 20         ' 20mm Rand link
 
    .Font.Name = "Arial"
    .Font.Size = 12
 
    ' Listenbezeichnung
    .CurrentY = 10
    .CurrentX = xPos
    .Font.Bold = True
    Printer.Print DBGrid1.Caption + vbCrLf
    .Font.Bold = False
 
    ' Format (Spaltenbreiten) + Tabellenkopf
    ' anhand Bildschirm-Spaltenbreite ermitteln
    PageWidth = .ScaleWidth - (xPos * 2)
    With DBGrid1
      ' Gesamtbreite
      For I = 0 To .Columns.Count - 1
        If .Columns(I).Visible Then
          GridWidth = GridWidth + .Columns(I).Width
        End If
      Next I
 
      ' Prozentuale Verteilung auf die Spalten
      ' plus Tabellenkopf
      For I = 0 To .Columns.Count - 1
        With .Columns(I)
          ' zunächst Spaltenausrichtung berücksichtigen
          Select Case .Alignment
            Case dbgCenter
              ' zentriert
              fmt = fmt + "^"
            Case dbgRight
              ' rechtsbündig
              fmt = fmt + ">"
          End Select
 
          ' jetzt Spaltenbreite berechnen
          intProz = (.Width / GridWidth * 100 + 0.5)
          ColWidth = (PageWidth / 100 * intProz + 0.5)
          fmt = fmt + Format$(ColWidth, "0")
 
          ' Tabellenkopf
          sHeader = sHeader + .Caption
        End With
 
        fmt = fmt + "|"
        sHeader = sHeader + "|"
      Next I
 
      ' abschliessendes "|" entfernen
      fmt = Left$(fmt, Len(fmt) - 1)
      sHeader = Left$(sHeader, Len(sHeader) - 1)
    End With
 
    ' Tabellenkopf drucken
    .Font.Bold = True
    .Font.Size = 9
    PrintRow xPos, fmt, sHeader    
    .Font.Bold = False
 
    ' Jetzt Recordset "satzweise" ausdrucken
    .Font.Size = 8
    .CurrentY = .CurrentY + 5
    Rs.MoveFirst
    While Not Rs.EOF
      sRow = ""
      With DBGrid1
        For I = 0 To .Columns.Count - 1
          If .Columns(I).Visible Then
            ' NumberFormat berücksichtigen
            If .Columns(I).NumberFormat <> "" Then
              sRow = sRow + Format$(FeldInhalt(Rs.Fields(I)), _
                .Columns(I).NumberFormat) + "|"
            Else
              ' normaler Text / sonstige Datentypen
              sRow = sRow + CStr(FeldInhalt(Rs.Fields(I))) + "|"
            End If
          End If
        Next I
        PrintRow xPos, fmt, sRow
      End With
 
      ' nächster Datensatz
      Rs.MoveNext
    Wend
 
    ' Druckauftrag beenden
    .EndDoc
  End With
  Screen.MousePointer = 0
 
  MsgBox "DBGrid1 wurde ausgedruckt!", 64, "Drucken..."
End Sub
 
' Nullfeld abfragen
Public Function FeldInhalt(Feld As Field) As Variant
  If IsNull(Feld.Value) Then
    Select Case Feld.Type
      Case adInteger, adSmallInt
        FeldInhalt = 0
      Case adBoolean
        FeldInhalt = False
      Case Else
        FeldInhalt = ""
    End Select
  Else
    FeldInhalt = Feld.Value
  End If
End Function
Der Fehler kommt bei der Fett geschriebenen Stelle.

Thanks 4 Help Wer Rechtschreibfehler findet darf Sie behalten!!

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Drucken 721MT Arens02.07.03 11:58
Re: Drucken 393Wolfgang02.07.03 22:13

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel