表單上分別有treeview adodc datagrid控制項
treeview上的Node可以分兩層 第一層顯示的是我所選擇的.mdb檔案的完整路徑及檔名(可一次選擇二個以上的.mdb檔)
第二層顯示的是每個資料庫檔案所包含的資料表名稱
我的目的在於當我核取treeview上第二層node時(代表資料表名稱) datagird所顯示的資料也能跟著改變
我現在遇到的問題有兩個
第一個:當我核取treeview上第一層node時(代表資料庫檔案完整路徑) 我利用下面的程式碼先將選取Node.checked設為false 然後再利用msgbox出現警告標語 但是當我將msgbox按下確定後 選取的node.checked卻又變成true
第二個:我利用for next迴圈使treeview上只能單選(因為我希望datagrid只顯示一個資料表) 當treeview沒有第二層node被選取時我利用datagird.clearfields來清除datagrid上的資料 但是這個方法行不通
以上就是我的問題 衷心盼望哪位好心人士能教教我...
Private Sub treListOfTables_NodeCheck(ByVal Node As MSComctlLib.Node)
Dim ConnStr As String
 
 If Node.Checked = True And Node.Children >= 1 Then
  Node.Checked = False
  MsgBox "請選擇資料表", , "錯誤"
 ElseIf Node.Checked = True Then
  ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0" & ";Data Source=" & Node.Parent.Text
  For i = 1 To frmListOfRecord.treListOfTables.Nodes.Count
   If i <> Node.Index Then
    frmListOfRecord.treListOfTables.Nodes(i).Checked = False
   End If
  Next i
  frmListOfRecord.Adodc1.ConnectionString = ConnStr
  frmListOfRecord.Adodc1.CommandType = adCmdTable
  frmListOfRecord.Adodc1.RecordSource = Node.Text
  frmListOfRecord.Adodc1.Refresh
 Else
  If Node.Checked = False Then
   frmListOfRecord.DataGrid1.ClearFields
  End If
 End If

End Sub
文章標籤
全站熱搜
創作者介紹
創作者 vbqa 的頭像
vbqa

小吳 VBQA 程式設計討論

vbqa 發表在 痞客邦 留言(2) 人氣(37)