首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

2个基础有关问题,请高手帮忙解答一下。多谢

2012-03-09 
2个基础问题,请高手帮忙解答一下。谢谢!问题1:想要双击后刷新一下frminfo窗体中的MSFlexGrid1.控件显示的内

2个基础问题,请高手帮忙解答一下。谢谢!
问题1:
想要双击后刷新一下frminfo窗体中的MSFlexGrid1.控件显示的内容:
Private Sub trv_DblClick() '只要在这个TreeView1加双击事件,并且用 TreeView1.SelectedItem.Text就能取得选中的了项目
  Dim rs As New ADODB.Recordset
  Dim r As Integer
  If trv.SelectedItem.Children = 0 Then
  MsgBox "你选择是的 :" & Trim(trv.SelectedItem.Text)
  rs.Open "select * from bumenbiao ", cn, 1, 3 经过跟踪cn连接字符串是正确的。但rs为nothing
Set frminfo.MSFlexGrid1.DataSource = rs 错误为实时错误 91 对象变量或with块变量未设置
  frminfo.MSFlexGrid1.Refresh
rs.close
Set rs = Nothing
  Else
  MsgBox "您所选择的不是末级科目,请重新选择!"
  End If
End Sub

问题2
想设计两个按钮,能让它实现在树控件中上下翻动。想用node 但是不知道怎么写如何判断是否到了最后一个子点及移动到下一节点??
Private Sub Command3_Click()
Dim nodex As node
Call clearfrminfo '向后浏览
Set nodex = frmtree.trv.SelectedItem
If nodex.Index <> frmtree.trv.Node??????
以及如何移动到下一个节点上去

End If
End Sub

 树控件的生成方式如下:
Private Sub Form_Load()
Dim rs As New ADODB.Recordset '写入数据库是OK的
Dim strCn As String, strSQL As String

Set Root = trv.Nodes.add(, , , "各个部门名称", 1) 'Node是分层对象,因为为最顶上层的,所以前面两逗号为里面为空'
strCn = "Provider=sqloledb;server=.;Database=sxcpmc;Uid=" & arr(0) & ";Pwd=" & arr(1) & ";"
cn.Open strCn
rs.Open "select distinct shajibumen from bumenbiao", cn, 1, 3

Do While Not rs.EOF
  Set cnode = trv.Nodes.add(Root, 4, , rs!shajibumen, 2, 1) ' 4是表示默认为子节点,Root的子节点,本节点为cnode
  cnode.Tag = rs!shajibumen
  '----------------------------二级分类------------------------
  strSQL = "select * from bumenbiao where dingcen<>0 and shajibumen='" & rs!shajibumen & "'"
  Set prs = OpenRecordset(strSQL)
  Do While Not prs.EOF
  Set pnode = trv.Nodes.add(cnode, 4, , prs!bumen, 3, 1)
  'cnode的子节点,本节点为pnode ' 顺序为: 索引号 相对位置 关键字 内容 图标号
  pnode.Tag = prs!bumen
  prs.MoveNext
  Loop
  prs.close
Set prs = Nothing
rs.MoveNext
  Loop
  rs.close
Set rs = Nothing
Root.Expanded = True '不收缩整个节点。

  For i = 1 To trv.Nodes.Count
  frminfo.Combo1.AddItem trv.Nodes.Item(i).Text
  Next
End Sub

[解决办法]
Dim rs As New ADODB.Recordset
Dim r As Integer
If trv.SelectedItem.Children = 0 Then
MsgBox "你选择是的 :" & Trim(trv.SelectedItem.Text)
rs.Open "select * from bumenbiao ", cn, 1, 3 经过跟踪cn连接字符串是正确的。但rs为nothing
Set frminfo.MSFlexGrid1.DataSource = rs 错误为实时错误 91 对象变量或with块变量未设置


===============
你已经使用了new定义rs,所以rs.Open "select * from bumenbiao ", cn, 1, 3 肯定不会是nothing,你再测测看

Set frminfo.MSFlexGrid1.DataSource = rs 错误为实时错误 91 对象变量或with块变量未设置
这句的报错更是奇怪,既是rs是nothing,此句也应该是正确的,出错的可能是因为frminfo.MSFlexGrid1b不正确:
frminfo:是否是一个工程中的窗口名称,
MSFlexGrid1:是否在frminfo窗口中放置(设计时)了一个MSFlexGrid控件,检查其name属性
[解决办法]
是的
你已经使用了new定义rs,所以rs.Open "select * from bumenbiao ", cn, 1, 3 肯定不会是nothing,你再测测看

热点排行