打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
vb读取xls文件而不打开excel进程 ado数据库方法读取xls

'Read Excel File Using ADO
Public Function Read_Excel _
         (ByVal sFile _
          As String) As ADODB.Recordset
      '函数参数
      On Error GoTo fix_err '有错去fix_err那个标签
      Dim rs As ADODB.Recordset '搞了个对象:)
      Set rs = New ADODB.Recordset '设置了个对象rs
      Dim sconn As String '搞了个字串

      rs.CursorLocation = adUseClient '对象游标位
      rs.CursorType = adOpenKeyset '游标类型
      rs.LockType = adLockBatchOptimistic '对象之锁定(我想要独占!除非你换location)

      sconn = "DRIVER=Microsoft Excel Driver (*.xls);" & "DBQ=" & sFile '字串设置,sFile是传参数的,用excel驱动去读这个文件
      rs.Open "SELECT * FROM [sheet1$]", sconn '选取全部
      Set Read_Excel = rs '新对象完全等于rs旧对象
      Set rs = Nothing '干掉旧对象(临时)
      Exit Function
fix_err:
      Debug.Print Err.Description + " " + _
                  Err.Source, vbCritical, "Import"
      Err.Clear
End Function

于是你就有了一个对象Read_Excel ,可以使用本对象去查任何你要的东东;

找对象要找好对象:)

附录,对付对象的方法供参考:
rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N     将记录指针移到数据表第N行
rs.absolutepage=N         将记录指针移到第N页的第一行
rs.pagesize=N             设置每页为N条记录
rs.pagecount              根据 pagesize 的设置返回总页数
rs.recordcount            返回记录总数
rs.bof                    返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof                    返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete                 删除当前记录,但记录指针不会向下移动
rs.addnew                添加记录到数据表末端
rs.update                 更新数据表记录
---------------------------------------
Recordset对象方法
Open方法
recordset.Open Source,ActiveConnection,CursorType,LockType,Options
Source
Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。
ActiveConnection
Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信(ConnectionString)的字符串参数。
CursorType
Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
----------------------------------------------------------------------------------------------------------------------
常数                           常数值            说明
----------------------------------------------------------------------------------------------------------------------
adOpenForwardOnly        0          缺省值,启动一个只能向前移动的游标(Forward   Only)。
adOpenKeyset                 1          启动一个Keyset类型的游标。
adOpenDynamic             2         启动一个Dynamic类型的游标。
adOpenStatic                  3          启动一个Static类型的游标。
----------------------------------------------------------------------------------------------------------------------
以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下说明他们之间的区别。
----------------------------------------------------------------------------------------------------------------------
LockType
Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:
----------------------------------------------------------------------------------------------------------------------
          常数                   常数值               说明
----------------------------------------------------------------------------------------------------------------------
adLockReadOnly            1      缺省值,Recordset以只读启动无法运 行AddNew、UpdatDelete
adLockPrssimistic          2     当数据源正在更新时,系统会暂时锁住其他用户动作保持数据一致
adLockOptimistic           3     当数据源正在更新时,系统并不会锁住其他用户的动作。
adLockBatchOptimistic 4     当数据源正在更新时,其他用户必须将 CursorLocation属性改为                                                            adUdeClientBatch才能对数据进行增、删、改的操作。
Options

常    量
 
说    明
 
adCmdText
 
指示提供者应将sCommandText赋值为命令的文本定义
 
adCmdTable
 
指示ADO应生成SQL查询,以便从sCommandText命名的表中返回所有行
 
adCmdTableDirect
 
指示提供者应从sCommandText命名的表中返回所有行
 
adCmdTable
 
指示提供者应将sCommandText赋值为表名
 
adCmdStoredProc
 
指示提供者应将sCommandText赋值为存储过程
 
adCmdUnknown
 
指示sCommandText参数中的命令类型未知
 
adExecuteAsync
 
指示命令应该异步执行

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
asp中rs.recordcount 返回值总是为-1的解决方法
RecordSet对象打开数据表的语法
VB和数据库
Recordset对象的一些方法和属性
提高ADO性能的优秀经验(转)
一小时ASP入门
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服