7,763
社区成员
发帖
与我相关
我的任务
分享
db.RunSelectSQL ("SELECT 中文名 From 数据信息 WHERE (数据集代码 = 'A')")
ListElmtCount = db.rs.RecordCount '查询一共有多少条记录
请看关于Recordset的open方法的说明:
Recordset.open Source,ActiveConnection[,CursorType,LockType,Options]
Recordset对应你的rs
Source是你的sql语句变量,对应于sql
ActiveConnection是一个打开的连接,对应于你的cn
CursorType是游标类型,对应于你的第一个1
LockType是锁类型,用于控制并发,对应于你的第二个1
当你修改了数据库中的列标题(准确的说法叫做“字段名称”)后,需要相应的修改sql变量中的sql语句,否则查询时会报错。
关于CursorType和LockType的详细意义,以你目前的情况可以不用太关注。如果你确实有兴趣想了解,请往下见:
CursorType:游标类型,定义如下
0(adOpenForwardOnly): 只能在Recordset的记录中向前移动,但速度最快。
1(adOpenKeyset):可以在Recordset中任意移动,其他用户所做的记录修改可见,但其他用户添加的记录不可见,删除的记录字段值不能被使用。
2(adOpenDynamic):可以在Recordset中任意移动,其他用户增、删、改的记录都可见,但速度最慢。
3(adOpenStatic):可以在Recordset中任意移动,其他用户增、删、改的记录都不可见。
LockType:并发控制
0(adLockReadOnly):recordset的记录为只读
1(adLockPessimistic):只要保持Recordset为打开,别人就无法编辑该记录集中的记录.
2(adLockOptimistic):当update recordset中的记录时,将记录加锁
3(adLockBatchOptimistic):以批模式时更新记录时加锁
'*************数据库**************************
Public Cnn As New ADODB.Connection
Public rs As New ADODB.Recordset
'Const Scnn = "Provider=SQLOLEDB.1;INTEGRATED Security=SSPI;Persist Security Info= FALSE;Initial Catalog=气象辐射观测数据文件数据库;Data Source=10.185.59.254;"
Const Scnn = "Provider=SQLOLEDB.1;Password=superg;Persist Security Info=true;User ID=sa;Initial Catalog=气象辐射观测数据文件数据库;Data Source=10.185.59.254;"
'****打开数据库*****************************
Public Sub OpenCnn()
If Cnn Is Nothing = TURE Then Set Cnn = New ADODB.Connection '建立数据库连接对像
If Cnn.State <> 1 Then Cnn.Open Scnn '打开数据库连接
End Sub
'****关闭数据库*****************************
Public Sub CloseCnn()
If Cnn.State = 1 Then Cnn.Close '打开数据库连接
End Sub
'****执行数据操作*****************************
Public Function RunSelectSQL(ByVal SQLString As String) As ADODB.Recordset
Me.OpenCnn
If rs.State = 1 Then rs.Close
'rs.Open SQLString, Cnn, adOpenDynamic, adLockOptimistic
'为什么上面这句不行,一定要用下面的语句,如果用下面的我的其他查询显示就用不了了
rs.Open SQLString, Cnn, adOpenStatic, adLockReadOnly
End Function
Dim rs as adodb.recordset
Dim sCmd as string
set rs =new adodb.recordset
sCmd="SELECT 中文名 From 数据信息 WHERE (数据集代码 = 'A')"
rs.Open sCmd, db, adOpenStatic, adLockReadOnly, adCmdText
ListElmtCount = rs.RecordCount