📄 数据表数据读入到字符串数组.bas
字号:
Attribute VB_Name = "Module1"
Option Explicit
Public Const WantNum = 10
Public Const TotalBus = 48 '总共统计的长春市公交车次数
Public Const TotalBN = 64 '最高公交车次号
Public Const TotalStation = 232 '总共统计的长春市公交站点数
Public Const TotalSNew = 182 '同名合并后新编公交站点总数
Public Const TotalSN = 1034 '新编的最高公交站点号
Public Const MidSN = 1001 '同名站点合并后用的第一个新号
Public Const BXDistance = 0.1 '周围站点间距离(步行距离)(以公里单位)
Public XSBusnumStationnumsStr(1 To 100, 0 To 1) As String
Public XSStationName(1 To 2000) As String
Public CXBusnumStationnumsStr(1 To 100, 0 To 1) As String
Public CXStationName(1 To 2000) As String
Public SamenameStationStr(1000 To 2000) As String
Public CXCircleStationStr(1 To 2000) As String
Public XSCircleStationStr(1 To 2000) As String
Public StationnumBusnumsStr(1 To 2000) As String
Public Longitude(1 To 232) As Double
Public Latitude(1 To 232) As Double
'不同的路阻类型值
Public ImpedenceDistance(1 To 100, 0 To 1, 1 To 232) As Single
Public ImpedenceTime(1 To 100, 0 To 1, 1 To 232) As Single
Public ImpedenceCost(1 To 100, 0 To 1, 1 To 232) As Single
Public ImpedenceSyn(1 To 100, 0 To 1, 1 To 232) As Single
Public Impedence As Single
Public FieldStr1(1 To 2000) As String
Public FieldStr2(1 To 100, 0 To 1) As String
Public FieldStr3(1 To 100, 0 To 1, 1 To 300) As String
Public StartName As String '起点站点名
Public EndName As String '终点站点名
Public StartNum As Integer '起点站点号
Public EndNum As Integer '终点站点号
'--------------------------------------------------------------------------
Public Funit As String '路阻的度量方法---距离、时间、票费、综合 _
Distance , Time, Cost, Syn
Public ChkValue As Integer 'Check Value---据此决定所求的出行方式的种类
Public DirectBool As Boolean '记录各种方式的有无(没有为false)
Public Trans1Bool As Boolean
Public Trans2Bool As Boolean
'数据表到FeildStr1()数组(共读两列)
Public Sub ReadTable1(TName As String, RName As String, _
FName1 As String, FName2 As String)
Dim db As Database
Dim rs As Recordset
Dim i As Integer
'初始化
For i = 1 To 2000
FieldStr1(i) = ""
Next i
Set db = DBEngine.OpenDatabase(TName)
Set rs = db.OpenRecordset(RName, dbOpenTable)
With rs
.MoveFirst
Do While Not .EOF
i = Val(.Fields(FName1))
FieldStr1(i) = .Fields(FName2)
.MoveNext
Loop
End With
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub
'数据表到FieldStr2()数组(共读三列)
Public Sub ReadTable2(TName As String, RName As String, _
FName1 As String, FName2 As String, _
FName3 As String)
Dim db As Database
Dim rs As Recordset
Dim i As Integer
Dim j As Integer
Dim k As Integer
'初始化
For i = 1 To 100
For j = 0 To 1
FieldStr2(i, j) = ""
Next j
Next i
Set db = DBEngine.OpenDatabase(TName)
Set rs = db.OpenRecordset(RName, dbOpenTable)
With rs
.MoveFirst
Do While Not .EOF
i = Val(.Fields(FName1))
k = Val(.Fields(FName2))
FieldStr2(i, k) = .Fields(FName3)
.MoveNext
Loop
End With
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub
'数据表到FieldStr3()数组(共读四列)
Public Sub ReadTable3(TName As String, RName As String, _
FName1 As String, FName2 As String, _
FName3 As String, fieldn As String)
Dim db As Database
Dim rs As Recordset
Dim i As Integer
Dim j As Integer
Dim k As Integer
'初始化
For i = 1 To 100
For j = 0 To 1
For k = 1 To TotalStation
FieldStr3(i, j, k) = ""
Next k
Next j
Next i
Set db = DBEngine.OpenDatabase(TName)
Set rs = db.OpenRecordset(RName, dbOpenTable)
With rs
.MoveFirst
Do While Not .EOF
i = Val(.Fields(FName1))
j = Val(.Fields(FName2))
k = Val(.Fields(FName3))
FieldStr3(i, j, k) = .Fields(fieldn)
.MoveNext
Loop
End With
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -