VB6 - แสดงข้อมูลตามต้องการ
แก้ไขครั้งสุดท้ายโดย my2alee เมื่อ 2022-1-13 15:42ต้องการแสดงข้อมูลจาก mysql database ตามรูป ขอแนวหน่อยครับ
ส่วนการเชื่อมต่อและดึงข้อมูลได้ทำไว้เรียบร้อยแล้วแต่ไม่มีแนวให้แสดงข้อมูลตามรูปครับ
การคำนวณหาหลัก ก็ไม่ยากอะไรครับ ใช้จำนวนข้อมูลมาหารเอาเศษด้วย 3 จะได้คำตอบออกมา 3 ชุดหรือหลัก คือ 0, 1 และ 2 ผมทำตัวอย่างไว้ให้โดยสร้าง TextBox ขึ้นมาตัวนึงก่อน โดยกำหนดค่า Index = 0 (หากสร้างด้วยโค้ดแบบ Run Time ต้องมากำหนดระยะความกว้างสูงและตำแหน่งใหม่) รายละเอียดก็อยู่ในโค้ดนั่นแหละครับ ...
Option Explicit
' เก็บค่า Index ของ Control Array
Private CtrlIndex As Integer
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
' ปกติวิธีการสร้าง TextBox Control Array ลงบนฟอร์ม
' 1. สร้าง TextBox ต้นแบบออกมาไว้ก่อน 1 ตัว และตั้งค่าคุณสมบัติ
' - Name = CtrlTextBox
' - Index = 0
' 2. คัดลอก หรือ Copy Control แล้ววาง (Paste) ลงบนฟอร์ม
' เราก็จะใช้วิธีการเดียวกันนั่นแหละครับ เพียงแต่ใช้ Code สั่งงานในขณะ Run Time แทน
' การโหลด Form หรือ Control เข้าสู่หน่วยความจำ ... เราใช้คำสั่ง LOAD
' กำหนด Index ของ CommandButton Control ตัวแรกเท่ากับ 0
CtrlIndex = 0
' ข้อมูลตัวอย่างใน TextBox Control
CtrlTextBox(0).Text = CtrlTextBox(0).Name & " index " & CtrlTextBox(0).Index
' เพิ่ม CommandButton อีก 16 ตัว
Call AddControl(16)
End Sub
' / --------------------------------------------------------------------------------------------------
' โปรแกรมย่อยที่ใช้ในการเพิ่ม TextBox Control ตามจำนวนที่กำหนด แบบ Run Time
' / --------------------------------------------------------------------------------------------------
Private Sub AddControl(NumOfControl As Integer)
Dim Count As Integer
For Count = 1 To NumOfControl
' คำสั่ง Load คือ การโหลด Form หรือ Control เข้าสู่หน่วยความจำ
' การใช้คำสั่งนี้ ก็จะเหมือนกับการคัดลอก และ วาง Control ลงบนฟอร์มนั่นเอง
' และเพิ่มจำนวนค่าของ Index ขึ้นอีก 1 ... เพราะมันเป็น Array ไงล่ะครับ
CtrlIndex = CtrlIndex + 1
Load CtrlTextBox(CtrlIndex)
With CtrlTextBox(CtrlIndex)
' จัดตำแหน่งของ Control ... เลขจำนวนเต็มหาก Mod ด้วย 3 จะได้ค่าที่เป็นเศษคือ 0, 1 และ 2 เพื่อกำหนดจำนวน 3 หลัก
Select Case (Count Mod 3)
Case 0
.Left = 900
.Top = CtrlTextBox(CtrlIndex - 1).Top + _
CtrlTextBox(CtrlIndex - 1).Height + 60
Case 1
.Left = CtrlTextBox(CtrlIndex - 1).Left + _
CtrlTextBox(CtrlIndex - 1).Width + 60
.Top = CtrlTextBox(CtrlIndex - 1).Top
Case 2
.Left = CtrlTextBox(CtrlIndex - 1).Left + _
CtrlTextBox(CtrlIndex - 1).Width + 60
.Top = CtrlTextBox(CtrlIndex - 1).Top
End Select
.Visible = True
' ตัวอย่างการโหลดข้อมูลใน TextBox Control
CtrlTextBox(Count).Text = CtrlTextBox(Count).Name & _
" index " & CtrlTextBox(Count).Index
End With
Next
End Sub
' ==========================================================
' เหตุการณ์ชองการคีย์ใน TextBox Control
' ==========================================================
Private Sub CtrlTextBox_KeyPress(Index As Integer, KeyAscii As Integer)
' นำไปประยุกต์กันต่อเองล่ะกันครับ ... พี่น้อง
If KeyAscii = 13 Then
'// ปิดเสียง Beep
KeyAscii = 0
MsgBox "You press TextBox Control Index = " & Index
Else
'// DO SOMETHING
End If
End Sub
thongkorn ตอบกลับเมื่อ 2022-1-17 13:52
การคำนวณหาหลัก ก็ไม่ยากอะไรครับ ใช้จำนวนข้อมูลมาหาร ...
ขอบคุณมากครับ อ. / จะได้นำไปประยุกต์ใช้ตามงานที่ต้องการ
หน้า:
[1]