เริ่มทำฟอร์มสอบถามข้อมูล
ให้สร้างฟอร์มที่ Visual Studio ขึ้นมาใหม่ แล้วตั้งชื่อฟอร์มว่า frmInquiry จากนั้นให้สร้างคอนโทรลต่างๆ ตามภาพแล้วกำหนด property ดังนี้
ป้อนคำสั่งที่ frmInquiry.vb ดังนี้
Imports System.Data
Imports System.Data.SqlClient
Public Class frmInquiry
' ตัวแปรที่ใช้ใน Property [AssCode]
Dim rAssCode As String = " "
Private Sub frmInquiry_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
queryData()
'สลับสีของแถว
DataGridView1.RowsDefaultCellStyle.BackColor = Color.White
DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.Azure
With DataGridView1
.DefaultCellStyle.NullValue = ""
.Columns(0).HeaderText = "รหัสสินทรัพย์"
.Columns(0).Width = 100
.Columns(1).HeaderText = "รายการ"
.Columns(1).Width = 200
.Columns(2).HeaderText = "หน่วยนับ"
.Columns(2).Width = 80
End With
End Sub
Private Sub txtSearch_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles txtSearch.TextChanged
queryData()
End Sub
Private Sub DataGridView1_CellContentDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentDoubleClick
Dim row As Integer = DataGridView1.CurrentCellAddress.Y
AssCode = DataGridView1.Rows(row).Cells(0).Value 'Cell(0) คือ คอลัมแรกของกริดนับจากซ้ายมือ
Me.Close()
End Sub
Sub queryData()
'ให้ทำการแก้ไข Connection String ตามที่เราใช้งานอยู่
Dim connString As String = "Data Source=.;Initial Catalog=ชื่อฐานข้อมูล;Persist Security Info=True;User ID=sa;Password=รหัสผ่าน"
Dim myConn As SqlConnection = New SqlConnection
myConn.ConnectionString = connString
'ให้แก้ไขคำสั่ง SQL ตามที่ต้องการ
Dim da As SqlDataAdapter = New SqlDataAdapter _
("SELECT TOP 50 ASSCODE, NAME, UMCODE FROM ABASSET WHERE ASSCODE+NAME LIKE '%" & txtSearch.Text.Trim & "%' ORDER BY ASSCODE", myConn)
Dim ds As DataSet = New DataSet
da.Fill(ds, "ABASSET")
myConn.Close()
DataGridView1.DataSource = ds.Tables(0)
End Sub
'' หากมีการส่งคืนหลายค่า ก็สร้าง Property เพิ่ม
Public Property [AssCode]() As String
Get
Return Me.rAssCode
End Get
Set(ByVal value As String)
Me.rAssCode = value
End Set
End Property
End Class
ต่อมาเราจะมาทำฟอร์มหลัก สำหรับเรียกฟอร์มค้นหาเริ่มทำฟอร์มหลัก
ที่ฟอร์ม Form1 ให้สร้างคอนโทรลต่างๆ ดังภาพ
จากนั้นทำการป้อนคำสั่งที่ form1.vb ดังนี้
Public Class Form1
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim fm As New frmInquiry()
fm.ShowDialog()
If fm.AssCode.ToString <> "" Then
txtAssCode.Text = fm.AssCode.ToString 'อ้างถึง property ชื่อ [AssCode] ของฟอร์ม frmInquiry
End If
fm.Dispose()
txtAssCode.Focus()
End Sub
End Class
ทำการเรียกฟอร์มขึ้นมาทำงาน โดยกดปุ่ม F5 เพื่อรันโปรเจกต์เมื่อปร่กฎหน้าจอ Form1 ให้คลิกปุ่ม ... ที่ฟอร์ม แล้วทดสอบดู ตามตัวอย่างดังภาพ



2 ความคิดเห็น:
ขอบคุณมากสำหรับบทความนี้ค่ะ..มีประโยชน์กับตัวหนูมากเลย... กำลังทำโปรแจ็คพอดี ต้องขอบคุณที่ให้ความรู้นะค่ะ ^^
แสดงความคิดเห็น