【VBA树控件学习三】新增树TreeView节点

哈喽,手机边亲爱的你还好吗?大家新快乐!

今天,我接着给大家分享一下treeview。这次我们要慢慢的加大难度了,之前树上显示的数据都是提前录入好的,显然是不够合理,那接下去我们就要给树做个新增节点的功能,好的,废话不多说,我们直接上干货。

【VBA树控件学习三】新增树TreeView节点

01、建窗体

这次我们就不需要新建的表的,还是沿用之前的那张表,如果你是刚关注我的用户,点击这个地址就行了:

这次,我们需要在原来的窗体上添加一个新增按钮,用于打开新增窗体,如下图,按钮的名称为:btnAdd

【VBA树控件学习三】新增树TreeView节点

接下去我们需要添加一个新的窗体,窗体名称保存为:frmAdd。在新增窗体上添加几个控件,一个组合框,一个文本框,两个按钮,如下图

【VBA树控件学习三】新增树TreeView节点

组合框的名称:ProductParentID,行来源为:SELECT tblProduct.ProductID, tblProduct.ProductName FROM tblProduct; 

文件框名称为:ProductName

保存按钮的名称:btnSave

取消按钮的名称:btnClose

【VBA树控件学习三】新增树TreeView节点

02、添加代码

首先,我们先添加打开新增窗体的代码

Private Sub btnAdd_Click()
    DoCmd.OpenForm "frmAdd", acNormal
End Sub

接下去就是新增窗体上的代码,一个是保存按钮的代码,一个是取消按钮的代码,代码不复杂,就是在正常的新增时,自动生成相应的编号,代码什么意思,具体的我们在视频中讲解。

'取消按钮
Private Sub btnClose_Click()
    DoCmd.Close acForm, Me.Name
End Sub
'保存按钮
Private Sub btnSave_Click()
    '判断不能为空
    If IsNull(Me.ProductName) Then
        MsgBox "产品名称不能为空。", vbExclamation
        Me.ProductName.SetFocus
        Exit Sub
    End If
    Dim rst As Object ' DAO.Recordset
    Dim strProductID As String
    Dim strWhere As String
    '判断上级键值是否为空
    If Not IsNull(Me.ProductParentID) Then
        strWhere = "ProductParentID='" & Me.ProductParentID & "'"
    Else
        strWhere = "ProductParentID is null"
    End If
    '取到上级键值的最大值
    strProductID = Nz(DMax("ProductID", "tblProduct", strWhere), "")
    '生成编号
    strProductID = Me!ProductParentID & Format(Val(Right(strProductID, 4)) + 1, "0000")

    '  Debug.Print strProductID

    Set rst = CurrentDb.OpenRecordset("tblProduct", 2) '打开记录集

    rst.AddNew
    rst!ProductParentID = Me!ProductParentID
    rst!ProductName = Me!ProductName
    rst!ProductID = strProductID
    rst.Update
    MsgBox "保存成功。", vbInformation
    Form_frmTreeView.Form_Load '树重新加载一下

    Me.ProductName = Null
    Me.ProductParentID = Null
    Me.ProductParentID.RowSource = Me.ProductParentID.RowSource '刷新
    rst.Close
    Set rst = Nothing

End Sub

最后还一步,非常关键的操作,就是把树控件加载事件的Private 改成Public,如果未修改,则刷新会报错。

【VBA树控件学习三】新增树TreeView节点

03、运行测试

最后,就是运行测试了。

【VBA树控件学习三】新增树TreeView节点

 

【VBA树控件学习三】新增树TreeView节点

END

上一篇:【Excel】VBA编程 01 入门


下一篇:getmaillist