求救!高手进来看看 关于
我接触VB不久,刚按照书本上的步骤用VB编了个停车塔管理系统,刚做了一半,到某一步的时候编译报错,提示“无效外部过程”,书本上说:“以NWIND.MDB数据库中的Products数据表为例,读取所有的数据和字段,首先声明两个对象变量:
Public db As Database '定义一个数据库对象变量
Public rs As Recordset' 定义一个数据录集对象变量”
接着分别使用OpenDatabase 和 OpenRecordset 方法,读取NWIND.MDB数据库和Product
数据表,做法如下:
Set db = OpenDatabase(App.Path & "\NWIND.MDB", True, False)
Set rs = db.OpenRecordset("Select * From Products Order By ProductID", dbOpenDynaset)”
我编译的代码在下边,才做了一半,按钮还没编译,运行时提示“无效的外部过程”,可书上说到这一步运行可以看到有车辆图案和分组的界面了。还有,这个是用到MSFlextGrid控件的,还有DAO对象,另外我还下载了一个NWIND.MDB。
请高手修改下代码,或告知如何正确操作才能完成这个系统,小弟感激不尽!
通用 声明
Option Explicit
Const TotalFloor As Byte = 15
Const TotalGrid As Byte = 4
Public db As Database
Public rs As Recordset
Public pic As Picture
Set db = OpenDatabase(App.Path & "\NWIND.MDB", True, False)
Set rs = db.OpenRecordset("Select * From Products Order By ProductID", dbOpenDynaset)
Form Load
Private Sub Form_Load()
Dim i As Integer
On Error GoTo LoadError
'加载停车图案
Set pic = LoadPicture(App.Path & "\cars.ico")
'开启数据库
Set db = OpenDatabase(App.Path & "\Park.MDB", False, False)
SetGrid '设置停车塔结构
Open_Table '读取数据录集
If rs.RecordCount > 0 Then '是否有车辆停放
rs.MoveLast: rs.MoveFirst
For i = 1 To rs.RecordCount
ArrangeCar '显示方格里的车辆图案
rs.MoveNext '换下个停车记录
Next
End If
Exit Sub
LoadError:
MsgBox Err.Description
End Sub
Public Sub SetGrid() '设置停车塔结构
Dim i As Integer
MSFlexGrid1.Rows = TotalFloor + 1 '停车塔的总行数
MSFlexGrid1.Cols = TotalGrid + 1 '停车塔的总列数
'设置第0列文字标题
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = " 楼层"
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = " 第一格"
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = " 第二格"
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = " 第三格"
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = " 第四格"
MSFlexGrid1.Col = 0 '各楼层的标示
For i = 1 To TotalFloor
MSFlexGrid1.Row = i
MSFlexGrid1.Text = i
Next
End Sub
Public Sub Open_Table() '读取数据录集
Dim sql As String
sql = "Select * From Car Order By LicensePlate"
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
End Sub
Public Sub ArrangeCar() '显示方格里的车辆图案
MSFlexGrid1.Row = rs![Floor]
MSFlexGrid1.Col = rs![Grid]
Set MSFlexGrid1.CellPicture = pic
Exit Sub
End Sub
Command Click1
Private Sub Command1_Click()
End Sub
Command Click2
Private Sub Command1_Click()
End Sub
MSFlexGrid1 Click
Private Sub MSFlexGrid1_Click()
End Sub
[解决办法]
检查字段名和数据库是否对应...