?? form4.vb
字號:
'
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 + -