ใน Stored Procedures จะรับค่าจาก Listbox ที่ Multi Select เป็น Simple
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 249   2
URL.หัวข้อ / URL
ใน Stored Procedures จะรับค่าจาก Listbox ที่ Multi Select เป็น Simple

ไม่ทราบว่าจะต้องกำหนดพารามิเตอร์กี่ตัวครับ

2 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R04835
ต้องสร้าง Stored Procedure แบบ On-Fly ครับ

ตัวอย่างข้างล่างเป็นการสร้าง Stored Procedure ที่รับค่า String แล้วนำมาเป็นค่าใน Where clause แบบใช้ IN operator ครับ

Public Function CreateProc2(strName As String)

Dim strProc As String

strProc = "Create Procedure qryPoster3 as " & _
"select qnumber from dbo.question where qname in (" & strName & ")"

CurrentProject.Connection.Execute strProc

End Function

เวลาจะสร้าง ก็เรียกใช้คำสั่ง

? CreateProc2("'BADMan','Ac'")

เมื่อวิวดู จะเห็นว่า แสดงหมายเลขกระทู้ที่ผู้ตอนคือ BADMan และ Ac ครับ

และนี่คือตัวอย่างโค้ดในการดึงรายการที่ถูกเลือกจาก List Box แล้วเก็บไว้ในตัวแปร String ชื่อ strName

...
If Me.List2.ItemsSelected.Count > 0 Then
For intCurrentRow = 0 To Me.List2.ListCount - 1
If Me.List2.Selected(intCurrentRow) Then
strName = strName& Me.List2.Column(1, intCurrentRow) & ","
I = I + 1
End If
Next intCurrentRow
Else
...

ลองประยุกต์ใช้ดูครับ
2 @R04841
หรือจะลองแบบนี้ก็ได้ครับ

Create Procedure GetPoster
@PosterName varchar(2048)
AS
declare @sql varchar(3000)
select @sql = 'SELECT qnumber
FROM question
WHERE qname in (' + @PosterName + ')'
exec (@sql)
GO

เวลาเรียกใช้

exec GetPoster "'BADMan','ac'"

@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0615s