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

📄 form4.vb

📁 第五章 家庭财务程序开发
💻 VB
📖 第 1 页 / 共 2 页
字号:
        '
        Me.Income1.DataSetName = "income"
        Me.Income1.Locale = New System.Globalization.CultureInfo("zh-CN")
        '
        'OleDbDataAdapter1
        '
        Me.OleDbDataAdapter1.InsertCommand = Me.OleDbInsertCommand2
        Me.OleDbDataAdapter1.SelectCommand = Me.OleDbSelectCommand2
        Me.OleDbDataAdapter1.TableMappings.AddRange(New System.Data.Common.DataTableMapping() {New System.Data.Common.DataTableMapping("Table", "Income", New System.Data.Common.DataColumnMapping() {New System.Data.Common.DataColumnMapping("项目名称", "项目名称"), New System.Data.Common.DataColumnMapping("匹配码", "匹配码")})})
        '
        'OleDbInsertCommand2
        '
        Me.OleDbInsertCommand2.CommandText = "INSERT INTO Income(匹配码, 项目名称) VALUES (?, ?)"
        Me.OleDbInsertCommand2.Connection = Me.OleDbConnection1
        Me.OleDbInsertCommand2.Parameters.Add(New System.Data.OleDb.OleDbParameter("匹配码", System.Data.OleDb.OleDbType.VarWChar, 10, "匹配码"))
        Me.OleDbInsertCommand2.Parameters.Add(New System.Data.OleDb.OleDbParameter("项目名称", System.Data.OleDb.OleDbType.VarWChar, 15, "项目名称"))
        '
        'OleDbSelectCommand2
        '
        Me.OleDbSelectCommand2.CommandText = "SELECT 匹配码, 项目名称 FROM Income"
        Me.OleDbSelectCommand2.Connection = Me.OleDbConnection1
        '
        'Form4
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(624, 393)
        Me.Controls.Add(Me.ComboBox1)
        Me.Controls.Add(Me.MonthCalendar1)
        Me.Controls.Add(Me.Button6)
        Me.Controls.Add(Me.Button5)
        Me.Controls.Add(Me.Button4)
        Me.Controls.Add(Me.Button3)
        Me.Controls.Add(Me.Button2)
        Me.Controls.Add(Me.Button1)
        Me.Controls.Add(Me.TextBox2)
        Me.Controls.Add(Me.Label3)
        Me.Controls.Add(Me.Label2)
        Me.Controls.Add(Me.Label1)
        Me.Controls.Add(Me.TextBox1)
        Me.Controls.Add(Me.DataGrid1)
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
        Me.Name = "Form4"
        Me.Text = "Form4"
        CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.Incometable1, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.Income1, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region
    '进入Form的事件
    Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '填充2个DataSet
        incometable.Fill(Incometable1)
        OleDbDataAdapter1.Fill(Income1)
        '设置按钮
        dobutton(1, 1, 1, 0, 0)
        '设置文本框和ComboBox,其中日期选择的文本框为无效
        TextBox1.Enabled = False
        ComboBox1.Enabled = False
    End Sub
    '建立dobutton函数
    Private Function dobutton(ByVal a, ByVal b, ByVal c, ByVal d, ByVal e)
        '首先将5个按钮均置为False
        Button1.Enabled = False
        Button2.Enabled = False
        Button3.Enabled = False
        Button4.Enabled = False
        Button6.Enabled = False
        '判断a,b,c,d,e的值,1则为按钮有效,0为按钮无效
        If a = 1 Then Button1.Enabled = True
        If b = 1 Then Button2.Enabled = True
        If c = 1 Then Button3.Enabled = True
        If d = 1 Then Button4.Enabled = True
        If e = 1 Then Button6.Enabled = True
    End Function
    '当DataGrid当前单元格变化的时候响应事件
    Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
        '设置5个功能按键
        dobutton(1, 1, 1, 0, 0)
        'Textbox1显示的是金额
        TextBox1.Text = DataGrid1.Item(DataGrid1.CurrentCell.RowNumber, 0)
        'Textbox2显示的是日期
        TextBox2.Text = DataGrid1.Item(DataGrid1.CurrentCell.RowNumber, 1)
        'ComboBox1显示的是项目名称
        ComboBox1.Text = DataGrid1.Item(DataGrid1.CurrentCell.RowNumber, 2)
        '设置文本框和ComboBox为无效
        TextBox1.Enabled = False
        ComboBox1.Enabled = False
    End Sub

    '响应关闭的事件
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        '关闭对话框
        Me.Close()
    End Sub
    '响应添加的事件
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '状态加1
        n = n + 1
        '如果n=1,则表示现在是输入状态
        If n = 1 Then
            '打开Textbox和ComboBox接受用户数据并清空Textbox和ComboBox中间的内容
            TextBox1.Enabled = True
            ComboBox1.Enabled = True
            TextBox1.Text = ""
            ComboBox1.Text = ""
            'TextBox2中的内容是当前的日期
            TextBox2.Text = CStr(Today.Date.ToShortDateString)
            '设置按键
            dobutton(1, 0, 0, 1, 1)
        End If
        '如果n=2,则表示现在是更新数据库的操作
        If n = 2 And TextBox1.Text <> "" And TextBox2.Text <> "" And ComboBox1.Text <> "" Then  '对输入的数据进行判断和校验
            '生成SQL语句
            nsql = "INSERT INTO incometable VALUES(" + Chr(39) + CStr(TextBox2.Text) + Chr(39) + "," + Chr(39) + CStr(ComboBox1.Text) + Chr(39) + "," + Chr(39) + CStr(TextBox1.Text) + Chr(39) + ")"
            '打开数据库
            OleDbConnection1.Open()
            '指定SQL语句对应的连接和SQL语句
            ncommand.Connection = OleDbConnection1
            ncommand.CommandText() = nsql
            '执行SQL语句,更新数据库
            ncommand.ExecuteNonQuery()
            '更新Incometable1 DataSet数据集
            Incometable1.Clear()
            incometable.Fill(Incometable1)
            '关闭数据库连接
            OleDbConnection1.Close()
            '设置Textbox和ComboBox无效
            TextBox1.Enabled = False
            ComboBox1.Enabled = False
            '设置按钮
            dobutton(1, 1, 1, 0, 0)
        End If
        '如果n=2表示状态标志结束,置0
        If n = 2 Then n = 0
    End Sub
    '响应选择日期事件
    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        '日期控件可见
        MonthCalendar1.Visible = True

    End Sub
    '日期控件选择日期的事件
    Private Sub MonthCalendar1_DateSelected(ByVal sender As Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateSelected
        '定义gdate是Date类型变量
        Dim gdate As Date
        'gdate是选择的日期
        gdate = MonthCalendar1.SelectionRange.Start()
        '设置日期控件不可见
        MonthCalendar1.Visible = False
        '更新Textbox2的内容
        TextBox2.Text = CStr(gdate)

    End Sub
    '响应取消的事件
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        '设置按钮,恢复原来设定
        dobutton(1, 1, 1, 0, 0)
        '置状态为0
        n = 0
        '设置Textbox和ComboBox无效
        TextBox1.Enabled = False
        ComboBox1.Enabled = False
    End Sub
    '响应删除的事件
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        '生成SQL语句
        nsql = "DELETE FROM incometable WHERE 金额=" + Chr(39) + CStr(TextBox1.Text) + Chr(39) + " and 日期=" + Chr(39) + CStr(TextBox2.Text) + Chr(39) + " and 项目名称=" + Chr(39) + CStr(ComboBox1.Text) + Chr(39)
        '打开数据库
        OleDbConnection1.Open()
        '指定SQL语句对应的连接,指定SQL语句
        ncommand.Connection = OleDbConnection1
        ncommand.CommandText() = nsql
        '执行SQL语句,更新数据库
        ncommand.ExecuteNonQuery()
        '更新Income1 DataSet数据集
        Incometable1.Clear()
        incometable.Fill(Incometable1)
        '关闭数据库连接
        OleDbConnection1.Close()
    End Sub
    '响应更新的事件
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        '状态加1,如果n=1,则表示现在是输入状态
        n = n + 1
        If n = 1 Then
            '备份原来数据库中的数据
            bak1 = TextBox1.Text
            bak2 = TextBox2.Text
            bak3 = ComboBox1.Text
            '打开Textbox接受用户数据并且设置按钮
            TextBox1.Enabled = True
            ComboBox1.Enabled = True
            dobutton(0, 0, 1, 1, 1)
        End If
        '如果n=2,则表示现在是更新数据库的操作 
        If n = 2 And TextBox1.Text <> "" And TextBox2.Text <> "" And ComboBox1.Text <> "" Then   '对输入的数据进行判断和校验
            '生成SQL语句
            nsql = "UPDATE incometable SET 金额=" + Chr(39) + CStr(TextBox1.Text) + Chr(39) + " , 日期=" + Chr(39) + CStr(TextBox2.Text) + Chr(39) + " , 项目名称=" + Chr(39) + CStr(ComboBox1.Text) + Chr(39) + " WHERE 金额=" + Chr(39) + bak1 + Chr(39) + " and 日期=" + Chr(39) + bak2 + Chr(39) + " and 项目名称=" + Chr(39) + bak3 + Chr(39)
            '打开数据库
            OleDbConnection1.Open()
            '指定SQL语句对应的连接,指定SQl语句
            ncommand.Connection = OleDbConnection1
            ncommand.CommandText() = nsql
            '执行SQL语句,更新数据库
            ncommand.ExecuteNonQuery()
            '更新Income1 DataSet数据集
            Incometable1.Clear()
            incometable.Fill(Incometable1)
            '关闭数据库连接
            OleDbConnection1.Close()
            '设置Textbox和ComboBox不可用,设置按钮
            TextBox1.Enabled = False
            ComboBox1.Enabled = False
            dobutton(1, 1, 1, 0, 0)
        End If
        '如果n=2表示状态标志结束,置0
        If n = 2 Then n = 0
    End Sub

   
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Dim keycode As Integer
        keycode = Asc(e.KeyChar)
        If (keycode >= 48 And keycode <= 57) Or (keycode = 46) Then


        Else
            MessageBox.Show("请输入数字")
            
            e.Handled = True

        End If
    End Sub
    Private Sub check(ByVal str As String)
        'if str.
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub
End Class

⌨️ 快捷键说明

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