就是这样一个过程,有2个标,数据库里的一个表,一个导入的表,2个表进行比较,相同的跳过,不同的话将导入的表中的数据导入到数据库中。
拜托了,弄了好几天都没有弄出来,实在是丢人那,小弟汗颜在这里求各位,指点一下!我记得是有这样的算法的,但是实在是忘了。先谢谢了

解决方案 »

  1.   

    导入的表是 将excel导入到datagrid中
        Dim strConn As String
        Dim strSQL As String
        Dim strDataFile As String
        Dim strTableName As String
    With cn
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " F:\test.xls& str1 & ";Extended Properties=Excel 8.0;Persist Security Info=False "
    .Open
    End With
    strSQL = "Select * from [Sheet1$]"
    adoRS.CursorLocation = adUseClient
    Set adoRS.ActiveConnection = cn
    adoRS.Open strSQL, cn, 2, 3
    adoRS.MoveFirst
    Set DataGrid1.DataSource = adoRS.DataSource
    DataGrid1.Refresh
    如何将datagrid不同的数据导入数据库中
      

  2.   

    你要倒到什么数据库?Set DataGrid1.DataSource = adoRS.DataSource 你这不是已经有recordset了吗?有了recordset导那个数据库不是容易的事情?
      

  3.   

    呵呵
    楼主描述的有点乱吧两个表?数据库中的table和excel的sheet吗?说明白点儿这个应该算不上算法吧,很简单的
      

  4.   

    o,是我的疏忽了,就是将excel的sheet导入到数据库中的table中
    上面贴的代码是已经将excel打开了,并获得了recordset了,
     我要解决的就是将excel的sheet导入到数据库中的table中excel中的数据比数据库表中的数据多,就是比较excel和数据库表之间的数据,如果excel中的某一行和数据库中的一样就跳过,如果不一样的话就 将excel中的数据导入到表中
    就像这样 
    excel 的sheet1中                       数据库中的表
    姓名    地址    性别                        姓名    地址    性别
    李      北京    男                          李      北京    男
    张      北京    男                          张      北京    男
    赵      上海    女                          吴      天津    女
    导入后数据库中的表应该是
    姓名    地址    性别
    李      北京    男
    张      北京    男                         
    吴      天津    女
    赵      上海    女
    就是这样的问题
      

  5.   

    不是很简单的吗?做一个循环把excel中的数据一条一条的取出来,存入变量中,在做一个查询看数据库中有没有这条记录,有就做下一条,没有就插入!
      

  6.   

    我也知道思路但是就是具体的写不出来呀,就好象怎么把excel中的数据一条一条的取出来,用recordset中我没有找到怎么操作行的方法?是一条全取出还是就取出其中的一列?还有插入是将变量插入还是将excel直接插入?我学的时间不长,问得问题苯点,大家包涵一些。
      

  7.   

    按你的描述,这样试一下:dim sql as string
    dim rs_tb as adodb.recordsetwhile not rs_excel.eof
        sql="select [name] from tb where [name]='"& rs_excel!name &"'"
        set rs_tb =new adodb.recordset
        rs_tb.Open sql, cn, 2,3
        if rs_tb.eof then
            sql="insert into tb([name],address,sex) " _
               &"values('"& rs_excel!name &"','" & rs_excel!address &"','"& rs_excel!sex &"')" 
            cn.execute sql
        end if
        set rs_tb=nothing
        rs_excel.movenext
    wend
      

  8.   

    太好了,终于好用了
    太感谢你了vbman2003(家人)
    也谢谢你上次的 指点datou985 (^\会急转弯儿的猪/^) 同时也多谢大家的关注 ,给分  
       
        
      
        
       
     
       
     
    vbman2003