Public Class Form1
Dim con As New OleDbConnection
Dim da As New OleDbDataAdapter
Dim ds As New DataSet
Dim dt As New DataTable
Dim inttype As Integer
Dim dwvet As New DataView
Dim dwfru As New DataView
Dim dwsee As New DataView
Private Sub InitialControl()
'กำหนดค่าเริ่มต้นของคอนโทรล
If radvet.Checked = True Then
radfru.Checked = False
radsee.Checked = False
txt1.Text = ""
Exit Sub
End If
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
InitialControl() 'เรียกโปรแกรมย่อยสำหรับกำหนดค่าเริ่มต้น
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\admim\Documents\ฐานข้อมูล5.accdb"
con.Open()
ds.Tables.Add(dt)
da = New OleDbDataAdapter("SELECT * FROM Tb_Need", con)
da.Fill(dt)
DataGridView1.DataSource = Nothing
End Sub
Private Sub radvet_CheckedChanged(sender As Object, e As EventArgs) Handles radvet.CheckedChanged
Try
If Not con.State = ConnectionState.Open Then
con.Open()
End If
'ถ้าเลือกผัก ตัวแปร inttype มีค่าเป็น 1
If radvet.Checked = True Then
inttype = 1
radfru.Checked = False
radsee.Checked = False
Dim da As New OleDbDataAdapter("SELECT * FROM Tb_Need", con)
Dim dt As New DataTable
Dim ds As New DataSet
da.Fill(ds, "Tb_Need")
DataGridView1.DataSource = Nothing
dwvet = New DataView(ds.Tables("Tb_Need"), "type = 1", "ID", DataViewRowState.CurrentRows) '
'เลือกเฉพาะข้อมูลที่มี type = 1 แล้วให้เรียงตัวตัวอักษรตามฟิล Product ที่อยู่ในฐานช้อมูล
DataGridView1.DataSource = dwvet
con.Close()
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
End Try
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim intFillQuantity As Integer = 0
'*******ตรวจสอบว่าได้ป้อนจำนวนหรือไม่ ถ้าไม่ได้ป้อนแสดงคำเตือน
If txt1.Enabled = True Then
If txt1.Text = "" Then
MessageBox.Show("กรุณาป้อนจำนวนลงในช่อง")
Return
Else
intFillQuantity = CInt(txt1.Text)
End If
End If
If txt2.Enabled = True Then
If txt2.Text = "" Then
MessageBox.Show("กรุณาป้อนจำนวนลงในช่อง")
Return
Else
intFillQuantity = CInt(txt2.Text)
End If
End If
'*******ค้นหาตำแหน่งของประเภทที่เลือกไว้ในหน้าโปรแกรม ถ้าตรงกับเลขในดาต้าเทเบิ้ล ให้ใส่ค่าที่ป้อนลงในคอลัมน์ qua
For Each dr As DataRow In dt.Rows
If inttype = dr("type") Then
dr("qua") = intFillQuantity
dr("total") = CInt(dr("qua")) * CInt(dr("con"))
End If
Next
Dim cb As New OleDbCommandBuilder(da)
da.Update(ds.Tables(0))
ds.AcceptChanges()
End Sub
Private Sub rad1_CheckedChanged(sender As Object, e As EventArgs) Handles rad1.CheckedChanged
If rad1.Checked = True Then
txt1.Enabled = True
Label1.Enabled = True
txt1.Text = ""
txt2.Enabled = False
txt2.Text = ""
End If
End Sub
Private Sub rad2_CheckedChanged(sender As Object, e As EventArgs) Handles rad2.CheckedChanged
If rad2.Checked = True Then
txt2.Enabled = True
Label2.Enabled = True
txt2.Text = ""
txt1.Enabled = False
txt1.Text = ""
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.txt1.Text = ""
Me.txt2.Text = ""
MsgBox("ทำการยกเลิกจำนวนที่กรอก")
Me.txt1.Focus()
End Sub
End Class
มันต้องสร้าง Private Sub Refresh ขึ้นมาหรือป่าว
เพราะลองใช้ Private Sub RefreshData() มันขึ้นได้ทันที แต่เอาคอลัมมาทั้งหมด โดยไม่ได้ตามที่กำหนดไว้ในradio button
ว่าคอลัมนี้ให้โชว์หรีอไม่โชว์
Code (VB.NET)
Private Sub RefreshData()
If Not con.State = ConnectionState.Open Then
'open connection
con.Open()
End If
Dim da As New OleDbDataAdapter("SELECT * FROM Tb_Need ORDER BY ID", con)
Dim dt As New DataTable
'fill data to datatable
da.Fill(dt)
'offer data in data table into datagridview
Me.DataGridView1.DataSource = dt
'close connection
con.Close()
End Sub