ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4056|回复: 3

将EXCEL里的数据实时上传到SQL数据库里的VBA任何写?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-11-13 18:31 | 显示全部楼层 |阅读模式
需要实时将EXCEL里的数据上传到服务器的SQL数据库里。SQL数据库不在本机上,但在一个局域网内。EXCEL每产生一组数据便点一次上传按钮上传。
服务器名:SERVER
SQL数据库名:CW
表名:MZSF

EXCEL表:SF.SHEET1

EXCEL表字段与SQL表字段一致。

请教上传EXCEL数据的VBA代码。

TA的精华主题

TA的得分主题

发表于 2009-11-15 12:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

〖Excel Home友情提示〗

   

很遗憾通知楼上朋友,您的帖子在24小时之内没有任何回复!

通常情况下,本论坛发布的主题帖会在8小时被回复或处理。您的帖子在24小时之内未被回复,其中的原因可能是

1、问题表述不清、模棱两可,难以理解,帮助者被搞晕了,夺帖而出;
2、没有上传必要的附件,或附件被遗忘在某个角落;
3、发帖提问时,语气带棱角、带挑衅,不幸被列入不受欢迎的帖子;
4、所提问题不成立,或提不合理的要求,乐于助人者使出“走为上”之计;
5、话题较偏、较冷或者发布到了不合适的版块,暂时无人问津,顾影自怜。


为了提高您的问题解决效率,我们推荐您阅读以下文章:
* 如何发表新话题和上传附件:http://club.excelhome.net/thread-45649-1-1.html
* 发帖的技巧:http://club.excelhome.net/thread-176339-1-1.html
* EH技术论坛的最佳学习方法:http://club.excelhome.net/thread-117862-1-1.html

TA的精华主题

TA的得分主题

发表于 2010-4-25 10:56 | 显示全部楼层
支持!!!!!!!!!!1111

TA的精华主题

TA的得分主题

发表于 2010-4-25 23:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
参考:   
   
  Excel文件的读取   
  public   DataSet   ExcelToDS(string   Path)   
  {   
    string   strConn   =   "Provider=Microsoft.Jet.OLEDB.4.0;"   +"Data   Source="+   Path   +";"+"Extended   Properties=Excel   8.0;";   
    OleDbConnection   conn   =   new   OleDbConnection(strConn);   
    conn.Open();      
    string   strExcel   =   "";         
    OleDbDataAdapter   myCommand   =   null;   
    DataSet   ds   =   null;   
    strExcel="select   *   from   [sheet1$]";   
    myCommand   =   new   OleDbDataAdapter(strExcel,   strConn);   
    ds   =   new   DataSet();   
    myCommand.Fill(ds,"table1");         
    return   ds;   
  }   
  对于EXCEL中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到   
    string   strConn   =   "Provider=Microsoft.Jet.OLEDB.4.0;"   +"Data   Source="+   Path   +";"+"Extended   Properties=Excel   8.0;";   
    OleDbConnection   conn   =   new   OleDbConnection(strConn);   
    DataTable   schemaTable   =   objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);   
    string   tableName=schemaTable.Rows[0][2].ToString().Trim();      
  Excel文件的写入   
  public   void   DSToExcel(string   Path,DataSet   oldds)   
  {   
    //先得到汇总EXCEL的DataSet   主要目的是获得EXCEL在DataSet中的结构   
    string   strCon   =   "   Provider   =   Microsoft.Jet.OLEDB.4.0   ;   Data   Source   ="+path1+";Extended   Properties=Excel   8.0"   ;   
    OleDbConnection   myConn   =   new   OleDbConnection(strCon)   ;   
    string   strCom="select   *   from   [Sheet1$]";   
    myConn.Open   (   )   ;   
    OleDbDataAdapter   myCommand   =   new   OleDbDataAdapter   (   strCom,   myConn   )   ;   
    ystem.Data.OleDb.OleDbCommandBuilder   builder=new   OleDbCommandBuilder(myCommand);   
    //QuotePrefix和QuoteSuffix主要是对builder生成InsertComment命令时使用。   
    builder.QuotePrefix="[";           //获取insert语句中保留字符(起始位置)   
    builder.QuoteSuffix="]";   //获取insert语句中保留字符(结束位置)   
    DataSet   newds=new   DataSet();   
    myCommand.Fill(newds   ,"Table1")   ;   
    for(int   i=0;i<oldds.Tables[0].Rows.Count;i++)   
    {   
      //在这里不能使用ImportRow方法将一行导入到news中,因为ImportRow将保留原来DataRow的所有设置(DataRowState状态不变)。在使用ImportRow后newds内有值,但不能更新到Excel中因为所有导入行的DataRowState!=Added   
      DataRow   nrow=aDataSet.Tables["Table1"].NewRow();   
      for(int   j=0;j<newds.Tables[0].Columns.Count;j++)   
      {   
        nrow[j]=oldds.Tables[0].Rows[j];   
      }   
      newds.Tables["Table1"].Rows.Add(nrow);   
    }   
    myCommand.Update(newds,"Table1");   
    myConn.Close();   
  }
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 17:19 , Processed in 0.019957 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表