我用MSHFLEXGRID批量输入资料,最后提交,上传到SQL B表中, 条件是
MSFHFLEXGRID 单元格1列的资料,在表A中要存在,在表B中要不存在 并且上传完后,上传上去的,资料在MSHFLEXGRID 中消失,只存在那些条件异常 没上传到SQL 的记录
barcode 是条码,MSHFLEXGRID(I,1) 是条玛+数量序列号
 Case "save"
    Dim js As Integer
    Dim rs2 as new recordset
    Dim rs4 as new recordset
    dim Djls as integer
      If js = MS1.Rows - 2 Then
         MsgBox "没有要保存的数据!", , "提示窗口"
         Exit Sub
      
      End If
      
      
      For i = 1 To MS1.Rows - 2
          
       rs4.Open "select gch,tdh,bh,barcode from printdata where barcode='" + Left(MS1.TextMatrix(i, 1), Len(MS1.TextMatrix(i, 1)) - InStr(StrReverse(MS1.TextMatrix(i, 1)), "-")) + "'", cnn, adOpenDynamic, adLockBatchOptimistic
       If rs4.RecordCount > 0 Then
       
       rs2.Open "select * from scandata where barcode='" + MS1.TextMatrix(i, 1) + "' and stationname='" + Combo1 + "'", cnn, adOpenDynamic, adLockReadOnly
            
       If IsNull(MS1.TextMatrix(i, 1)) = False And rs2.EOF Then
      
       
            
       cnn.Execute ("insert into scandata(barcode,stationname,scanop,scandate,scantime)Values ( '" + Trim(MS1.TextMatrix(i, 1)) + "','" + Trim(Combo1) + "','" + Trim(Label4) + "','" & Date & "','" & Time & "')")
            
            
            Djls = Djls + 1
            End If
                              
            
            rs2.Close
            Next i
            
            cnn.Close
            
            
            MsgBox "共有『" + CStr(Djls) + "』记录数被导入"
            
           
            
    谢谢!                
        
 
barcodeMSHFLEXGRID

解决方案 »

  1.   

    上面的问题没人回答吗,那还是上面的问题,改动一下问问,我现在上传记录,表中RS2 中存的记录就不上传,该如何办?谢谢!
    我的代码如下 IF rs2.recordcount=0 THEN 似乎行不通,望帮看看
    Case "save"
        Dim js As Integer
        Dim rs1 As New Recordset
        Dim rs2 As New Recordset
        Dim rs4 As New Recordset
        
        Dim Djls As Integer
     
          If js = MS1.Rows - 2 Then
             MsgBox "没有要保存的数据!", , "提示窗口"
             Exit Sub
          
          End If
             
                     
               
                
              
        rs1.Open "select * from scandata", cnn, adOpenKeyset, adLockOptimistic
        rs2.Open "select * from scandata where barcode='" + MS1.TextMatrix(i, 1) + "' and stationname='" + Combo1 + "'", cnn, adOpenDynamic, adLockReadOnly
                                                                                       
          For i = 1 To MS1.Rows - 1
             If MS1.TextMatrix(i, 1) <> "" And MS1.TextMatrix(i, 3) <> "" And MS1.TextMatrix(i, 4) <> "" And rs2.RecordCount = 0 Then         
              '添加新记录到"入库从表"中
               rs1.AddNew
            
               'If MS1.TextMatrix(i, 1) <> "" And rs2.EOF Then
               rs1.Fields("barcode") = Trim(MS1.TextMatrix(i, 1))
               rs1.Fields("gch") = MS1.TextMatrix(i, 2)
               rs1.Fields("gcm") = MS1.TextMatrix(i, 3)
               rs1.Fields("tdh") = MS1.TextMatrix(i, 4)
               rs1.Fields("bh") = MS1.TextMatrix(i, 5)
               rs1.Fields("cc") = MS1.TextMatrix(i, 6)
               rs1.Fields("ys") = MS1.TextMatrix(i, 7)
               rs1.Fields("bzl") = MS1.TextMatrix(i, 8)
               rs1.Fields("zc") = MS1.TextMatrix(i, 9)
               rs1.Fields("sl") = MS1.TextMatrix(i, 10)
               rs1.Fields("stationname") = Trim(Combo1)
               rs1.Fields("scanop") = Trim(Label4)
               rs1.Fields("scandate") = Date
               rs1.Fields("scantime") = Time
               
               rs1.Update
            Djls = Djls + 1
             End If
          Next i
          
          rs1.Close
          rs2.Close
          'rs4.Close
        MsgBox "共有『" + CStr(Djls) + "』记录数被导入"
                         
            
     
     End Select
      

  2.   

    INSERT INTO 表2
    SELECT ............ WHERE NOT EXISTS (SELECT 1 FROM 表2 S WHERE S.主键=.....)
    试试这句话,这样子简洁