在这个Excel中可否写VB或VBA代码来实现Excel与Database之间的操作,详情如下: to playyuer(退休干部 卧鼠藏虫) :不要只说 y ,可否给一点实际性的参考资料? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 利用分布式查询。方法1:利用OpenRowSet() 例:Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0','d:\abc.xls';[sheet1$]);方法2:建立链接服务器 例: Exec sp_addlinkedserver 'abc', 'Excel', 'Microsoft.Jet.OLEDB.4.0', 'd:\abc.xls', 'Excel 5.0' Exec sp_addlinkedsrvlogin @rmtsrvname='abc', @useself='false' 执行完上述代码后,在“企业管理器”-“安全性”-“链接服务器”下就能看到名为“abc”的链接服务器。 若你要访问abc.xls中的sheet1,select * from abc...sheet1$。你在VB中可以通过ODBC连接数据库,以执行操作。 thanks so much ,ICBOP00!(1)请问上面你所说的方法,包括我所说的功能执行,可否全部都在SQLServer的“企业管理器”里面操作就可完成?(2)执行完上面的方法后,其他操作是否都可以用标准的SQL来做? 当然可以了!ICBOP00(跳水自杀的鱼) 说的方法可行 (1)第一種:Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0','d:\test\abc.xls',[sheet1$])服务器: 消息 7399,级别 16,状态 1,行 1OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。 [OLE/DB provider returned message: 找不到可安装的 ISAM。](2)第二種: Exec sp_addlinkedserver 'abc', 'Excel', 'Microsoft.Jet.OLEDB.4.0', 'd:\test\abc.xls', 'Excel 5.0' Exec sp_addlinkedsrvlogin @rmtsrvname='abc', @useself='false' select * from abc...sheet1$服务器: 消息 7399,级别 16,状态 1,行 1OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。 [OLE/DB provider returned message: 不可识别的数据库格式 'd:\test\abc.xls'。]==========================兩種方法分別要滿足什麽條件才能正常運行? 需要条件吗?直接就可以了,excel是可以和数据库一样被SQL语句识别的 沒有條件,那爲什麽隨便用一個abc.xls,裏面寫幾個數字或字段,讀就會出現上面的錯誤? 爲什麽隨便用一個abc.xls,裏面寫幾個數字或字段,讀就會出現上面的錯誤?????????? 你试试Select * From OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=no;Database=D:\abc.xls', [Sheet1$])必须注意EXCEL是单用户表格。在SQL Server中对Excel表进行操作时,不能另外打开EXCEL程序。当你使用链接服务器的方式对EXCELb表进行链接时,你所链接的EXCEL表必须存在才能链接。例如你要对d:\test\abc.xls进行链接时,abc.xls必须存在于这个目录下。 SQL中筛选单列中所有相同的数据 怎样插入一条完整记录 sql怎么存储int数组最好 怎么样在同一个表中设置2主键啊 这2种形式等效吗? oledb 读取excel substing()? C#,SqlServer字符串编码问题 在使用SQL Server中分发/订阅功能出现的问题,大家帮帮忙阿,高分相送 散分了:怎么在 WHERE 中使用 存储过程? 怎么把字段中的汉字删掉只保留数字 各位高手帮帮忙了看看这个 这两句有什么区别?
方法1:利用OpenRowSet()
例:Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0','d:\abc.xls';[sheet1$]);
方法2:建立链接服务器
例:
Exec sp_addlinkedserver
'abc',
'Excel',
'Microsoft.Jet.OLEDB.4.0',
'd:\abc.xls',
'Excel 5.0' Exec sp_addlinkedsrvlogin
@rmtsrvname='abc',
@useself='false'
执行完上述代码后,在“企业管理器”-“安全性”-“链接服务器”下就能看到名为“abc”的链接服务器。
若你要访问abc.xls中的sheet1,select * from abc...sheet1$。你在VB中可以通过ODBC连接数据库,以执行操作。
ICBOP00(跳水自杀的鱼) 说的方法可行
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。
[OLE/DB provider returned message: 找不到可安装的 ISAM。](2)第二種: Exec sp_addlinkedserver
'abc',
'Excel',
'Microsoft.Jet.OLEDB.4.0',
'd:\test\abc.xls',
'Excel 5.0' Exec sp_addlinkedsrvlogin
@rmtsrvname='abc',
@useself='false' select * from abc...sheet1$
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。
[OLE/DB provider returned message: 不可识别的数据库格式 'd:\test\abc.xls'。]==========================兩種方法分別要滿足什麽條件才能正常運行?
直接就可以了,excel是可以和数据库一样被SQL语句识别的
沒有條件,那爲什麽隨便用一個abc.xls,裏面寫幾個數字或字段,讀就會出現上面的錯誤?
Select * From OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=no;Database=D:\abc.xls', [Sheet1$])
必须注意EXCEL是单用户表格。在SQL Server中对Excel表进行操作时,不能另外打开EXCEL程序。当你使用链接服务器的方式对EXCELb表进行链接时,你所链接的EXCEL表必须存在才能链接。
例如你要对d:\test\abc.xls进行链接时,abc.xls必须存在于这个目录下。