Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]【求助】将一个表的2条记录通过ADO添加到另一个表,只添加了一条

dulton  发表于:2016-12-23 12:40:36  
复制

测试了好多,就是只添加一条

代码如下:

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

 

Top
chinasa 发表于:2016-12-23 13:56:12

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



飘摇王 发表于:2016-12-23 14:01:00
弱弱的问一下  如果是上万条数据 要弹出那么多次窗口啊

飘摇王 发表于:2016-12-23 14:06:05
表里的SN始终没变化

dulton 发表于:2016-12-23 14:11:11
问题解决了,谢谢!

dulton 发表于:2016-12-23 14:12:39
    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 :