รบกวนขอคำชี้แนะ และขออภัย หากมีคำถามแบบนี้แล้วครับผม
มีความจำเป็นต้องใช้การ Query โดยมีเงื่อนไข หลัง WHERE ที่ต้องใช้ criteria เป็นการรับค่าจาก หลายๆฟอร์ม จึงจำเป็นต้องส่งค่ามาเก็บไว้ใน
ตัวแปร ถึงจะสามารถใช้ Query ตัวเดียวกัน เพื่อให้ได้คำตอบ (หรือเปล่านะ) ไม่งั้น ต้องใช้ Query หลายตัวเพื่อ ให้ได้คำตอบ
เท่าที่รู้คือ ต้องใช้ criteria หลัง Where ที่เป็น ค่าที่ได้มาจาก Function จึงได้สร้าง Function แบบง่ายๆเพื่อ รับและส่งค่าตัวแปร จาก หลายๆฟอร์ม
มายัง Query ตัวดังกล่าว ผ่านทาง Function ซึ่ง หากเป็น เงื่อนไขที่ เป็น = จะได้คำตอบปกติ แต่เมื่อไหร่ ที่ใช้ เป็น Like จะออกค่าว่าง
โดยถ้าทดสอบระบุค่า ตรงๆ หลังเงื่อนไข WHERE จะได้ปกติ
โดยมี่ ตัวอย่าง ดังนี้
######################### Where invoice_id=ฟังก์ชั่น แล้ว ใช้งานได้ #######################
กำหนด ตัวแปร
Public strInvid As String
สร้างปุ่มเพื่อรับและส่งค่าเข้าไปเก็บไว้ในตัวแปรก่อน
Private Sub Command0_Click()
'รับค่าจาก ฟิลด์ ที่ต้องการ
strInvid = [invoice_id]
' ไหนดูผลหน่อยย
MsgBox "" & strInvid, vbOKOnly, "your invoice_id"
End Sub
ส่งค่าไปฝากไว้ใน Function เพื่อ ไปใช้หลัง WHERE
Public Function get_invoice_id() As String
get_invoice_id = strInvid
End Function
ตัวอย่าง Query ที่ผลลัพธ์ออกปกติ
SELECT invoice_main.invoice_id
FROM invoice_main
WHERE (((invoice_main.invoice_id)=Get_invoice_id()));
######################### Where invoice_id like ฟังก์ชั่น แล้ว ใช้งานไม่ได้ #####################
กำหนด ตัวแปร
Public strsearch_Invid As String
สร้างปุ่มเพื่อรับและส่งค่าเข้าไปเก็บไว้ในตัวแปรก่อน
Private Sub Command50_Click()
strsearch_Invid = "'NC*'"
MsgBox "" & strsearch_Invid, vbOKOnly, "criteria "
End Sub
ส่งค่าไปฝากไว้ใน Function เพื่อ ไปใช้หลัง WHERE
Public Function drplist_search() As String
drplist_search = strsearch_Invid
End Function
ตัวอย่าง Query ที่ผลลัพธ์ไม่แสดงค่าใด
SELECT invoice_main.invoice_id
FROM invoice_main
WHERE (((invoice_main.invoice_id) Like drplist_search()));