【CSDN】【为什么我的树型目录里面添加的帐号节点全部相同】
Option Explicit
Private strServerName As String
Private conCheckbook As Connection
Private rsCheckbook As Recordset
Private strSql As String
Dim i As Integer
Private Sub getSQLServerName()
If GetSetting("OnlineBankingDB", "SQL Server Name", "ServerName") = "" Then
strServerName = InputBox("请输入数据库服务器名称")
SaveSetting "OnlineBankingDB", "SQL Server Name", "ServerName", strServerName
Else
strServerName = GetSetting("OnlineBankingDB", "SQL Server Name", "ServerName")
End If
End Sub
Private Sub connectionSQLServer()
Set conCheckbook = New Connection
Set rsCheckbook = New Recordset
On Error GoTo errorhandler
Call getSQLServerName
With conCheckbook
.Provider = "sqloledb"
.ConnectionString = "user id=sa;" & _
"password=;" & _
"data source=" & strServerName & _
";initial catalog=OnlineBankingDB"
.Open
End With
Exit Sub
errorhandler:
MsgBox Err.Number & Err.Source & Err.Description
End Sub
Private Sub Form_Load()
If strServerName = "" Then getSQLServerName
Call connectionSQLServer
If rsCheckbook.State = 1 Then rsCheckbook.Close
rsCheckbook.CursorLocation = adUseClient
strSql = "select * from Customer"
rsCheckbook.Open strSql, conCheckbook, adOpenDynamic, adLockOptimistic
If rsCheckbook.RecordCount > 0 Then
rsCheckbook.MoveFirst
Do While Not rsCheckbook.EOF
TreeView1.Nodes.Add , , "key" & Trim(rsCheckbook.Fields("cAccountNumber")), Rs.Fields("cAccountNumber")
If IsNull(rsCheckbook.Fields("vCheckBookNumber")) = False Then
TreeView1.Nodes.Add "key" & Trim(rsCheckbook.Fields("cAccountNumber")), tvwChild, "key" & Trim(rsCheckbook.Fields("vCheckBookNumber")), rsCheckbook.Fields("vCheckBookNumber")
findCheckbookDetail "key" & Trim(rsCheckbook.Fields("cAccountNumber")), rsCheckbook.Fields("vCheckBookNumber")
End If
rsCheckbook.MoveNext
Loop
For i = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(i).Expanded = True
Next
End If
End Sub
Private Sub findCheckbookDetail(key As String, checkbook As String)
Dim rsCheckbookDetail As Recordset
Set rsCheckbookDetail = New Recordset
If rsCheckbookDetail.State = 1 Then rsCheckbookDetail.Close
rsCheckbookDetail.CursorLocation = adUseClient
strSql = "select * from TransactionOfCheckBook where vInstructions='未兑' and vCheckBookNumber='" & checkbook & "'"
rsCheckbookDetail.Open strSql, conCheckbook, adOpenDynamic, adLockOptimistic
If rsCheckbookDetail.RecordCount > 0 Then
rsCheckbookDetail.MoveFirst
Do While Not rsCheckbookDetail.EOF
TreeView1.Nodes.Add key, tvwChild, "key" & Trim(rsCheckbookDetail.Fields("vCheckNumber")), rsCheckbookDetail.Fields("vCheckNumber")
rsCheckbookDetail.MoveNext
Loop
End If
Set rsCheckbookDetail = Nothing
End Sub