我是一个vb的初学者,写了一段读取数据库的代码,但读出全是空值,请高手看看哪里出问题了。
代码如下
Dim RecNum As Integer, I As Integer
On Error Resume Next
Shujuku.Filter = "工程 (*.Mdb)|*.Mdb"
Shujuku.ShowOpen
If Shujuku.FileName <> "" Then
g_ProjectFile = Shujuku.FileName
Set g_MyWs = DBEngine.Workspaces(0)
Set g_d_Base = g_MyWs.OpenDatabase(g_ProjectFile)
Set Arecord = g_d_Base.OpenRecordset("观测数据表", dbOpenTable)
With Arecord
If .RecordCount > 0 Then
Point_MaxNum = .RecordCount
RecNum = Point_MaxNum
.MoveFirst
For I = 1 To RecNum
Obs_Time(I - 1) = .Fields(0)
Point_Name(I - 1) = .Fields(1)
Point_X(I - 1) = .Fields(2)
Point_Y(I - 1) = .Fields(3)
Point_H(I - 1) = .Fields(4)
If I < RecNum Then
.MoveNext
End If
Next I
End If
End With
Arecord.Close
End If
代码如下
Dim RecNum As Integer, I As Integer
On Error Resume Next
Shujuku.Filter = "工程 (*.Mdb)|*.Mdb"
Shujuku.ShowOpen
If Shujuku.FileName <> "" Then
g_ProjectFile = Shujuku.FileName
Set g_MyWs = DBEngine.Workspaces(0)
Set g_d_Base = g_MyWs.OpenDatabase(g_ProjectFile)
Set Arecord = g_d_Base.OpenRecordset("观测数据表", dbOpenTable)
With Arecord
If .RecordCount > 0 Then
Point_MaxNum = .RecordCount
RecNum = Point_MaxNum
.MoveFirst
For I = 1 To RecNum
Obs_Time(I - 1) = .Fields(0)
Point_Name(I - 1) = .Fields(1)
Point_X(I - 1) = .Fields(2)
Point_Y(I - 1) = .Fields(3)
Point_H(I - 1) = .Fields(4)
If I < RecNum Then
.MoveNext
End If
Next I
End If
End With
Arecord.Close
End If
解决方案 »
- VB6.0如何调用C++封装DLL中的回调函数?
- 在VB中怎样才能顺利读取另外一台电脑的文件?(不用客户端和服务器端什么的,也没有数据库)
- 新人新猪肉,不宰的傻!!!!!!!!!!!!!!!!!!!!!! ListView 控件?
- 请教:用MMCONTROL控件录音,如何控制录音质量(比如指定用22K或44K方式录音)?
- VB創建ACTIVEX時,打開網頁的方法
- 用adodb对象打开有密码的Access数据库的问题
- 水晶报表9.0如何刷新数据?
- 请问我从vb6.0里面copy出来(中文),粘贴到其他地方变成乱码了?
- vb6最新的补丁在哪下????
- 各位大侠,帮帮忙!!!!!!!!!
- VB读取和修改注册表会不会被杀毒软件当作木马程序而报毒?
- 各位懂VB的大大们请进来看看
观察到你前面是用OpenDatabase来打开数据库的,
请你尝试在使用Recordset.RecordCount属性之前,先执行一下Recordset.Movelast
否则RecordCount的值为0
2看看以下程序左边部分在哪定义的
Obs_Time(I - 1) = .Fields(0)
Point_Name(I - 1) = .Fields(1)
Point_X(I - 1) = .Fields(2)
Point_Y(I - 1) = .Fields(3)
Point_H(I - 1) = .Fields(4)
加一个redim preserve Obs_Time(Point_MaxNum)等等就行了。