求助啊,,例如如圖片所示,已有各個車次停站資訊,我需要得到每兩個停靠站點之間經過的列車數,

結果顯示如:
北京南 德州東 濟南 上海 ...........
北京南
德州東
濟南
上海
uj5u.com熱心網友回復:
這個容易啊。首先,得到兩個站經過的列車的串列,然后,查找這兩個站共有的列車。
假定你的資訊是保存在資料庫中的。代碼中借助了 3 個 ListBox,它們可以設定成不可見的。
'在串列框中查找相同字串的 API
Private Declare Function SendMessagebyString Lib _
"user32" Alias "SendMessageA" (ByVal hWND As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As Long
Private Const LB_FINDSTRINGEXACT = &H1A2 '在 ListBox 中精確查找
'獲取所有站名
Set rs = cn.Execute("SELECT DISTINCT stop_name FROM your_table ORDER BY stop_name")
List1.Clear
Do Until rs.EOF
List1.AddItem rs!stop_name
rs.MoveNext
Loop
'遍歷所有的車站對
For i = 0 To List1.ListCount - 2
'獲取此站的列車
Set rs = cn.Execute("SELECT train_number FROM your_table WHERE stop_name ='" & List1.List(i) & "'")
List2.Clear
Do Until rs.EOF
List2.AddItem rs!train_number
rs.MoveNext
Loop
For j = i + 1 To List1.ListCount - 1
'獲取彼站的列車
Set rs = cn.Execute("SELECT train_number FROM your_table WHERE stop_name ='" & List1.List(j) & "'")
List3.Clear
Do Until rs.EOF
If SendMessagebyString(List2.hWnd, LB_FINDSTRINGEXACT, -1, rs!train_number) > -1 Then List3.AddItem rs!train_number
rs.MoveNext
Loop
Debug.Print List1.List(i) & "<->" & List1.List(j)
If List3.ListCount = 0 Then
Debug.Print "沒有直通列車"
Else
For k = 0 To List3.ListCount -1
Debug.Print List3.List(k)
Next k
End If
Next j
Next i
uj5u.com熱心網友回復:
那這個要聯系到資料庫,請問要怎么連接呢?結果怎么輸出?uj5u.com熱心網友回復:
這個當年做過。不過做的是公交車。原理一樣的。你的表結構到是跟我當年的一樣。
表的自連接查詢。
uj5u.com熱心網友回復:
QQ:5507350 交流轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/96716.html
標籤:VBA
