Ms access 在Access 2003中将正确的值从窗体发送到报表

Ms access 在Access 2003中将正确的值从窗体发送到报表,ms-access,vba,ms-access-2003,Ms Access,Vba,Ms Access 2003,我有一个表单,允许用户键入50个不同的零件号,并打印出每个零件号需要打印的标签数量。我遇到的问题是,当我将零件号发送到标签报告时,标签数量不正确。以下是我所拥有的: Private Sub cmdPrint_Click() 'Printing multiple labels for one record Dim i As Integer Dim a As Integer Dim rst As ADODB.Recordset Dim total As Integer Set rst = New

我有一个表单,允许用户键入50个不同的零件号,并打印出每个零件号需要打印的标签数量。我遇到的问题是,当我将零件号发送到标签报告时,标签数量不正确。以下是我所拥有的:

Private Sub cmdPrint_Click()
'Printing multiple labels for one record
Dim i As Integer
Dim a As Integer
Dim rst As ADODB.Recordset
Dim total As Integer

Set rst = New ADODB.Recordset
'Delete previous label data
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE FROM [tmpParts]"
DoCmd.SetWarnings True

On Error GoTo errHandler
'Catch blank QTY
'If set to 0, label report is blank but runs
If IsNull(Me!QTY) Then
    MsgBox "Please enter the quantity for labels", _
    vbOKOnly, "Error"
    DoCmd.GoToControl "QTY"
    Exit Sub
End If

rst.Open "[tmpParts]", CurrentProject.Connection, adOpenDynamic, 
adLockPessimistic
'Adds duplicate records for selected item using input value
For total = 1 To Total_QTY.Value
    For i = 1 To QTY.Value
    With rst
        .AddNew
        !Item_Number = Me.Combo_1.Column(1)
        !Item_Description = Me.Item_Desc
        !Bin = Me.Bin_Loc
        .Update
    End With
    Next i
    For j = 1 To QTY_2.Value
    With rst
        .AddNew
        !Item_Number = Me.Combo2.Column(1)
        !Item_Description = Me.Item_2
        !Bin = Me.Bin_2
        .Update
    End With
    Next j

Next total
    DoCmd.OpenReport "rptTemporaryLabels", acViewPreview
    'DoCmd.PrintOut
    'DoCmd.RunCommand acCmdClose
    rst.Close
    Set rst = Nothing
    Exit Sub

errHandler:
    MsgBox Err.Number & ": " & Err.Description, vbOKOnly, "Error"
    DoCmd.SetWarnings True
    rst.Close
    Set rst = Nothing
End Sub

现在它是不完整的,因为我只有2个数量箱,只是为了测试的目的。我正试图这样做,如果QTY表示该零件号为3,QTY_2表示另一零件号为2,则标签将反映该零件号。

请注意,很多集合都是以零为基础的,如记录集,而循环则从一开始。如果这不能解决问题,请提供更多详细信息。事实并非如此。发生的情况是,当我将2个数量文本框及其各自的零件号发送到报告时,它们不会创建所需的确切数量,因此,例如,如果我为2个项目输入1个数量并将其打印到报告中,它并不是只有两个标签,而是44个标签,因此您需要在代码的开头设置一个断点,并在填充每个变量时检查它们。好的,所以我注意到第一个错误是我忘了做Me.QTY.Value,如果它只使用第一个QTY框,那么它会工作,当尝试添加第二个QTY框时,它会再次将其增加到44。我只是将这两个框分离为各自的for语句,现在它们工作正常,问题是,现在我必须复制并粘贴它48次,因为有50行可以填充并发送到报告。请记住,在中间,许多集合都是零基的,就像记录集一样,而循环从一开始。如果这不能解决问题,请提供更多详细信息。事实并非如此。发生的情况是,当我将2个数量文本框及其各自的零件号发送到报告时,它们不会创建所需的确切数量,因此,例如,如果我为2个项目输入1个数量并将其打印到报告中,它并不是只有两个标签,而是44个标签,因此您需要在代码的开头设置一个断点,并在填充每个变量时检查它们。好的,所以我注意到第一个错误是我忘了做Me.QTY.Value,如果它只使用第一个QTY框,那么它会工作,当尝试添加第二个QTY框时,它会再次将其增加到44。我只是将这两个框分离为各自的for语句,现在它们工作正常,问题是,现在我必须复制并粘贴48次,因为有50行可以填写并发送到报告。