|
|
|
VB2010&Access คือผมมีปัญหาเกี่ยวกับปุ่มเพิ่ม แก้ไขข้อมูลในตารางครับ แนะนำทีนะครับ |
|
|
|
|
|
|
|
คือผมสามารถเพิ่มข้อมูลลงไปในตารางได้ตามปกตินะครับแต่ผมไม่สามารถที่จะแก้ไขข้อมูลได้ แล้วโปรแกรมก็ไม่ฟ้องว่า error จุดไหนแต่ไม่สามารถคลิกในตารางเพื่อแก้ไขข้อมูลได้ครับ
Code (VB.NET)
Public Class vehicle
Dim x As Integer
Dim strCheck As String 'ตัวแปลเก็บข้อมูลคำสั่ง sql เอาไว้เช็คข้อผิดพลาด
Dim strSQL As String 'ตัวแปลเก็บข้อมูลคำสั่ง sql สำหรับ เพิ่มข้อมูล
Dim ID As String 'DPass ใช้เก็บรหัสข้อมูลหรัสหน่วยงานจากที่ผู้ใช้งานเลือก
Private Sub vehicle_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WindowState = FormWindowState.Maximized
cb_search.SelectedIndex = 0
ComboBox1.SelectedIndex = 0
ComboBox2.SelectedIndex = 0
ComboBox3.SelectedIndex = 0
'เชื่อมต่อฐานข้อมูล.............................................................................
Try 'คำสั่งดัก error สั่งให้ทำ
With CnMysql
If .State = ConnectionState.Open Then .Close() 'ตรวจสอบสถานะว่าตัวคอนเน็คฐานข้อมูลเปิดอยู่หรือเปล่า
.ConnectionString = strcon 'กำหนดว่าฐานข้อมูลอยู่ที่ใหนในเครื่อง เชื่อมต่อฐานข้อมูลอะไร
.Open() 'เปิดการใช้งานฐานข้อมูล
End With
Catch 'ถ้า error จะมาทำงานที่ Catch อัตโนมัติ
MessageBox.Show("ติดต่อฐานข้อมูลไม่ได้") 'แสดงข้อความสาเหตุของการ error
End Try 'สิ้นสุดคำสั่ง try catch
'สิ้นสุด Code เชื่อมต่อฐานข้อมูล...............................................................
Dim sqlDePart As String = "SELECT * FROM vehiclekind ORDER BY Vehicle_ID"
Dim dsPart As New DataSet()
da = New OleDb.OleDbDataAdapter(sqlDePart, CnMysql)
da.Fill(dsPart, "DePart")
If dsPart.Tables("DePart").Rows.Count <> 0 Then
cmbkind.DataSource = dsPart.Tables("DePart")
cmbkind.DisplayMember = dsPart.Tables("DePart").Columns("Vehicle_ID").ToString()
cmbkind.ValueMember = dsPart.Tables("DePart").Columns("Vehicle_kind").ToString()
End If
ShowGrid() 'ดึงข้อมูลมาโชว์ในกริด
End Sub
Private Sub bt_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_add.Click
'ตรวจสอบการกรอกข้อมูลของผู้ใช้งาน............................................................
If txt_no.Text = "" Then
MessageBox.Show("กรุณากรอกข้อมูลรหัส")
Exit Sub
txt_no.Focus()
ElseIf txt_name.Text = "" Then
MessageBox.Show("กรุณากรอกข้อมูลชื่อ")
txt_name.Focus()
End If
'สิ้นสุดการตรวจสอบการกรอกข้อมูลของผู้ใช้งาน.......................................................
'ตรวจสอบว่า หรัสหน่วยงานที่กรอกมานั้นมีอยู่แล้วในฐานข้อมูลหรือไม่........................
strCheck = "SELECT * FROM tblvehicle WHERE Vehicle_StudentNo = '" & txt_no.Text & "'"
da = New OleDb.OleDbDataAdapter() 'รีเฟรช da
ds = New DataSet() 'รีเฟรช ds
da = New OleDb.OleDbDataAdapter(strCheck, CnMysql)
da.Fill(ds, "Chk_Emp")
If ds.Tables("Chk_Emp").Rows.Count <> 0 Then
MessageBox.Show("รหัสนี้มีอยู่แล้วในฐานข้อมูล", "ผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub 'สั่งให้มันหยุดการทำงาน
End If
'สิ้นสุดตรวจสอบว่า หรัสหน่วยงานที่กรอกมานั้นมีอยู่แล้วในฐานข้อมูลหรือไม่........................
'บันทึกข้อมูลลงใน Employee .........................................................
'คำสั่ง sql สำหรับบันทึกข้อมูล INSERT INTO ชื่อตาราง (ชื่อฟิวล์1,ชื่อฟิวล์2,...,ชื่อฟิวล์ N) VALUES('ค่าของฟิว 1',ค่าฟิว 2,...,'ค่าฟิว N')
strSQL = "Insert into tblvehicle(Vehicle_StudentNo,Vehicle_StudentName , Vehicle_StudenLastName, Vehicle_StudentBranch, Vehicle_StudentDegree, Vehicle_StudentYear, Vehicle_StudentPhone, Vehicle_StudentEmail, Vehicle_MemberNo, Vehicle_MemberName, Vehicle_MemberLastName, Vehicle_Memberoccupation, Vehicle_MemberPhone, Vehicle_MemberEmail, Vehicle_kind, Vehicle_registration, Vehicle_trademark, Vehicle_Color, Vehicle_jv, Vehicle_in) values('" & txt_no.Text & "','" & txt_name.Text & "','" & txt_lastname.Text & "','" & ComboBox1.Text & "','" & ComboBox2.Text & "','" & ComboBox3.Text & "','" & txt_phone.Text & "','" & txt_email.Text & "','" & txt_no2.Text & "','" & txt_name2.Text & "','" & txt_lastname2.Text & "','" & txt_occ.Text & "','" & txt_phone2.Text & "','" & txt_email2.Text & "','" & cmbkind.SelectedValue.ToString() & "','" & txt_red.Text & "','" & txt_td.Text & "','" & txt_color.Text & "','" & txt_jv.Text & "','" & txt_in.Text & "')"
Try
With cm
.CommandType = CommandType.Text 'กำหนดประเภทคำสั่ง
.CommandText = strSQL ' ส่งค่าคำสั่ง sql ให้ object
.Connection = CnMysql ' บอกเส้นทางเชื่อมต่อ
.ExecuteNonQuery() ' สั่งให้ทำงาน
MessageBox.Show("เพิ่มข้อมูลเรียบร้อยแล้ว")
ShowGrid() 'แสดงข้อมูลในกริด
ClearText() 'ล้างข้อมูลใน text
End With
Catch
MessageBox.Show("การเพิ่มข้อมูลผิดพลาด")
Exit Sub
End Try 'สิ้นสุดบันทึกข้อมูลลงใน Employee .........................................................
End Sub
'.... Sub ฟังชั่นของการโชว์ข้อมูลใน datagridview
Sub ShowGrid()
Dim strShow As String
strShow = "SELECT * FROM tblvehicleQuery ORDER BY Vehicle_StudentNo"
ds = New DataSet()
da = New OleDb.OleDbDataAdapter(strShow, CnMysql)
da.Fill(ds, "Show")
If ds.Tables("Show").Rows.Count <> 0 Then
DataGridView1.DataSource = ds.Tables("Show")
End If
End Sub '.... สิ้นสุด Sub ฟังชั่นของการโชว์ข้อมูลใน datagridview ... สิ้นสุด Sub ฟังชั่นของการโชว์ข้อมูลใน datagridview
'.... Sub ฟังชั่นของการเคลียร์ข้อมูลใน textbox
Sub ClearText()
txt_no.Text = ""
txt_name.Text = ""
txt_lastname.Text = ""
ComboBox1.SelectedValue = 0
ComboBox2.SelectedValue = 0
ComboBox3.SelectedValue = 0
txt_phone.Text = ""
txt_email.Text = ""
txt_no2.Text = ""
txt_name2.Text = ""
txt_lastname2.Text = ""
txt_occ.Text = ""
txt_phone2.Text = ""
txt_email2.Text = ""
cmbkind.SelectedValue = 0
txt_red.Text = ""
txt_td.Text = ""
txt_color.Text = ""
txt_jv.Text = ""
txt_in.Text = ""
End Sub '.... สิ้นสุด Sub ฟังชั่นของการเคลียร์ข้อมูลใน textbox
Private Sub bt_Canceled_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Canceled.Click
ClearText()
End Sub
Private Sub bt_cor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_cor.Click
'แก้ไขข้อมูล......................................................................
'ตรวจสอบการเลือกข้อมูลเพื่อจะแก้ไข ว่าผู้ใช้งานเลือกหรือยัง
If txt_no.Text = "" Then
MessageBox.Show("กรุณาเลือกข้อมูลที่ต้องการแก้ไข")
Exit Sub 'คำสั่งออกจากการทำงาน
End If
'เริ่มต้นการแก้ไข...................................
'Update ชื่อตาราง set ชื่อฟิว = ค่าที่แก้ไข Where เงื่อนไข
strSQL = "Update tblvehicle set Vehicle_StudentName ='" & txt_name.Text & "',Vehicle_StudenLastName = '" & txt_lastname.Text & "',Vehicle_StudentBranch = '" & ComboBox1.Text & "',Vehicle_StudentDegree='" & ComboBox2.Text & "',Vehicle_StudentYear='" & ComboBox3.Text & "',Vehicle_StudentPhone='" & txt_phone.Text & "',Vehicle_StudentEmail='" & txt_email.Text & "',Vehicle_MemberNo='" & txt_no2.Text & "',Vehicle_MemberName='" & txt_name2.Text & "',Vehicle_MemberLastName='" & txt_lastname2.Text & "',Vehicle_Memberoccupation='" & txt_occ.Text & "',Vehicle_MemberPhone='" & txt_phone2.Text & "',Vehicle_MemberEmail='" & txt_email2.Text & "',Vehicle_kind=" & cmbkind.SelectedValue.ToString() & ",Vehicle_registration='" & txt_red.Text & "',Vehicle_trademark='" & txt_td.Text & "',Vehicle_Color='" & txt_color.Text & "' ,Vehicle_jv='" & txt_jv.Text & "',Vehicle_in='" & txt_in.Text & "' where Vehicle_StudentNo='" & ID & "'"
Try
With cm
.CommandType = CommandType.Text 'กำหนดประเภทคำสั่ง
.CommandText = strSQL ' ส่งค่าคำสั่ง sql ให้ object
.Connection = CnMysql ' บอกเส้นทางเชื่อมต่อ
.ExecuteNonQuery() ' สั่งให้ทำงาน
MessageBox.Show("การแก้ไขเรียบร้อยแล้ว")
ShowGrid() 'แสดงข้อมูลในกริด
ClearText() 'ล้างข้อมูลใน text
End With
Catch
MessageBox.Show("การแก้ไขข้อมูลผิดพลาด")
Exit Sub
End Try
End Sub
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
If e.RowIndex < 0 Then 'ป้องกันการคลิกเลือกที่หัวคอลัม ถ้าเลือกหัวจะไม่ให้ทำงาน
Exit Sub
End If
'โชว์ข้อมูลจากการเลือกข้อมูลในกิดวิว
Dim sqlSelect As String 'เป็นตัวแปลเก็บข้อมูลที่ดึงจากฐานข้อมูลตามที่ผู้ใช้งานเลือก
ID = DataGridView1.Rows(e.RowIndex).Cells(0).Value.ToString() 'เลือกข้อมูลจาก Cellsที่0 = เลขที่อัตรานั่นเอง^^
sqlSelect = "Select * from tblvehicle Where Vehicle_StudentNo ='" & ID & "'" 'ดึงข้อมูลที่มีเลขที่ตัราตรงกับ DPass ที่เลือก
da = New OleDb.OleDbDataAdapter(sqlSelect, CnMysql) 'สั่งให้ DataAdapter ทำงานตามคำสั่ง sqlSelect
ds = New DataSet() 'รีเฟทดาต้าเซ็ต
da.Fill(ds, "Emp_Show") 'เอาข้อมมูลที่ da ดึงมาได้ใส่ไว้ใน ds
If ds.Tables("Emp_Show").Rows.Count <> 0 Then
txt_no.Text = ID
txt_name.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_StudentName").ToString()
txt_lastname.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_StudenLastName").ToString()
ComboBox1.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_StudentBranch").ToString()
ComboBox2.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_StudentDegree").ToString()
ComboBox3.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_StudentYear").ToString()
txt_phone.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_StudentPhone").ToString()
txt_email.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_StudentEmail").ToString()
txt_no2.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_MemberNo").ToString()
txt_name2.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_MemberName").ToString()
txt_lastname2.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_MemberLastName").ToString()
txt_occ.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_Memberoccupation").ToString()
txt_phone2.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_MemberPhone").ToString()
txt_email2.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_MemberEmail").ToString()
cmbkind.SelectedValue = ds.Tables("Emp_Show").Rows(0)("Vehicle_kind").ToString()
txt_red.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_registration").ToString()
txt_td.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_trademark").ToString()
txt_color.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_Color").ToString()
txt_jv.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_jv").ToString()
txt_in.Text = ds.Tables("Emp_Show").Rows(0)("Vehicle_in").ToString()
End If
End Sub
Private Sub txt_search_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_search.TextChanged
Dim strwhere As String
Dim strShow As String
Select Case cb_search.Text
Case "รหัสนักศึกษา"
strwhere = " where Vehicle_StudentNo like '%" & txt_search.Text & "%'"
Case "ชื่อ"
strwhere = " where Vehicle_StudentName like '%" & txt_search.Text & "%'"
End Select
strShow = "SELECT * FROM tblvehicleQuery " & strwhere & " ORDER BY Vehicle_StudentNo"
ds = New DataSet()
da = New OleDb.OleDbDataAdapter(strShow, CnMysql)
da.Fill(ds, "Show")
DataGridView1.DataSource = ds.Tables("Show")
If ds.Tables("Show").Rows.Count = 0 Then
MessageBox.Show("ไม่มีข้อมูลตามเงื่อนไขที่กำหนด")
End If
End Sub
Private Sub bt_del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
End Class
Tag : .NET, Ms Access, VB.NET, VS 2010 (.NET 4.x)
|
|
|
|
|
|
Date :
2013-12-19 07:35:57 |
By :
parawichai |
View :
1049 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มี Tools สุดยอดอย่าง Visual Studio แล้วทำไมไม่ Debug ดูล่ะครับ
|
|
|
|
|
Date :
2013-12-19 08:54:25 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Debug Error อยู่ไหน อ้าวมาให้ดูหน่อย งี้ตอบไม่ได้
|
|
|
|
|
Date :
2013-12-19 09:09:52 |
By :
angelrings0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือมันไม่เตือนError อะไรสักอย่างเลยอะครับ โค้ดดึงข้อมูลเอามาไว้ในTextเพื่อแก้ไข หรือโค้ดปุ่มแก้ไขก็ใส่หมดแล้วอะครับ แต่พอเวลาคลิกไปที่ตารางข้อมูลมันไม่โชว์ในTextอะครับมันเลยแก้ไขไม่ได้
|
|
|
|
|
Date :
2013-12-19 09:58:54 |
By :
parawichai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|