I modified your UpdateNode function to reduce flicker... let me know if this is better else, don't use it.

 Code:
Function UpdateNode
  Dim $SelectedItem, $node, $cna, $rsa, $item, $i
  $TreeView1.Enabled = 0
  $Button1.Enabled = 0
  $SelectedItem = $Treeview1.SelectedNode.Text
  $Node = $Treeview1.SelectedNode
  If Right($Node.Parent.Text,6) = "Tables"
    $Form1.Size = $System.Size(650,510)
    If NOT $ComboBox1.Text = "Microsoft Access"
      $CMDString = $CMDString + "Database="+$Node.Parent.Parent.Text+";"
    EndIf
    $cna = CreateObject("ADODB.Connection")
    $cna.ConnectionTimeOut = 15
    $cna.CommandTimeOut = 30
    $cna.Open($CMDstring)
    If $cna.State <> 1
      $nul= MessageBox($CMDString,"Error",16)
      $nul= MessageBox(@SERROR + @CRLF + @CRLF + "This Script Will Now Close.","Error",16)
      Quit()
    Else
      $=$ListView1.Columns.Clear
      $=$ListView1.Items.Clear
      $rsa = CreateObject("ADODB.RecordSet")
      $rsa.CursorType = 3
      $rsa.LockType = 3
      $rsa.Source = "SELECT * From "+$selecteditem
      $rsa.ActiveConnection = $cna
      $rsa.Open
      $rsa.MoveFirst
      $Form1.UseWaitCursor = 1
      $ListView1.BeginUpdate
      For Each $item in $rsa.Fields
        $=$ListView1.Columns.Add($System.ColumnHeader($item.Name,100,$System.HorizontalAlignment_Left))
      Next
      $rsa.MoveFirst
      While NOT $rsa.EOF
        Dim $x
        $x = 1
        For Each $item in $rsa.Fields
          If $x = 1
            $i=$ListView1.Items.Add($System.ListViewItem($item.Value))
          Else
            $=$i.SubItems.Add($System.ListViewSubItem($item.value))
          EndIf
          $x = $x + 1
        Next
        $rsa.MoveNext
      Loop
    EndIf
    $ListView1.EndUpdate
    $Form1.UseWaitCursor = 0
    $cna.Close
    $rsa.Close
  EndIf
  $TreeView1.Enabled = 1
  $Button1.Enabled = 1
  $node = ""
EndFunction