โหลดข้อมูลการยืมลง Combobox บันทึกแล้วไม่ต้องแสดงข้อมูลอีก แล้วดึงข้อมูลกลับมาเมื่อบันทึกคืน
มีสองทางให้เลือกครับ
1. ตอนที่คิวรี่ Load ข้อมูลมาใส่ Combobox ให้ เขียนคิวรี่เพิ่ม Where เข้าไปว่า
Code (SQL)
WHERE ItemID NOT IN(SELECT ItemID From tblBorrowItems)
ปล . ItemID = ฟิลรหัสอุปกรณ์ , tblBorrowItems = ชื่อตารางการยืมอุปกรณ์
กรณีนี้จะกรองเฉพาะข้อมูลที่ไม่มีในตารางการยืม หลังจากคืนก็ต้องลบไอเทมในตารางนี้ออกหรือใช้ Flag ก็แล้วแต่
2. เพิ่มฟิล "ยืม" เป็นชนิด bit (Boolean) ในตารางอุปกรณ์ กรณีที่มีการเพิ่ม การยืมอุปกรณ์
ก็ต้องตามไปอัพเดทฟิล "ยืม" ให้เป็น True ด้วย
หลังจากมีการคืนก็ต้องตามไปอัพเดทให้เปลี่ยนเป็น False เช่นกัน
ตอนเรียกมาแสดงใน Combobox เราก็แค่ Where "ยืม" = False แค่นั้นครับ
ปล . "ยืม" = ชื่อฟิลการยืม Type bit (Boolean) อยู่ในตารางอุปกรณ์
ประวัติการแก้ไข 2014-01-30 15:51:05 2014-01-30 15:51:40 2014-01-30 15:53:39
Date :
2014-01-30 15:49:56
By :
01000010
Public Function LoadAlltool()
'โหลดข้อมูล อุปกรณ์ ลงใน ComboBox
Dim objConn As New OleDbConnection
Dim dtAdapter As OleDbDataAdapter
Dim ds As New DataSet
Dim strSQL As String
Connection(objConn)
strSQL = "SELECT * FROM Tool "
dtAdapter = New OleDbDataAdapter(strSQL, objConn)
dtAdapter.Fill(ds)
With ComboBox2
.DataSource = ds.Tables(0)
.DisplayMember = "Tool_ID"
.ValueMember = "Tool_ID"
End With
ComboBox2.SelectedItem = 0
Return True
End Function
นี่เป็นโค้ดที่หนูโหลดข้อมูลลงcomboboxค่ะ
หน่อยไม่รู้จะใส่ตรงไหนช่วยบอกหนูหน่อยค่ะ
Date :
2014-01-30 16:21:03
By :
ไร้สมอง
ทำไรแล้วค่ะ ขอบคุณค่ะ
แต่เวลาคืนอุปกรณ์ แล้วรหัสอุปกรณ์ไม่กลับมาหน้ายืมทำอย่างไรค่ะ รบกวนหน่อยค่ะ
คืนอุปกรณ์หนูใช้โค้ดนี้ค่ะ
Dim Conn As New OleDbConnection
Dim Cmd As New OleDbCommand
Dim Str As String
MyModule.Connection(Con)
Select Case status
Case "add"
If MsgBox("คุณต้องการรับคืนอุปกรณ์ ใช่หรือไม่?", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "ยืนยัน") = MsgBoxResult.Ok Then
ElseIf ComboBox1.Text = "" Then
MessageBox.Show("กรุณากรอกจำนวนคงเหลือ !!!", "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Information)
ComboBox1.Focus()
ComboBox1.SelectAll()
Exit Sub
Else
Str = "INSERT INTO BeRetool([Brt_ID],[Brt_DayBe],[Brt_DayTu],[Brt_Sname],[Brt_Gname],[Brt_Tname],[Brt_Quantity],[Brt_Pack],[Brt_Ename],[Brt_TUName],[Brt_Memo]) VALUES("
Str &= "'" & ComboBox1.Text & "',"
Str &= "null,"
Str &= "'" & DateTimePicker3.Text & "',"
Str &= "'" & TextBox2.Text & "',"
Str &= "'" & TextBox13.Text & "',"
Str &= "'" & TextBox14.Text & "',"
Str &= "'" & TextBox11.Text & "',"
Str &= "'" & ComboBox1.Text & "',"
Str &= "'" & TextBox5.Text & "',"
Str &= "'" & TextBox4.Text & "',"
Str &= "'" & TextBox3.Text & "' "
Str &= ")"
Try
Cmd = New OleDbCommand(Str, Con)
Cmd.ExecuteNonQuery()
Str = "UPDATE Tool SET Tool_Quantity='" & TextBox11.Text & "'WHERE [Brt_ID]= '" & ComboBox1.Text & "'"
MsgBox("บันทึกข้อมูล เรียบร้อย", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "แจ้งเตือน")
SqlCmd = New OleDbCommand(Str, Con)
SqlCmd.ExecuteNonQuery()
Catch ex As Exception
MsgBox("ไม่สามารถบันทึกข้อมูลได้", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "แจ้งเตือน")
End Try
End If
Case "Edit"
Str = "UPDATE BeRetool,Tool SET Brt_DayTu= '" & DateTimePicker3.Text & "',Brt_Sname='" & TextBox2.Text & "',Brt_Gname='" & TextBox20.Text & "',Brt_Tname='" & TextBox18.Text & "',Brt_Quantity='" & TextBox11.Text & "',Brt_Pack='" & TextBox14.Text & "',Brt_Ename='" & TextBox21.Text & "',Brt_TUName='" & TextBox8.Text & "',Brt_Memo='" & TextBox3.Text & "',Tool_Quantity='" & TextBox11.Text & "' WHERE [Brt_ID]= '" & ComboBox1.Text & "'"
Try
Cmd = New OleDbCommand(Str, Con)
Cmd.ExecuteNonQuery()
MsgBox("แก้ไขข้อมูล เรียบร้อย", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "แจ้งเตือน")
Catch ex As Exception
MsgBox("ไม่สามาารถแก้ไขข้อมูลได้", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "แจ้งเตือน")
End Try
End Select
Showdata()
Clear()
Disable()
status = ""
Button12.Text = "บันทึก"
TextBox8.Text = "" & CurrentName & " " & CurrentLast & ""
Date :
2014-02-03 15:05:22
By :
ไร้สมอง
ผมไม่เข้าใจบรรทัดนี้ครับ
Code (VB.NET)
If MsgBox("คุณต้องการรับคืนอุปกรณ์ ใช่หรือไม่?", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "ยืนยัน") = MsgBoxResult.Ok Then
แล้วเป็น ElseIf เลย ทำไมมันว่างไม่มีคำสั่ง งงครับ
Date :
2014-02-03 15:18:30
By :
01000010
เป็นปุ่มยืนยันว่าจะรับคืนหรือไม่ค่ะ
ตัวอย่างโปรแกรมค่ะ
Date :
2014-02-03 15:27:28
By :
ไร้สมอง
Load balance : Server 02