กระทู้เก่าบอร์ด อ.Yeadram
5,838 3
URL.หัวข้อ /
URL
ต้องการสร้าง List Box ใน Form
เรียน อ.สันติสุขและทุกท่าน
ผมได้พยายามค้นหาจาก board เรื่องการสร้าง list box แต่ยังไม่พบ ผมเลยอยากทราบการเขียน form ที่เป็นในรูปแบบ List Box คือผม table อยู่หนึ่งอันที่มีชือว่า tSendback โดยมีข้อมูลดังนี้
ReasonCode Reason_Desc
01 ลืมใส่ ID
02 ขาดลายเซ็นต์ในบัตรประชาชน
03 ขาดทะเบียนบ้าน
04 ขาดสมุดบัญชี
ผมต้องการสร้างฟร์อมให้สามารถ trick box ที่หน้า reason code โดยสามารถ trick มากกว่า 1 รายการ และมี field รองรับในคิวรี่ว่ามีค่าเป็นอะไร เช่น 01;03
ผมได้พยายามค้นหาจาก board เรื่องการสร้าง list box แต่ยังไม่พบ ผมเลยอยากทราบการเขียน form ที่เป็นในรูปแบบ List Box คือผม table อยู่หนึ่งอันที่มีชือว่า tSendback โดยมีข้อมูลดังนี้
ReasonCode Reason_Desc
01 ลืมใส่ ID
02 ขาดลายเซ็นต์ในบัตรประชาชน
03 ขาดทะเบียนบ้าน
04 ขาดสมุดบัญชี
ผมต้องการสร้างฟร์อมให้สามารถ trick box ที่หน้า reason code โดยสามารถ trick มากกว่า 1 รายการ และมี field รองรับในคิวรี่ว่ามีค่าเป็นอะไร เช่น 01;03
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R15677
แก้ไข พอดีไปใส่วงเล็บใหญ่ ตัวหนังสือคำว่า Ctrl และ Shift
Extended:
หมายถึง เลือกแบบ Multi Select ต้องกดปุ่ม Ctrl เพื่อเลือกตามที่คลิ๊ก Shift หรือปุ่ม เพื่อเลือกหัวกับท้ายทั้งหมดที่คลิ๊ก (เหมือนเลือกไฟล์ใน Windows)
Extended:
หมายถึง เลือกแบบ Multi Select ต้องกดปุ่ม Ctrl เพื่อเลือกตามที่คลิ๊ก Shift หรือปุ่ม เพื่อเลือกหัวกับท้ายทั้งหมดที่คลิ๊ก (เหมือนเลือกไฟล์ใน Windows)
3 @R21799
แอบมาอ่าน กำลังศึกษาเรื่องนี้อยู่ครับ
ทำได้แล้วครับ ถ้ามี lstbox เดียว
แต่ถ้ามี listbox หลายตัวอ่ะครับ ต้องใช้โค๊ดประมาณไหนครับ
ทำได้แล้วครับ ถ้ามี lstbox เดียว
แต่ถ้ามี listbox หลายตัวอ่ะครับ ต้องใช้โค๊ดประมาณไหนครับ
Time: 0.3076s
วันนี้ว่างเกิน ขออนุญาติตอบอีกกระทู้แล้วกันนะครับ
- สร้าง List Box ใหม่บนฟอร์ม ตัวอย่าง List Box ใช้ชื่อ List1
- กำหนดค่าใน List Box Property > Other > Multi Select = Extended หรือ Simple
- กำหนด Row Source ใน List Box อย่างที่คุณทำ
- สร้างปุ่มใหม่ เพื่อไว้แสดงค่า Item ที่ได้จากการเลือก Multi Select ใน List Box
- เขียนโค๊ดลงในปุ่มที่สร้างใหม่ใน Event > On Click
- หากต้องการแสดงค่าเป็น MsgBox สามารถเขียนโค๊ดได้ดังนี้:
'---------------Start Code---------------
Dim i As Integer
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
MsgBox List1.ItemData(i) ' หากต้องการค่าจาก Column อื่นให้ใช้เป็น List1.Column(1,i) แทน
End If
Next i
'----------------End Code----------------
- หากต้องการใส่ค่าลงใน Text Box ตัวอย่างใช้ชื่อ Text1 สามารถเขียนโค๊ดได้ดังนี้:
'---------------Start Code---------------
Dim i As Integer
Dim strSelected As String
strSelected = ""
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
If strSelected = "" Then
strSelected = List1.ItemData(i) ' หากต้องการค่าจาก Column อื่นให้ใช้เป็น List1.Column(1,i) แทน
Else
strSelected = strSelected & ";" & List1.ItemData(i)
End If
End If
Next i
Me.Text1 = strSelected
'----------------End Code----------------
* การใช้คำสั่ง List1.ItemData(i) คือ ส่งค่าข้อมูลใน List1 ที่บรรทัด (Row) เท่ากับ i ซึ่งค่าที่ได้จะเป็นค่า Column ตามที่กำหนดใน Property > Data > Bound Column: 1 ตามมาตรฐาน แต่หากต้องการให้ส่งค่าใน Column ถัดมา ก็ให้เปลี่ยนค่าใน Property > Data > Bound Column: 2 หรือ 3 ตามต้องการ แต่หากอยากคงค่า Property ไว้ ต้องการเปลี่ยนเฉพาะในโค๊ด VBA ก็เปลี่ยนจาก
List1.ItemData(i) เป็น List1.Column(1, i)
* Multi Select = Extended หรือ Simple
Extended:
หมายถึง เลือกแบบ Multi Select ต้องกดปุ่ม เพื่อเลือกตามที่คลิ๊ก หรือปุ่ม เพื่อเลือกหัวกับท้ายทั้งหมดที่คลิ๊ก (เหมือนเลือกไฟล์ใน Windows)
Simple:
หมายถึง เลือกแบบ Multi Select โดยคลิ๊กเมาส์ได้ทันที ไม่ต้องกดใดๆ
ประมาณนี้ครับ