更改 Access 2016 报告上的 VBA 代码导致没有页面被打印
Changing VBA code on Access 2016 report cause no pages to be printed
首先,如果这是重复的(我找不到),我很抱歉。
我已经搜索了超过一周的时间来寻找答案。
我有一个 Access 2003 数据库,它有一个前端 (fe) 一个后端 (be) 和一个保存数据的第三个数据库。我知道这看起来很奇怪,但它是很久以前德国制造的 Access 数据库。
问题来了。在主数据输入表单中有一个调用另一个表单的打印按钮。第二个表单有两个文本框,其中包含开始和结束订单号字段。起始编号是从主窗体传来的。
第二个表单上有另一个打印按钮,单击该按钮可创建并打印报告。报告就是问题所在。如果我在报告中添加任何 vba 代码,即使只是使标签可见,报告也不会打印任何内容。打印机对话框 window 看起来像是在发送一些东西,但什么也没有打印出来。
我试过发送到 PDF,但没有成功。现在,如果我转到报告代码并注释掉使标签可见的行,则报告可以正常打印。我一直在与 DB 打交道,但我从未见过这样的事情,该死,我什至从未听说过这样的事情。
请注意,此代码中有很多德语。
Option Compare Database
Option Explicit
Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer) 'Detail Area Format
'On Error GoTo Err_Detailbereich_Format
Dim dbDatenbank As Database
Dim dtPPSDaten, dtEinfassung, dtToleranz As Recordset
Dim sql As String
Dim T As Double 'Angepasste Tragstablänge
'Adjusted Bearing Bar rod-length
Dim TA As Double 'Anzahl Tragstäbe
'Number of Bearing Bar rods
Dim TA_Anzahl As String 'Zwischenfeld für Tragstabanzahlberechnung ohne Rundung
'Inter-field for Bearing Bar-number-calculation of curve
Dim FA_Anzahl As String 'Zwischenfeld für Füllstabanzahlberechnung ohne Rundung
'Inter-field for Cross Bar-number-calculation of curve
Dim Komma As Byte 'Zwischenfeld zum Filtern der Dezimalzalen
'Inter-field to filtering the decimal zal en
Dim FA As Double 'Füllstabanzahl
'Cross Bar-number
Dim TEM As Double 'Tragstabendmasche
'Bearing Bar Mesh
Dim FEM As Double 'Füllstabendmasche
'Cross Bar Mesh
Dim ZFEM As Double 'Zusatzwert Füllstabendmasche
'Addition-value Cross Bar Mesh
Dim MEMT As Double 'Mindestendmasche Tragstab (Toleranz)
'Bearing Bar Mesh Tolerance
Dim MEMF As Double 'Mindestendmasche Füllstab (Toleranz)
'Cross Bar Mesh Tolerance
Dim Rand1_2 As Double 'Technologischer Abzug Rand1+2 (Toleranz)
'Technological departure edge
Dim Rand3_4 As Double 'Technologischer Abzug Rand3+4 (Toleranz)
'Technological departure edge
Dim Einfassungsdicke As Single '(aus Tabelle: Einfassung)
'Banding Thickness
Dim Einfassungsmaterial As String * 35 '(aus Tabelle: Einfassung)
'Banding Material
Dim Toleranz_Füllstab As Single '(aus Tabelle: Toleranz)
'Cross Bar Tolerance
Dim Toleranz_Tragstab As Single '(aus Tabelle: Toleranz)
'Bearing Bar Tolerance
Dim ProdAuftrag As Long '(aus Tabelle: PPS_Daten_IN)
Dim PositionsNr As String * 3 'Zwischenfeld zum auffüllen der PositionsNr mit Nullen
'Position Number with zeros
Dim Auffüllen As Long 'Zwischenfeld
Dim Barcode_ProdAuftrag As String * 9 'Zwischenfeld
Dim Artikeltyp As Byte 'Zwischenfeld
Dim Durchlauf As Byte 'Zwischenfeld
Dim Inch As Single
Dim Feet As Single
Feet = 10.764
Inch = 25.4
ZFEM = 0
Komma = 0
Durchlauf = 1
'Einfassungsbereich sichtbar machen, evtl. durch Mattenfertigung ausgeblendet
' Border-area visible does, evtl. through mat-production faded out
[Report_Fertigungszettel]![Jahreszahl].Visible = True
[Report_Fertigungszettel]![AuftragsNr].Visible = True
[Report_Fertigungszettel]![Kunde].Visible = True
[Report_Fertigungszettel]![txtEinfassung_Einfassung].Visible = True
[Report_Fertigungszettel]![Position].Visible = True
[Report_Fertigungszettel]![Rostbezeichnung].Visible = True
[Report_Fertigungszettel]![Bestellmenge].Visible = True
'********************************************************************
'Unterschiedliche Einblendung zwischen SP- und P-Rosten
[Report_Fertigungszettel]![lbl_ef_lob1].Visible = True
[Report_Fertigungszettel]![lbl_ef_lob2].Visible = True
[Report_Fertigungszettel]![lbl_ef_lob3].Visible = True
[Report_Fertigungszettel]![Einfassungslänge].Visible = True
[Report_Fertigungszettel]![EinfassungslängeTS].Visible = True
[Report_Fertigungszettel]![EinfassungslängeFS].Visible = True
[Report_Fertigungszettel]![Einfassungslänge_Inch].Visible = True
[Report_Fertigungszettel]![EinfassungslängeTS_Inch].Visible = True
[Report_Fertigungszettel]![EinfassungslängeFS_Inch].Visible = True
[Report_Fertigungszettel]![MaterialbezeichnungTS].Visible = True
[Report_Fertigungszettel]![MaterialbezeichnungEF2].Visible = True
[Report_Fertigungszettel]![lbl_ef_quantity1].Visible = True
[Report_Fertigungszettel]![lbl_ef_quantity2].Visible = True
[Report_Fertigungszettel]![lbl_ef_quantity3].Visible = True
[Report_Fertigungszettel]![Einfassungsanzahl].Visible = True
[Report_Fertigungszettel]![EinfassungsanzahlTS].Visible = True
[Report_Fertigungszettel]![EinfassungsanzahlFS].Visible = True
'********************************************************************
Set dbDatenbank = DBEngine.Workspaces(0).Databases(0)
'Technologische Werte aus Tabelle Toleranz übernehmen
' Update Tolerance Information
sql = "SELECT * FROM Toleranz WHERE Toleranz = " & Toleranz
Set dtToleranz = dbDatenbank.OpenRecordset(sql)
MEMT = dtToleranz![Tol_Tragstab_Min_Masche] 'Bearing Bar Mesh
MEMF = dtToleranz![Tol_Füllstab_Min_Masche] 'Cross Bar Mesh
Rand1_2 = dtToleranz![Tol_Rand1+2] 'Banding Thickness for sides 1 & 2
Rand3_4 = dtToleranz![Tol_Rand3+4] 'Banding Thinckness for sides 3 & 4
Toleranz_Füllstab = dtToleranz![Tol_Füllstab] 'Cross Bar
Toleranz_Tragstab = dtToleranz![Tol_Tragstab] 'Bearing Bar
dtToleranz.Close
'Einfassungswerte aus Tabelle Einfassung übernehmen
' Update Banding Information
sql = "SELECT * FROM Einfassung WHERE Einfassung = " & Einfassung
Set dtEinfassung = dbDatenbank.OpenRecordset(sql)
Einfassungsdicke = dtEinfassung![Einf_Dicke] '
Einfassungsmaterial = dtEinfassung![Einf_Materialbezeichnung]
txtEinfassung_Einfassung.Value = dtEinfassung![Einf_Bezeichnung]
txtFüllstab_Einfassung = dtEinfassung![Einf_Bezeichnung]
txtTragstab_Einfassung = dtEinfassung![Einf_Bezeichnung]
If Einfassungsdicke = 0 Then
txt_hide_banding.Visible = True
txt_hide_banding = "NO BANDING"
End If
dtEinfassung.Close
'Unterscheidung Artikeltyp/Rosttyp
' Case statement based on the part type, keyed off of the first digit of the machine part number
Artikeltyp = Left(Rosttyp, 1)
Select Case Artikeltyp
Case "1"
lblPW1.Visible = False
lblPW2.Visible = True
lblPW3.Visible = True
'Berechnung P-Rost
' Calc BB MFG Length
Tragstablänge = Tragstab - Einfassungsdicke - Einfassungsdicke - Toleranz_Tragstab
Tragstablänge_Inch = Tragstablänge / Inch
' Calc CB MFG Length
Füllstablänge = Füllstab - Toleranz_Füllstab
Füllstablänge_Inch = Füllstablänge / Inch
' MaterialbezeichnungEF1 = Einfassungsmaterial
MaterialbezeichnungEF2 = Einfassungsmaterial
' Calc CB Banding Length
EinfassungslängeFS = Füllstab - Rand3_4
EinfassungslängeFS_Inch = EinfassungslängeFS / Inch
' Calc BB Banding Length
EinfassungslängeTS = Tragstab - Rand1_2
EinfassungslängeTS_Inch = EinfassungslängeTS / Inch
' Calc Total Banding Qty (Qty * 2)
EinfassungsanzahlTS = Bestellmenge * 2
EinfassungsanzahlFS = Bestellmenge * 2
'******************************************************************
'FIX
' Add Comments for LARGE BB pieces (over 1800mm)
' If (Tragstablänge > 1800) Or (Füllstablänge > 1800) Then
' lblcommentsBand = "OVER 1800mm, ENTER BANDING MANUALLY in 2 PIECES. " & lblcommentsBand
' Else
' lblcommentsBand = Comments
' End If
'*******************************************************************
TA_Anzahl = Füllstab / Tragstabteiler
Komma = InStr(1, TA_Anzahl, ".", vbTextCompare)
If Komma <> 0 Then
TA = CInt(Left(TA_Anzahl, (Komma - 1)))
Else
TA = CInt(TA_Anzahl)
End If
Komma = 0
FA_Anzahl = Tragstab / Füllstabteiler
Komma = InStr(1, FA_Anzahl, ".", vbTextCompare)
If Komma <> 0 Then
FA = CInt(Left(FA_Anzahl, (Komma - 1)))
Else
FA = CInt(FA_Anzahl)
End If
TEM = (Tragstablänge - ((FA - 1) * Füllstabteiler)) / 2
If TEM < MEMT Then
FA = FA - 1
TEM = (Tragstablänge - ((FA - 1) * Füllstabteiler)) / 2
If TEM < MEMT Then
FA = FA - 1
TEM = (Tragstablänge - ((FA - 1) * Füllstabteiler)) / 2
End If
End If
If TEM < ((Füllstabteiler / 2) + (Füllstabteiler * 0.05)) Then
FA = FA - 1
TEM = (Tragstablänge - ((FA - 1) * Füllstabteiler)) / 2
End If
FEM = (Füllstablänge - ((TA - 1) * Tragstabteiler)) / 2
If FEM < MEMF Then
TA = TA - 1
FEM = (Füllstablänge - ((TA - 1) * Tragstabteiler)) / 2
If FEM < MEMF Then
TA = TA - 1
FEM = (Füllstablänge - ((TA - 1) * Tragstabteiler)) / 2
End If
End If
If FEM < ((Tragstabteiler / 2) + (Tragstabteiler * 0.05)) Then
TA = TA - 1
FEM = (Füllstablänge - ((TA - 1) * Tragstabteiler)) / 2
End If
Füllstabendmasche = Format(FEM, "###0.00")
Füllstabendmasche_Inch = Füllstabendmasche / Inch
füllstabendmasche_1 = Format(FEM, "###0.00")
Füllstabendmasche_1_Inch = füllstabendmasche_1 / Inch
'********************************************************************
'Unterschiedliche Einblendung zwischen SP- und P-Rosten
[Report_Fertigungszettel]![lbl_ef_lob1].Visible = False
[Report_Fertigungszettel]![Einfassungslänge].Visible = False
[Report_Fertigungszettel]![MaterialbezeichnungTS].Visible = False
[Report_Fertigungszettel]![lbl_ef_quantity1].Visible = False
[Report_Fertigungszettel]![Einfassungsanzahl].Visible = False
'Ausblendung Stückzahlen bei T-Einfassung - Wunsch von Hr. Johann wegen Verwirrung bei Produktion Ohio
If Toleranz = 1 Then
[Report_Fertigungszettel]![EinfassungsanzahlTS].Visible = False
[Report_Fertigungszettel]![EinfassungsanzahlFS].Visible = False
[Report_Fertigungszettel]![lbl_ef_quantity2].Visible = False
[Report_Fertigungszettel]![lbl_ef_quantity3].Visible = False
End If
'********************************************************************
Case 2
lblPW1.Visible = True
lblPW2.Visible = False
lblPW3.Visible = False
'Entscheidungskriterium für Mattenfertigung
'Adjournment-criterion for mat-production
If Einfassungsdicke = 0 Then
T = Tragstab - Rand3_4
Else
T = Tragstab - (Tragstabdicke * 2) - Rand3_4
End If
'Berechnung SP-Rost
'Calculation SP-Rost
'TA-Anzahl = ((CrossBar - BearingBarThickness) / BearingBarPitch
TA_Anzahl = ((Füllstab - Tragstabdicke) / Tragstabteiler)
Komma = InStr(1, TA_Anzahl, ".", vbTextCompare)
If Komma <> 0 Then
'NumberOfBearingBars = CInt(Left(TA_Anzahl, (Komma - 1))) + 2
TA = CInt(Left(TA_Anzahl, (Komma - 1))) + 2
Else
'NumberOfBearingBars = CInt(TA_Anzahl) + 2
TA = CInt(TA_Anzahl) + 2
End If
'CrossBarNumber = MFG BearingBar Length \ CrossBarPitch
FA = T \ Füllstabteiler
'CrossBarNumber = (CrossBarNumber \ 2) * 2
FA = (FA \ 2) * 2
'BearingBarMesh = (MFGBearingBarLength - (CrossBarNumber-1)*CrossBarPitch)/2
TEM = (T - (FA - 1) * Füllstabteiler) / 2
'If BearingBarMesh >= (CrossBarPitch + BearingBarMeshTolerance) Then
If TEM >= (Füllstabteiler + MEMT) Then
'CrossBarNumber = CrosbarNumber + 2
FA = FA + 2
'BearingBarMesh = (MFBearingBarLength - (CrossBarNumber - 1) * CrossBarPitch) / 2
TEM = (T - (FA - 1) * Füllstabteiler) / 2
End If
'If BearingBarMesh < BearingBarMeshTolerance then
If TEM < MEMT Then
'CrossBarNumber = CrossBarNumber - 2
FA = FA - 2
'BearingBarMesh = (MFGBearingBarLength - (CrossBarNumber - 1) * CrossBarPitch) /2
TEM = (T - (FA - 1) * Füllstabteiler) / 2
End If
Select Case Tragstabteiler 'BearingBarPitch
Case 30.15
'CrossBarMesh = CrossBarLength - (NumberofBearingBars - 2) * BearingBarPitch - Side3&4 banding thickness - (2 * Bearing Bar Thickness)
FEM = Füllstab - (TA - 2) * Tragstabteiler - Rand3_4 - (2 * Tragstabdicke)
'If CrossBarMesh < 16.6 AND CrosbarMesh > = 1 then
If FEM < 16.6 And FEM >= 1 Then
'CrossBarMesh = CrosbarMesh + 15.07
FEM = FEM + 15.07
'CrossBarMesh plus value = 15
ZFEM = 15.07
End If
'If CrossBarMesh < 1 then
If FEM < 1 Then
'CrossBarMesh = CrossBarMesh + 30.15
FEM = FEM + 30.15
'NumberOfBearingBarRods = NumberOfBearingBarRods - 1
TA = TA - 1
End If
Case 30.16
'CrossBarMesh = CrossBarLength - (NumberofBearingBars - 2) * BearingBarPitch - Side3&4 banding thickness - (2 * Bearing Bar Thickness)
FEM = Füllstab - (TA - 2) * Tragstabteiler - Rand3_4 - (2 * Tragstabdicke)
'If CrossBarMesh < 16.6 AND CrosbarMesh > = 1 then
If FEM < 16.6 And FEM >= 1 Then
'CrossBarMesh = CrosbarMesh + 15.07
FEM = FEM + 15.07
'CrossBarMesh plus value = 15
ZFEM = 15.07
End If
'If CrossBarMesh < 1 then
If FEM < 1 Then
'CrossBarMesh = CrossBarMesh + 30.15
FEM = FEM + 30.15
'NumberOfBearingBarRods = NumberOfBearingBarRods - 1
TA = TA - 1
End If
Case Else
'CrossBarMesh = 9999
FEM = 9999
TA = TA - 1
End Select
' Calc CB MFG Length
'CrossBarLength = CrossBar + CrossBarTolerance
Füllstablänge = Füllstab + Toleranz_Füllstab
'CrosBarLength = CrossBarLength / 25.4
Füllstablänge_Inch = Füllstablänge / Inch
' Calc BB MFG Length
'BearingBarLength = (BearingBar - Side3&4BandThickness - (2 * BandingThickness)
Tragstablänge = (Tragstab - Rand3_4 - (2 * Einfassungsdicke))
Tragstablänge_Inch = Tragstablänge / Inch
MaterialbezeichnungEF2 = Einfassungsmaterial
' Calc CB Banding Length
EinfassungslängeFS = Füllstab - Rand3_4
EinfassungslängeFS_Inch = EinfassungslängeFS / Inch
' Calc BB Banding Length
EinfassungslängeTS = Tragstab - Rand1_2
EinfassungslängeTS_Inch = EinfassungslängeTS / Inch
' Calc Total Banding Qty (Qty * 2)
EinfassungsanzahlTS = Bestellmenge * 2
EinfassungsanzahlFS = Bestellmenge * 2
'INCH Anpassung nicht vergessen
Füllstabendmasche = Format(FEM, "###0.00") '& " : " & Format(ZFEM, "###0.00")
füllstabendmasche_1 = Format(FEM, "###0.00") '& " : " & Format(ZFEM, "###0.00")
Füllstabendmasche_Inch = Format(FEM / Inch, "###0.00") & " : " & ZFEM
Füllstabendmasche_1_Inch = Format(FEM / Inch, "###0.00") & " : " & ZFEM
'Bei Mattenfertigung wird Einfassunsbereich nicht angedruckt
If Einfassungsdicke = 0 Then
[Report_Fertigungszettel]![Jahreszahl].Visible = False
[Report_Fertigungszettel]![AuftragsNr].Visible = False
[Report_Fertigungszettel]![Kunde].Visible = False
[Report_Fertigungszettel]![txtEinfassung_Einfassung].Visible = False
[Report_Fertigungszettel]![Position].Visible = False
[Report_Fertigungszettel]![txtTragstab].Visible = False
[Report_Fertigungszettel]![txtFüllstab].Visible = False
[Report_Fertigungszettel]![Rostbezeichnung].Visible = False
[Report_Fertigungszettel]![Bestellmenge].Visible = False
[Report_Fertigungszettel]![Einfassungslänge].Visible = False
[Report_Fertigungszettel]![Einfassungsanzahl].Visible = False
[Report_Fertigungszettel]![MaterialbezeichnungTS].Visible = False
Else
Einfassungslänge = Füllstab
Einfassungslänge_Inch = Einfassungslänge / Inch
Einfassungsanzahl = Bestellmenge * 2
End If
Case Else
FEM = 9999
TEM = 9999
End Select
'********************************************************************
'Berichtsfelder zuweisen - Bereich Füllstab
Füllstabanzahl = FA * Bestellmenge & " / " & FA
'Berichtsfelder zuweisen - Bereich Tragstab
'Report-fields assign - area filling-rod
Tragstabanzahl = TA * Bestellmenge & " / " & TA
Tragstabendmasche = Format(TEM, "###0.00")
Tragstabendmasche_Inch = Tragstabendmasche / Inch
Klinkung = FA
'Zeichnungskästchen anzeigen
'Show Drawing Boxes
If Zeichnung = -1 Then
lblZeichnungBearing = "Review Traveler / DWG"
lblZeichnungCross = "Review Traveler / DWG"
lblZeichnungBand = "Review Traveler / DWG"
Else
lblZeichnungBearing = ""
lblZeichnungCross = ""
lblZeichnungBand = ""
End If
'Barcode links ausfüllen
'Fill Barcode Links
If Len(Position) <> 3 Then
Auffüllen = 3 - Len(Position)
PositionsNr = String(Auffüllen, "0") & Position
End If
'********************************************************************
'Daten Fertigungszettel in Datenbank PPS-Daten.mdb schreiben
'Write the records to the PPS-Daten-IN db
sql = "SELECT * FROM [PPS-Daten-IN] where Projekt = " & AuftragsNr & " and Artikel = """ & Mark & """"
Set dtPPSDaten = dbDatenbank.OpenRecordset(sql)
If dtPPSDaten.RecordCount = 0 Then
' Get the Seq number
Dim db As Database
Dim rs, ros As Recordset
Dim dbSQL, rosSQL As String
Set db = DBEngine.Workspaces(0).Databases(0)
dbSQL = "SELECT SeqNum FROM [SEQNum] where ID = 1"
Set rs = db.OpenRecordset(dbSQL)
rosSQL = "SELECT HöheTS, DickeFS FROM Rostbezeichnung WHERE Rostbezeichnung = """ & Rostbezeichnung & """"
Set ros = db.OpenRecordset(rosSQL)
With rs
.Edit
!SeqNum = !SeqNum + 1
.Update
End With
OpSeqBand.Caption = rs!SeqNum
OpSeqCB.Caption = rs!SeqNum
OpSeqBB.Caption = rs!SeqNum
With dtPPSDaten
.AddNew
!Projekt = AuftragsNr
!Bez_Rost = Rostbezeichnung
!Artikel = Mark
!Arttext1 = rs!SeqNum
!Rost_TS = Tragstab
!Rost_FS = Füllstab
!Stück_S0 = Bestellmenge
!Bez_Komp_1 = Einfassungsmaterial
!Länge_1 = EinfassungslängeTS
!Länge_2 = EinfassungslängeTS
!Länge_3 = EinfassungslängeFS
!Länge_4 = EinfassungslängeFS
!Bez_Komp_5 = MaterialbezeichnungTS
!Länge_TS = Tragstablänge
!Endma_TS = Format(TEM, "###0.00")
!Stück_TS = TA
!Teilung_TS = Tragstabteiler
!Bez_Komp_6 = MaterialbezeichnungFS
!Länge_FS = Füllstablänge
!Endma_FS = Format(FEM, "###0.00")
!Stück_FS = FA
!Teilung_FS = Füllstabteiler
!Eintragsdatum = Forms![Fertigungskopf]![Datum]
!Höhe_TS = ros!HöheTS
!Stärke_FS = ros!DickeFS
ProdAuftrag = !Prodauftr
.Update
End With
dtPPSDaten.Close
rs.Close
Else
' The to take into account the looping issue. When this is the 2nd time through on the same
' Mark #, then get the Machine # for the report
dtPPSDaten.Close
sql = "SELECT Prodauftr, Arttext1 FROM [PPS-Daten-IN] where Projekt = " & AuftragsNr & " and Artikel = """ & Mark & """"
Set dtPPSDaten = dbDatenbank.OpenRecordset(sql)
ProdAuftrag = dtPPSDaten.Prodauftr
OpSeqBand.Caption = dtPPSDaten.Arttext1
OpSeqCB.Caption = dtPPSDaten.Arttext1
OpSeqBB.Caption = dtPPSDaten.Arttext1
dtPPSDaten.Close
End If
'End If
'********************************************************************
'Barcode rechts ausfüllen (nachgelagert wegen Produktionsauftragsnummer aus Tabelle PPS-Daten-IN)
If Len(Trim(ProdAuftrag)) <> 9 Then
Auffüllen = 9 - Len(Trim(ProdAuftrag))
Barcode_ProdAuftrag = String(Auffüllen, "0") & ProdAuftrag
Barcode_PA_Edgebanding = "*" & Barcode_ProdAuftrag & "*"
Barcode_PA_crossbar = "*" & Barcode_ProdAuftrag & "*"
Barcode_PA_Bearingbar = "*" & Barcode_ProdAuftrag & "*"
Else
Barcode_PA_Edgebanding = "*" & Barcode_ProdAuftrag & "*"
Barcode_PA_crossbar = "*" & Barcode_ProdAuftrag & "*"
Barcode_PA_Bearingbar = "*" & Barcode_ProdAuftrag & "*"
End If
'------------------------------------------------------------------
Me.Label444.Visible
Me.Label445.Visible
Exit_Detailbereich_Format:
Exit Sub
Err_Detailbereich_Format:
MsgBox Err.Description
Resume Exit_Detailbereich_Format
End Sub
如果滚动到最后,您将看到使标签 444 和 445 可见的行。如果我注释掉这行,因为它们是我添加的唯一行,报告将正常工作。
哦,代码放在哪里并不重要,因为最终结果总是一样的,没有输出。
有人知道为什么会这样吗??这个我撞墙了。
感谢我能得到的任何建议。
使控件可见的正确语法是
Me.Label444.Visible = True
Me.Label445.Visible = True
可见的 属性 需要一个布尔值,因此您必须将其设置为 true 或 false。这可能会解决问题。
首先,如果这是重复的(我找不到),我很抱歉。
我已经搜索了超过一周的时间来寻找答案。
我有一个 Access 2003 数据库,它有一个前端 (fe) 一个后端 (be) 和一个保存数据的第三个数据库。我知道这看起来很奇怪,但它是很久以前德国制造的 Access 数据库。
问题来了。在主数据输入表单中有一个调用另一个表单的打印按钮。第二个表单有两个文本框,其中包含开始和结束订单号字段。起始编号是从主窗体传来的。
第二个表单上有另一个打印按钮,单击该按钮可创建并打印报告。报告就是问题所在。如果我在报告中添加任何 vba 代码,即使只是使标签可见,报告也不会打印任何内容。打印机对话框 window 看起来像是在发送一些东西,但什么也没有打印出来。
我试过发送到 PDF,但没有成功。现在,如果我转到报告代码并注释掉使标签可见的行,则报告可以正常打印。我一直在与 DB 打交道,但我从未见过这样的事情,该死,我什至从未听说过这样的事情。
请注意,此代码中有很多德语。
Option Compare Database
Option Explicit
Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer) 'Detail Area Format
'On Error GoTo Err_Detailbereich_Format
Dim dbDatenbank As Database
Dim dtPPSDaten, dtEinfassung, dtToleranz As Recordset
Dim sql As String
Dim T As Double 'Angepasste Tragstablänge
'Adjusted Bearing Bar rod-length
Dim TA As Double 'Anzahl Tragstäbe
'Number of Bearing Bar rods
Dim TA_Anzahl As String 'Zwischenfeld für Tragstabanzahlberechnung ohne Rundung
'Inter-field for Bearing Bar-number-calculation of curve
Dim FA_Anzahl As String 'Zwischenfeld für Füllstabanzahlberechnung ohne Rundung
'Inter-field for Cross Bar-number-calculation of curve
Dim Komma As Byte 'Zwischenfeld zum Filtern der Dezimalzalen
'Inter-field to filtering the decimal zal en
Dim FA As Double 'Füllstabanzahl
'Cross Bar-number
Dim TEM As Double 'Tragstabendmasche
'Bearing Bar Mesh
Dim FEM As Double 'Füllstabendmasche
'Cross Bar Mesh
Dim ZFEM As Double 'Zusatzwert Füllstabendmasche
'Addition-value Cross Bar Mesh
Dim MEMT As Double 'Mindestendmasche Tragstab (Toleranz)
'Bearing Bar Mesh Tolerance
Dim MEMF As Double 'Mindestendmasche Füllstab (Toleranz)
'Cross Bar Mesh Tolerance
Dim Rand1_2 As Double 'Technologischer Abzug Rand1+2 (Toleranz)
'Technological departure edge
Dim Rand3_4 As Double 'Technologischer Abzug Rand3+4 (Toleranz)
'Technological departure edge
Dim Einfassungsdicke As Single '(aus Tabelle: Einfassung)
'Banding Thickness
Dim Einfassungsmaterial As String * 35 '(aus Tabelle: Einfassung)
'Banding Material
Dim Toleranz_Füllstab As Single '(aus Tabelle: Toleranz)
'Cross Bar Tolerance
Dim Toleranz_Tragstab As Single '(aus Tabelle: Toleranz)
'Bearing Bar Tolerance
Dim ProdAuftrag As Long '(aus Tabelle: PPS_Daten_IN)
Dim PositionsNr As String * 3 'Zwischenfeld zum auffüllen der PositionsNr mit Nullen
'Position Number with zeros
Dim Auffüllen As Long 'Zwischenfeld
Dim Barcode_ProdAuftrag As String * 9 'Zwischenfeld
Dim Artikeltyp As Byte 'Zwischenfeld
Dim Durchlauf As Byte 'Zwischenfeld
Dim Inch As Single
Dim Feet As Single
Feet = 10.764
Inch = 25.4
ZFEM = 0
Komma = 0
Durchlauf = 1
'Einfassungsbereich sichtbar machen, evtl. durch Mattenfertigung ausgeblendet
' Border-area visible does, evtl. through mat-production faded out
[Report_Fertigungszettel]![Jahreszahl].Visible = True
[Report_Fertigungszettel]![AuftragsNr].Visible = True
[Report_Fertigungszettel]![Kunde].Visible = True
[Report_Fertigungszettel]![txtEinfassung_Einfassung].Visible = True
[Report_Fertigungszettel]![Position].Visible = True
[Report_Fertigungszettel]![Rostbezeichnung].Visible = True
[Report_Fertigungszettel]![Bestellmenge].Visible = True
'********************************************************************
'Unterschiedliche Einblendung zwischen SP- und P-Rosten
[Report_Fertigungszettel]![lbl_ef_lob1].Visible = True
[Report_Fertigungszettel]![lbl_ef_lob2].Visible = True
[Report_Fertigungszettel]![lbl_ef_lob3].Visible = True
[Report_Fertigungszettel]![Einfassungslänge].Visible = True
[Report_Fertigungszettel]![EinfassungslängeTS].Visible = True
[Report_Fertigungszettel]![EinfassungslängeFS].Visible = True
[Report_Fertigungszettel]![Einfassungslänge_Inch].Visible = True
[Report_Fertigungszettel]![EinfassungslängeTS_Inch].Visible = True
[Report_Fertigungszettel]![EinfassungslängeFS_Inch].Visible = True
[Report_Fertigungszettel]![MaterialbezeichnungTS].Visible = True
[Report_Fertigungszettel]![MaterialbezeichnungEF2].Visible = True
[Report_Fertigungszettel]![lbl_ef_quantity1].Visible = True
[Report_Fertigungszettel]![lbl_ef_quantity2].Visible = True
[Report_Fertigungszettel]![lbl_ef_quantity3].Visible = True
[Report_Fertigungszettel]![Einfassungsanzahl].Visible = True
[Report_Fertigungszettel]![EinfassungsanzahlTS].Visible = True
[Report_Fertigungszettel]![EinfassungsanzahlFS].Visible = True
'********************************************************************
Set dbDatenbank = DBEngine.Workspaces(0).Databases(0)
'Technologische Werte aus Tabelle Toleranz übernehmen
' Update Tolerance Information
sql = "SELECT * FROM Toleranz WHERE Toleranz = " & Toleranz
Set dtToleranz = dbDatenbank.OpenRecordset(sql)
MEMT = dtToleranz![Tol_Tragstab_Min_Masche] 'Bearing Bar Mesh
MEMF = dtToleranz![Tol_Füllstab_Min_Masche] 'Cross Bar Mesh
Rand1_2 = dtToleranz![Tol_Rand1+2] 'Banding Thickness for sides 1 & 2
Rand3_4 = dtToleranz![Tol_Rand3+4] 'Banding Thinckness for sides 3 & 4
Toleranz_Füllstab = dtToleranz![Tol_Füllstab] 'Cross Bar
Toleranz_Tragstab = dtToleranz![Tol_Tragstab] 'Bearing Bar
dtToleranz.Close
'Einfassungswerte aus Tabelle Einfassung übernehmen
' Update Banding Information
sql = "SELECT * FROM Einfassung WHERE Einfassung = " & Einfassung
Set dtEinfassung = dbDatenbank.OpenRecordset(sql)
Einfassungsdicke = dtEinfassung![Einf_Dicke] '
Einfassungsmaterial = dtEinfassung![Einf_Materialbezeichnung]
txtEinfassung_Einfassung.Value = dtEinfassung![Einf_Bezeichnung]
txtFüllstab_Einfassung = dtEinfassung![Einf_Bezeichnung]
txtTragstab_Einfassung = dtEinfassung![Einf_Bezeichnung]
If Einfassungsdicke = 0 Then
txt_hide_banding.Visible = True
txt_hide_banding = "NO BANDING"
End If
dtEinfassung.Close
'Unterscheidung Artikeltyp/Rosttyp
' Case statement based on the part type, keyed off of the first digit of the machine part number
Artikeltyp = Left(Rosttyp, 1)
Select Case Artikeltyp
Case "1"
lblPW1.Visible = False
lblPW2.Visible = True
lblPW3.Visible = True
'Berechnung P-Rost
' Calc BB MFG Length
Tragstablänge = Tragstab - Einfassungsdicke - Einfassungsdicke - Toleranz_Tragstab
Tragstablänge_Inch = Tragstablänge / Inch
' Calc CB MFG Length
Füllstablänge = Füllstab - Toleranz_Füllstab
Füllstablänge_Inch = Füllstablänge / Inch
' MaterialbezeichnungEF1 = Einfassungsmaterial
MaterialbezeichnungEF2 = Einfassungsmaterial
' Calc CB Banding Length
EinfassungslängeFS = Füllstab - Rand3_4
EinfassungslängeFS_Inch = EinfassungslängeFS / Inch
' Calc BB Banding Length
EinfassungslängeTS = Tragstab - Rand1_2
EinfassungslängeTS_Inch = EinfassungslängeTS / Inch
' Calc Total Banding Qty (Qty * 2)
EinfassungsanzahlTS = Bestellmenge * 2
EinfassungsanzahlFS = Bestellmenge * 2
'******************************************************************
'FIX
' Add Comments for LARGE BB pieces (over 1800mm)
' If (Tragstablänge > 1800) Or (Füllstablänge > 1800) Then
' lblcommentsBand = "OVER 1800mm, ENTER BANDING MANUALLY in 2 PIECES. " & lblcommentsBand
' Else
' lblcommentsBand = Comments
' End If
'*******************************************************************
TA_Anzahl = Füllstab / Tragstabteiler
Komma = InStr(1, TA_Anzahl, ".", vbTextCompare)
If Komma <> 0 Then
TA = CInt(Left(TA_Anzahl, (Komma - 1)))
Else
TA = CInt(TA_Anzahl)
End If
Komma = 0
FA_Anzahl = Tragstab / Füllstabteiler
Komma = InStr(1, FA_Anzahl, ".", vbTextCompare)
If Komma <> 0 Then
FA = CInt(Left(FA_Anzahl, (Komma - 1)))
Else
FA = CInt(FA_Anzahl)
End If
TEM = (Tragstablänge - ((FA - 1) * Füllstabteiler)) / 2
If TEM < MEMT Then
FA = FA - 1
TEM = (Tragstablänge - ((FA - 1) * Füllstabteiler)) / 2
If TEM < MEMT Then
FA = FA - 1
TEM = (Tragstablänge - ((FA - 1) * Füllstabteiler)) / 2
End If
End If
If TEM < ((Füllstabteiler / 2) + (Füllstabteiler * 0.05)) Then
FA = FA - 1
TEM = (Tragstablänge - ((FA - 1) * Füllstabteiler)) / 2
End If
FEM = (Füllstablänge - ((TA - 1) * Tragstabteiler)) / 2
If FEM < MEMF Then
TA = TA - 1
FEM = (Füllstablänge - ((TA - 1) * Tragstabteiler)) / 2
If FEM < MEMF Then
TA = TA - 1
FEM = (Füllstablänge - ((TA - 1) * Tragstabteiler)) / 2
End If
End If
If FEM < ((Tragstabteiler / 2) + (Tragstabteiler * 0.05)) Then
TA = TA - 1
FEM = (Füllstablänge - ((TA - 1) * Tragstabteiler)) / 2
End If
Füllstabendmasche = Format(FEM, "###0.00")
Füllstabendmasche_Inch = Füllstabendmasche / Inch
füllstabendmasche_1 = Format(FEM, "###0.00")
Füllstabendmasche_1_Inch = füllstabendmasche_1 / Inch
'********************************************************************
'Unterschiedliche Einblendung zwischen SP- und P-Rosten
[Report_Fertigungszettel]![lbl_ef_lob1].Visible = False
[Report_Fertigungszettel]![Einfassungslänge].Visible = False
[Report_Fertigungszettel]![MaterialbezeichnungTS].Visible = False
[Report_Fertigungszettel]![lbl_ef_quantity1].Visible = False
[Report_Fertigungszettel]![Einfassungsanzahl].Visible = False
'Ausblendung Stückzahlen bei T-Einfassung - Wunsch von Hr. Johann wegen Verwirrung bei Produktion Ohio
If Toleranz = 1 Then
[Report_Fertigungszettel]![EinfassungsanzahlTS].Visible = False
[Report_Fertigungszettel]![EinfassungsanzahlFS].Visible = False
[Report_Fertigungszettel]![lbl_ef_quantity2].Visible = False
[Report_Fertigungszettel]![lbl_ef_quantity3].Visible = False
End If
'********************************************************************
Case 2
lblPW1.Visible = True
lblPW2.Visible = False
lblPW3.Visible = False
'Entscheidungskriterium für Mattenfertigung
'Adjournment-criterion for mat-production
If Einfassungsdicke = 0 Then
T = Tragstab - Rand3_4
Else
T = Tragstab - (Tragstabdicke * 2) - Rand3_4
End If
'Berechnung SP-Rost
'Calculation SP-Rost
'TA-Anzahl = ((CrossBar - BearingBarThickness) / BearingBarPitch
TA_Anzahl = ((Füllstab - Tragstabdicke) / Tragstabteiler)
Komma = InStr(1, TA_Anzahl, ".", vbTextCompare)
If Komma <> 0 Then
'NumberOfBearingBars = CInt(Left(TA_Anzahl, (Komma - 1))) + 2
TA = CInt(Left(TA_Anzahl, (Komma - 1))) + 2
Else
'NumberOfBearingBars = CInt(TA_Anzahl) + 2
TA = CInt(TA_Anzahl) + 2
End If
'CrossBarNumber = MFG BearingBar Length \ CrossBarPitch
FA = T \ Füllstabteiler
'CrossBarNumber = (CrossBarNumber \ 2) * 2
FA = (FA \ 2) * 2
'BearingBarMesh = (MFGBearingBarLength - (CrossBarNumber-1)*CrossBarPitch)/2
TEM = (T - (FA - 1) * Füllstabteiler) / 2
'If BearingBarMesh >= (CrossBarPitch + BearingBarMeshTolerance) Then
If TEM >= (Füllstabteiler + MEMT) Then
'CrossBarNumber = CrosbarNumber + 2
FA = FA + 2
'BearingBarMesh = (MFBearingBarLength - (CrossBarNumber - 1) * CrossBarPitch) / 2
TEM = (T - (FA - 1) * Füllstabteiler) / 2
End If
'If BearingBarMesh < BearingBarMeshTolerance then
If TEM < MEMT Then
'CrossBarNumber = CrossBarNumber - 2
FA = FA - 2
'BearingBarMesh = (MFGBearingBarLength - (CrossBarNumber - 1) * CrossBarPitch) /2
TEM = (T - (FA - 1) * Füllstabteiler) / 2
End If
Select Case Tragstabteiler 'BearingBarPitch
Case 30.15
'CrossBarMesh = CrossBarLength - (NumberofBearingBars - 2) * BearingBarPitch - Side3&4 banding thickness - (2 * Bearing Bar Thickness)
FEM = Füllstab - (TA - 2) * Tragstabteiler - Rand3_4 - (2 * Tragstabdicke)
'If CrossBarMesh < 16.6 AND CrosbarMesh > = 1 then
If FEM < 16.6 And FEM >= 1 Then
'CrossBarMesh = CrosbarMesh + 15.07
FEM = FEM + 15.07
'CrossBarMesh plus value = 15
ZFEM = 15.07
End If
'If CrossBarMesh < 1 then
If FEM < 1 Then
'CrossBarMesh = CrossBarMesh + 30.15
FEM = FEM + 30.15
'NumberOfBearingBarRods = NumberOfBearingBarRods - 1
TA = TA - 1
End If
Case 30.16
'CrossBarMesh = CrossBarLength - (NumberofBearingBars - 2) * BearingBarPitch - Side3&4 banding thickness - (2 * Bearing Bar Thickness)
FEM = Füllstab - (TA - 2) * Tragstabteiler - Rand3_4 - (2 * Tragstabdicke)
'If CrossBarMesh < 16.6 AND CrosbarMesh > = 1 then
If FEM < 16.6 And FEM >= 1 Then
'CrossBarMesh = CrosbarMesh + 15.07
FEM = FEM + 15.07
'CrossBarMesh plus value = 15
ZFEM = 15.07
End If
'If CrossBarMesh < 1 then
If FEM < 1 Then
'CrossBarMesh = CrossBarMesh + 30.15
FEM = FEM + 30.15
'NumberOfBearingBarRods = NumberOfBearingBarRods - 1
TA = TA - 1
End If
Case Else
'CrossBarMesh = 9999
FEM = 9999
TA = TA - 1
End Select
' Calc CB MFG Length
'CrossBarLength = CrossBar + CrossBarTolerance
Füllstablänge = Füllstab + Toleranz_Füllstab
'CrosBarLength = CrossBarLength / 25.4
Füllstablänge_Inch = Füllstablänge / Inch
' Calc BB MFG Length
'BearingBarLength = (BearingBar - Side3&4BandThickness - (2 * BandingThickness)
Tragstablänge = (Tragstab - Rand3_4 - (2 * Einfassungsdicke))
Tragstablänge_Inch = Tragstablänge / Inch
MaterialbezeichnungEF2 = Einfassungsmaterial
' Calc CB Banding Length
EinfassungslängeFS = Füllstab - Rand3_4
EinfassungslängeFS_Inch = EinfassungslängeFS / Inch
' Calc BB Banding Length
EinfassungslängeTS = Tragstab - Rand1_2
EinfassungslängeTS_Inch = EinfassungslängeTS / Inch
' Calc Total Banding Qty (Qty * 2)
EinfassungsanzahlTS = Bestellmenge * 2
EinfassungsanzahlFS = Bestellmenge * 2
'INCH Anpassung nicht vergessen
Füllstabendmasche = Format(FEM, "###0.00") '& " : " & Format(ZFEM, "###0.00")
füllstabendmasche_1 = Format(FEM, "###0.00") '& " : " & Format(ZFEM, "###0.00")
Füllstabendmasche_Inch = Format(FEM / Inch, "###0.00") & " : " & ZFEM
Füllstabendmasche_1_Inch = Format(FEM / Inch, "###0.00") & " : " & ZFEM
'Bei Mattenfertigung wird Einfassunsbereich nicht angedruckt
If Einfassungsdicke = 0 Then
[Report_Fertigungszettel]![Jahreszahl].Visible = False
[Report_Fertigungszettel]![AuftragsNr].Visible = False
[Report_Fertigungszettel]![Kunde].Visible = False
[Report_Fertigungszettel]![txtEinfassung_Einfassung].Visible = False
[Report_Fertigungszettel]![Position].Visible = False
[Report_Fertigungszettel]![txtTragstab].Visible = False
[Report_Fertigungszettel]![txtFüllstab].Visible = False
[Report_Fertigungszettel]![Rostbezeichnung].Visible = False
[Report_Fertigungszettel]![Bestellmenge].Visible = False
[Report_Fertigungszettel]![Einfassungslänge].Visible = False
[Report_Fertigungszettel]![Einfassungsanzahl].Visible = False
[Report_Fertigungszettel]![MaterialbezeichnungTS].Visible = False
Else
Einfassungslänge = Füllstab
Einfassungslänge_Inch = Einfassungslänge / Inch
Einfassungsanzahl = Bestellmenge * 2
End If
Case Else
FEM = 9999
TEM = 9999
End Select
'********************************************************************
'Berichtsfelder zuweisen - Bereich Füllstab
Füllstabanzahl = FA * Bestellmenge & " / " & FA
'Berichtsfelder zuweisen - Bereich Tragstab
'Report-fields assign - area filling-rod
Tragstabanzahl = TA * Bestellmenge & " / " & TA
Tragstabendmasche = Format(TEM, "###0.00")
Tragstabendmasche_Inch = Tragstabendmasche / Inch
Klinkung = FA
'Zeichnungskästchen anzeigen
'Show Drawing Boxes
If Zeichnung = -1 Then
lblZeichnungBearing = "Review Traveler / DWG"
lblZeichnungCross = "Review Traveler / DWG"
lblZeichnungBand = "Review Traveler / DWG"
Else
lblZeichnungBearing = ""
lblZeichnungCross = ""
lblZeichnungBand = ""
End If
'Barcode links ausfüllen
'Fill Barcode Links
If Len(Position) <> 3 Then
Auffüllen = 3 - Len(Position)
PositionsNr = String(Auffüllen, "0") & Position
End If
'********************************************************************
'Daten Fertigungszettel in Datenbank PPS-Daten.mdb schreiben
'Write the records to the PPS-Daten-IN db
sql = "SELECT * FROM [PPS-Daten-IN] where Projekt = " & AuftragsNr & " and Artikel = """ & Mark & """"
Set dtPPSDaten = dbDatenbank.OpenRecordset(sql)
If dtPPSDaten.RecordCount = 0 Then
' Get the Seq number
Dim db As Database
Dim rs, ros As Recordset
Dim dbSQL, rosSQL As String
Set db = DBEngine.Workspaces(0).Databases(0)
dbSQL = "SELECT SeqNum FROM [SEQNum] where ID = 1"
Set rs = db.OpenRecordset(dbSQL)
rosSQL = "SELECT HöheTS, DickeFS FROM Rostbezeichnung WHERE Rostbezeichnung = """ & Rostbezeichnung & """"
Set ros = db.OpenRecordset(rosSQL)
With rs
.Edit
!SeqNum = !SeqNum + 1
.Update
End With
OpSeqBand.Caption = rs!SeqNum
OpSeqCB.Caption = rs!SeqNum
OpSeqBB.Caption = rs!SeqNum
With dtPPSDaten
.AddNew
!Projekt = AuftragsNr
!Bez_Rost = Rostbezeichnung
!Artikel = Mark
!Arttext1 = rs!SeqNum
!Rost_TS = Tragstab
!Rost_FS = Füllstab
!Stück_S0 = Bestellmenge
!Bez_Komp_1 = Einfassungsmaterial
!Länge_1 = EinfassungslängeTS
!Länge_2 = EinfassungslängeTS
!Länge_3 = EinfassungslängeFS
!Länge_4 = EinfassungslängeFS
!Bez_Komp_5 = MaterialbezeichnungTS
!Länge_TS = Tragstablänge
!Endma_TS = Format(TEM, "###0.00")
!Stück_TS = TA
!Teilung_TS = Tragstabteiler
!Bez_Komp_6 = MaterialbezeichnungFS
!Länge_FS = Füllstablänge
!Endma_FS = Format(FEM, "###0.00")
!Stück_FS = FA
!Teilung_FS = Füllstabteiler
!Eintragsdatum = Forms![Fertigungskopf]![Datum]
!Höhe_TS = ros!HöheTS
!Stärke_FS = ros!DickeFS
ProdAuftrag = !Prodauftr
.Update
End With
dtPPSDaten.Close
rs.Close
Else
' The to take into account the looping issue. When this is the 2nd time through on the same
' Mark #, then get the Machine # for the report
dtPPSDaten.Close
sql = "SELECT Prodauftr, Arttext1 FROM [PPS-Daten-IN] where Projekt = " & AuftragsNr & " and Artikel = """ & Mark & """"
Set dtPPSDaten = dbDatenbank.OpenRecordset(sql)
ProdAuftrag = dtPPSDaten.Prodauftr
OpSeqBand.Caption = dtPPSDaten.Arttext1
OpSeqCB.Caption = dtPPSDaten.Arttext1
OpSeqBB.Caption = dtPPSDaten.Arttext1
dtPPSDaten.Close
End If
'End If
'********************************************************************
'Barcode rechts ausfüllen (nachgelagert wegen Produktionsauftragsnummer aus Tabelle PPS-Daten-IN)
If Len(Trim(ProdAuftrag)) <> 9 Then
Auffüllen = 9 - Len(Trim(ProdAuftrag))
Barcode_ProdAuftrag = String(Auffüllen, "0") & ProdAuftrag
Barcode_PA_Edgebanding = "*" & Barcode_ProdAuftrag & "*"
Barcode_PA_crossbar = "*" & Barcode_ProdAuftrag & "*"
Barcode_PA_Bearingbar = "*" & Barcode_ProdAuftrag & "*"
Else
Barcode_PA_Edgebanding = "*" & Barcode_ProdAuftrag & "*"
Barcode_PA_crossbar = "*" & Barcode_ProdAuftrag & "*"
Barcode_PA_Bearingbar = "*" & Barcode_ProdAuftrag & "*"
End If
'------------------------------------------------------------------
Me.Label444.Visible
Me.Label445.Visible
Exit_Detailbereich_Format:
Exit Sub
Err_Detailbereich_Format:
MsgBox Err.Description
Resume Exit_Detailbereich_Format
End Sub
如果滚动到最后,您将看到使标签 444 和 445 可见的行。如果我注释掉这行,因为它们是我添加的唯一行,报告将正常工作。
哦,代码放在哪里并不重要,因为最终结果总是一样的,没有输出。
有人知道为什么会这样吗??这个我撞墙了。
感谢我能得到的任何建议。
使控件可见的正确语法是
Me.Label444.Visible = True
Me.Label445.Visible = True
可见的 属性 需要一个布尔值,因此您必须将其设置为 true 或 false。这可能会解决问题。