⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 一个数据库,关于如何在treeview中连接不同的数据库表
💻 FRM
📖 第 1 页 / 共 3 页
字号:
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim f As String '申请变量=存放文件地址
Dim cNodeIndex As Integer
Dim cnodekey As String
Private Sub addorg_Click() '菜单增加组'***************************************************
    open_close resorg
    resorg.Open "select * from org order by id", con, adOpenDynamic, adLockOptimistic
    Set Combo2.DataSource = resorg
    
    
    resorg.MoveFirst
    resorg.Find "id='new'"
    If resorg.EOF = True Then
        Set nod1 = Form1.TreeView1.Nodes.add("root", tvwChild, "r" & "new", "新建文件夹", 2)
        resorg.AddNew
        resorg(0).Value = "new"
        resorg(1).Value = "新建文件夹"
        resorg.Update
        Exit Sub
    End If
    
    Dim i As Integer '循环查找"id='new'" & i 如果有就 i+1,循环 加节点
    i = 1            '找个最小的数  加
    While True
        resorg.MoveFirst
        resorg.Find "id='new" & i & "'"
        If resorg.EOF = True Or resorg.BOF = True Then
            Set nod1 = Form1.TreeView1.Nodes.add("root", tvwChild, "r" & "new" & i, "新建文件夹(" & i & ")", 2)
            resorg.AddNew
            resorg(0).Value = "new" & i
            resorg(1).Value = "新建文件夹(" & i & ")"
            resorg.Update
            Exit Sub
        Else
            i = i + 1
        End If
    Wend
    deleteorg.Enabled = False
End Sub

Private Sub deleteorg_Click() '菜单删除组'***************************************************
    Dim s As String
    open_close resorg
    resorg.Open "select * from org", con, adOpenDynamic, adLockOptimistic
    
    TreeView1.Nodes.Remove cNodeIndex
    s = Right(cnodekey, Len(cnodekey) - 1)
    
    resorg.Find "id='" & s & "'"
    If resorg.EOF = True Then
        Exit Sub
    End If
    resorg.delete adAffectCurrent
    resorg.Update
    deleteorg.Enabled = False
End Sub

Private Sub query_Click() '菜单查询
    Command1_Click
End Sub

Private Sub add_Click() '菜单增加
    Command2_Click
End Sub

Private Sub rework_Click() '菜单修改
    Command3_Click
End Sub

Private Sub delete_Click() '菜单删除
    Command4_Click
End Sub

Private Sub save_Click() '菜单保存
    Command5_Click
End Sub

Private Sub exit_Click() '菜单退出
    Command6_Click
End Sub

Private Sub Combo1_Change()
    Text1(2).Text = Combo1.Text
End Sub

Private Sub Combo1_Click()
    Text1(2).Text = Combo1.Text
End Sub

Private Sub Command1_Click() '查询记录
    open_close rescom
    rescom.Open "select * from communications"
    
    If Not Text3.Text = "" Then
        rescom.Find "身份证号='" & Text3.Text & "'"
        Text2.Text = ""
    ElseIf Not Text2.Text = "" Then
        rescom.Find "姓名='" & Text2.Text & "'"
        Text3.Text = ""
    Else
        MsgBox "输入空值或错误!", vbCritical + vbOKOnly, "错误"
        Exit Sub
    End If
    If rescom.EOF Then
        Exit Sub
    End If
    display                        '显示文本
    'rescom.Close
    Command3.Enabled = True '修改
    Command4.Enabled = True '删除
    rework.Enabled = True
    delete.Enabled = True
End Sub

Private Sub Command2_Click() '增加记录
    open_close rescom
    rescom.Open "select * from communications"
    
    Dim i As Integer '清空文本框
    For i = 0 To 16
        Text1(i).Text = ""
    Next
    Text1(2).Text = "男"
    Image1.Picture = Nothing
    
    rescom.AddNew
    text_allow '允许输入
    Command1.Enabled = False '查询
    Command2.Enabled = False '增加
    Command3.Enabled = False '修改
    Command4.Enabled = False '删除
    Command5.Enabled = True  '保存
    Command7.Visible = True  '取消
    
    TreeView1.Enabled = False
    save.Enabled = True
    rework.Enabled = False
    delete.Enabled = False
End Sub

Private Sub Command3_Click() '修改当前记录
    open_close rescom
    rescom.Open "select * from communications"
    position '找记录
    text_allow '允许输入
    
    Command1.Enabled = False '查询
    Command2.Enabled = False '增加记录
    Command3.Enabled = False '修改
    Command4.Enabled = False '删除
    Command5.Enabled = True  '保存
    Command7.Visible = True  '取消
    TreeView1.Enabled = False
    save.Enabled = True
    rework.Enabled = True
    delete.Enabled = True
End Sub

Private Sub Command4_Click() '删除
    position '定位
    If rescom.EOF = True Then
        Command4.Enabled = False '删除
    Else
        Dim t As String
        t = MsgBox("删除操作不可恢复!" + Chr(13) + Chr(9) & "您确认要“删除”该记录吗?", vbExclamation + vbOKCancel + vbDefaultButton2, "删除")
        If t = vbOK Then
            rescom.delete adAffectCurrent    '删除当前记录
            open_close rescom
            rescom.Open "select * from communications order by ""身份证号""", con, adOpenDynamic, adLockOptimistic
            Dim i As Integer '清空文本框
            For i = 0 To 16
                Text1(i).Text = ""
            Next
            Image1.Picture = Nothing
            Text1(2).Text = "男"
            text_disallow '不允许输入
            
            TreeView1.Nodes.Clear
            tree_refresh
            
            Command3.Enabled = False '修改
            Command4.Enabled = False '删除
            rework.Enabled = False
            delete.Enabled = False
        End If
    End If
    End Sub
    
    Private Sub Command5_Click() '保存当前记录
    Dim chunks() As Byte
    Dim i As Integer                  '保存
    If Text1(0).Text = "" Then
    MsgBox "身份证号不能为空!", vbInformation + vbOKOnly, "保存"
    Text1(0).SetFocus
    Exit Sub
    ElseIf Combo2.Text = "" Then
    MsgBox "类别不能为空!", vbInformation + vbOKOnly, "保存"
    Combo2.SetFocus
    Exit Sub
    ElseIf Text1(1).Text = "" Then
    MsgBox "姓名不能为空!", vbInformation + vbOKOnly, "保存"
    Text1(1).SetFocus
    Exit Sub
    ElseIf Text1(2).Text = "" Then
    MsgBox "性别不能为空!", vbInformation + vbOKOnly, "保存"
    Text1(2).SetFocus
    Exit Sub
    Else
    For i = 0 To 16                    '保存
    If Not Text1(i) = "" Then         '保存
    rescom(i).Value = Text1(i).Text  '保存
    End If                            '保存
    Next                               '保存
    rescom(17).Value = Combo2.Text '保存
    
    If Not Len(f) = 0 Then
    Open f For Binary As #1 '打开文件
    Dim flength As Long
    flength = LOF(1) '求打开的文件长度,文件号#1
    
    Dim t As Integer '按单位截取多余部分
    t = flength Mod 16384
    
    ReDim chunks(t) '读取数据
    Get 1, , chunks() '写入数据
    rescom(18).AppendChunk chunks '分段写入数据库
   
    
    ReDim chunks(16384) '单位长度的数据块
    offset = offset + t '数据指针的位置
    While offset < flength
    Get 1, , chunks()
    rescom(18).AppendChunk chunks() '分段写入数据库
   
    offset = offset + 16384
    Wend
    End If
    
    rescom.Update                      '保存
    Close #1 '关闭#1号文件
  Kill App.Path & "\photo.tmp"
    rescom.Close    '刷新treeview( 添加到treeview )
    rescom.Open "select * from communications order by ""身份证号""", con, adOpenDynamic, adLockOptimistic
    TreeView1.Nodes.Clear
    tree_refresh
    End If
    text_disallow '不允许输入
    
    
    For i = 0 To 16 '清空文本框
    Text1(i).Text = ""
    Next
    Image1.Picture = Nothing
    
    Command1.Enabled = True '查询
    Command2.Enabled = True '增加
    Command3.Enabled = False '修改
    Command4.Enabled = False '删除
    Command5.Enabled = False '保存
    Command7.Visible = False '取消
    
    TreeView1.Enabled = True
    save.Enabled = False
    rework.Enabled = False
    delete.Enabled = False

End Sub

Private Sub Command6_Click() '退出
open_close resorg
open_close rescom
End
End Sub

Private Sub Command7_Click() '取消
    resorg.Cancel
    rescom.CancelBatch adAffectCurrent
    
    Dim i As Integer '清空文本框
    For i = 0 To 16
        Text1(i).Text = ""
    Next
    Text1(2).Text = "男"
    text_disallow '不允许输入
    
    Command1.Enabled = True  '查询
    Command2.Enabled = True  '增加
    Command3.Enabled = False '修改
    Command4.Enabled = True '删除
    Command5.Enabled = False '保存
    Command7.Visible = False '取消
    Image1.Picture = Nothing
    TreeView1.Enabled = True
    save.Enabled = False
End Sub


Private Sub Form_Load() '窗体加载
    connect
    resorg.CursorLocation = adUseClient
    rescom.CursorLocation = adUseClient
    resorg.Open "select * from org order by id", con, adOpenDynamic, adLockOptimistic
    rescom.Open "select * from communications order by ""身份证号""", con, adOpenDynamic, adLockOptimistic
    
    Form1.WindowState = 0 '正常显示窗体
    Set Combo2.DataSource = resorg
    resorg.MoveFirst
    While Not resorg.EOF
        Combo2.AddItem resorg(1)
        resorg.MoveNext
    Wend
    tree_refresh
    
    text_disallow
    
    Command3.Enabled = False '修改
    Command4.Enabled = False '删除记录
    Command5.Enabled = False '保存
    Command7.Visible = False '取消

End Sub

Private Sub Form_Resize() '改变窗体大小
    Dim t As Integer
    t = Form1.ScaleWidth - Command1.Left
    If Form1.WindowState = 1 Then '最小化时什么都不做
        Exit Sub
    ElseIf Form1.Width <= 11685 Then
        '最小值
        Form1.Width = 11685
        Form1.Height = 7455
    ElseIf Form1.Width > 11685 Then
    End If
    '横向变化
    Imgtopright.Left = Form1.ScaleWidth - Imgtopright.Width  '上
    Imgtopmid.Left = Imgtopleft.Width
    Imgtopmid.Width = Form1.ScaleWidth - Imgtopleft.Width - Imgtopright.Width
    
    Imgright1.Left = Form1.ScaleWidth - Imgright1.Width + 10 '中
    Imgright.Left = Imgleft.Width
    Imgright.Width = Form1.ScaleWidth - Imgright.Left - Imgright1.Width
    
    Imgbottomright.Left = Form1.ScaleWidth - Imgbottomright.Width '下
    Imgbottommid.Left = Imgbottomleft.Width
    Imgbottommid.Width = Form1.ScaleWidth - Imgbottomleft.Width - Imgbottomright.Width
    
    '纵向变化
    Imgbottomleft.Top = Form1.ScaleHeight - Imgbottomleft.Height '左
    Imgleft.Top = Imgtopleft.Height
    Imgleft.Height = Form1.ScaleHeight - Imgleft.Top - Imgbottomleft.Height
    
    
    Imgright.Height = Form1.ScaleHeight - Imgright.Top - Imgbottommid.Height '中
    Imgbottommid.Top = Form1.ScaleHeight - Imgbottommid.Height
    TreeView1.Height = Form1.ScaleHeight - TreeView1.Top - Imgbottommid.Height
    Picture1.Height = Form1.ScaleHeight - Picture1.Top - Imgbottommid.Height
    
    Imgright1.Height = Form1.ScaleHeight - Imgright1.Top - Imgbottomright.Height '右
    Imgbottomright.Top = Form1.ScaleHeight - Imgbottomright.Height
    
    Command1.Left = Form1.ScaleWidth - t
    Command2.Left = Form1.ScaleWidth - t
    Command3.Left = Form1.ScaleWidth - t
    Command4.Left = Form1.ScaleWidth - t
    Command5.Left = Form1.ScaleWidth - t
    Command6.Left = Form1.ScaleWidth - t

End Sub

Private Sub Image1_DblClick()
    CommonDialog1.ShowOpen
    Image1.Picture = LoadPicture(CommonDialog1.FileName)
    f = CommonDialog1.FileName '取得文件地址
    Close #1
End Sub

Private Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node) '展开节点时
    If Node.Image = 2 Then
        Node.Image = 3
    End If
End Sub

Private Sub TreeView1_Collapse(ByVal Node As MSComctlLib.Node) '折叠节点时
    If Node.Image = 3 Then
     Node.Image = 2
    End If
End Sub

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) '单击节点
    cNodeIndex = Node.Index
    cnodekey = Node.Key
    open_close rescom
    rescom.Open "select * from communications"
    rescom.MoveFirst
    While Not rescom.EOF
        If Node.Key = "r" & rescom(0).Value Then
            display
            If Node.Children = 0 Then
                Command3.Enabled = True '修改
                Command4.Enabled = True '删除记录
            End If
            Exit Sub
        End If
        rescom.MoveNext
    Wend
    
    open_close resorg
    resorg.Open "select * from org order by id"
    Set Combo2.DataSource = resorg
    Combo2.Text = Node.Text
    
    resorg.MoveFirst
    Dim s As String
    s = Right(cnodekey, Len(cnodekey) - 1)
    resorg.Find "id='" & s & "'"
    If resorg.EOF = False And Node.Children = 0 Then '记录中有该类别,且不包含子节点时,可以删除该类别
        deleteorg.Enabled = True
    End If
    Command3.Enabled = False '修改
    Command4.Enabled = False '删除记录
    rework.Enabled = True
    delete.Enabled = True
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -