测试了好多,就是只添加一条
代码如下:
Private Sub cmdArm_Click()
'删除临时表的记录
DoCmd.SetWarnings False
DoCmd.RunSQL "delete * from tbl_stock_location_temp"
DoCmd.SetWarnings True
'开始打开查询结果添加到临时表
Dim rs, rs1 As ADODB.Recordset
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
Dim ssql As String
ssql = "select * from qry_stock_location order by WH,Bin,货位,物料代码,批号"
rs.Open ssql, CurrentProject.Connection, 2, 3
rs1.Open "tbl_Stock_Location_Temp", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Dim i, t As Integer
i = 0
t = 0
Dim bin, wh As String
rs.MoveFirst
bin = rs!bin
wh = rs!wh
MsgBox rs.RecordCount
Do Until rs.EOF
rs1.AddNew
'检查是否Bin有变化,如果有,I重新开始
' MsgBox bin & rs!bin
If bin = rs!bin And wh = rs!wh Then
i = i + 1
Else
bin = rs!bin
wh = rs!wh
i = 1
End If
rs1!SN = i
rs1!物料代码 = rs!物料代码
rs1!物料名称 = rs!物料名称
rs1!wh = rs!wh
rs1!货位 = rs!货位
rs1!bin = rs!bin
rs1!批号 = rs!批号
rs1!仓库名称 = rs!仓库名称
rs1!基本计量单位 = rs!基本计量单位
rs1!基本单位数量 = rs!基本单位数量
MsgBox rs!批号
rs.MoveNext
t = t + 1
Loop
'rs.Close
'Set rs = Nothing
'rs1.Close
'Set rs1 = Nothing
Dim r As Integer
r = DCount("物料代码", "qry_Stock_location", "基本计量单位 is not null")
MsgBox "Data Updated!" & vbCrLf & t & "vs" & r
If r = t Then
MsgBox "记录条数相符,OK"
Else
MsgBox "记录条数不符,请检查"
End If
End Sub
盘点报告.zip
Private Sub cmdArm_Click()
'删除临时表的记录
DoCmd.SetWarnings False
DoCmd.RunSQL "delete * from tbl_stock_location_temp"
DoCmd.SetWarnings True
'开始打开查询结果添加到临时表
Dim rs, rs1 As ADODB.Recordset
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
Dim ssql As String
ssql = "select * from qry_stock_location order by WH,Bin,货位,物料代码,批号"
rs.Open ssql, CurrentProject.Connection, 2, 3
rs1.Open "tbl_Stock_Location_Temp", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Dim i, t As Integer
i = 0
t = 0
Dim bin, wh As String
rs.MoveFirst
bin = rs!bin
wh = rs!wh
MsgBox rs.RecordCount
rs1.AddNew
Do Until rs.EOF
'检查是否Bin有变化,如果有,I重新开始
' MsgBox bin & rs!bin
If bin = rs!bin And wh = rs!wh Then
i = i + 1
Else
bin = rs!bin
wh = rs!wh
i = 1
End If
rs1!SN = i
rs1!物料代码 = rs!物料代码
rs1!物料名称 = rs!物料名称
rs1!wh = rs!wh
rs1!货位 = rs!货位
rs1!bin = rs!bin
rs1!批号 = rs!批号
rs1!仓库名称 = rs!仓库名称
rs1!基本计量单位 = rs!基本计量单位
rs1!基本单位数量 = rs!基本单位数量
MsgBox rs!批号
rs.MoveNext
t = t + 1
rs1.AddNew
Loop
'rs.Close
'Set rs = Nothing
'rs1.Close
'Set rs1 = Nothing
Dim r As Integer
r = DCount("物料代码", "qry_Stock_location", "基本计量单位 is not null")
MsgBox "Data Updated!" & vbCrLf & t & "vs" & r
If r = t Then
MsgBox "记录条数相符,OK"
Else
MsgBox "记录条数不符,请检查"
End If
End Sub
弱弱的问一下 如果是上万条数据 要弹出那么多次窗口啊
表里的SN始终没变化
问题解决了,谢谢!
rs1.AddNew ------------------------------把这一句移到了前面
Do Until rs.EOF
'检查是否Bin有变化,如果有,I重新开始
' MsgBox bin & rs!bin
If bin = rs!bin And wh = rs!wh Then
i = i + 1
Else
bin = rs!bin
wh = rs!wh
i = 1
End If
rs1!SN = i
rs1!物料代码 = rs!物料代码
rs1!物料名称 = rs!物料名称
rs1!wh = rs!wh
rs1!货位 = rs!货位
rs1!bin = rs!bin
rs1!批号 = rs!批号
rs1!仓库名称 = rs!仓库名称
rs1!基本计量单位 = rs!基本计量单位
rs1!基本单位数量 = rs!基本单位数量
MsgBox rs!批号
rs.MoveNext
t = t + 1
rs1.AddNew --------------------在循环开始前添加了这一句
总记录:5篇 页次:1/1 9 1 :