1
ห้อง MS Access / VBA SQL ต้องการเปลี่ยนประเภท Column ที่มีเลขและตัวหนังสือผสมอยู่ ให้เป็นตัวเลข
« เมื่อ: 03 ต.ค. 66 , 22:52:14 »
รบกวนสอบถามพี่ๆหน่อยครับ
ในVBA พอดีว่าจะใช้ SQL เพื่อดึงข้อมูล โดยใช้ตัวเลขเป็นเงื่อนไข วิ่งไปหาข้อมูลในColumnที่มีเลขกะตัวหนังสือ ผสมอยู่ครับ
ตัวอย่าง
Select size from TableA where size >= 0.11 and size <= 0.59
ปัจจุบัน Column size เป็นString โดยที่ข้อมูล มีทั้งตัวเลข และ ตัวหนังสือ ผสมอยู่ ตัวเลขนั้น หลักทศนิยมก็ไม่เท่ากัน จะมี1-3หลัก ปะปนกันอยู่
ลองทำหลายวิธีแล้วครับ
Isnumeric(size) >= 0.11,PATINDEX, Between, และ อื่นๆ ไม่ได้ครับ
เท่าที่หาข้อมูลมา ลองทำแล้วไม่ได้ครับ
https://www.geeksforgeeks.org/sql-query-to-get-only-numbers-from-a-string/
https://www.pragimtech.com/blog/sql-optimization/sql-function-to-get-number-from-string/
ตอนนี้ใช้เป็น Where size like 0.11* or size like 0.12* ...... or size like 0.59*
ถ้าบางทีเราคิวรี่ ทศนิยมสามหลัก(0.135-4.965) ก็น่าจะไม่ค่อยดีเท่าไหร่ เลยอยากจะเปลี่ยน วิธีการเขียนใหม่
อยากรบกวนสอบถามหน่อยครับว่า
1.เราจะเปลี่ยน ประเภท Columnให้เป็น Integer เพื่อให้มัน where แล้วหา ค่าตั้งแต่เริ่มต้น ถึงปลายทางได้ ยังไงครับ
2.หรือเราจะเขียนFunction SQL ในVBA ยังไงหรอครับ
อ้างอิง การเขียน Function SQL
https://www.pragimtech.com/blog/sql-optimization/sql-function-to-get-number-from-string/
ู***โดยที่ พอคิวรี่ ออกมาแล้ว ค่าจะออกมาแต่ตัวเลขหรือ ค่าจะออกมาทั้งหยวง(ที่มีทั้งเลขและตัวหนังสือก็ได้ครับ)***
ปล. ปัจจุบัน เขียนคิวรี่ SQL ตอนใช้ currentdb.recordset() ครับ
ขอบคุณมากครับ
ในVBA พอดีว่าจะใช้ SQL เพื่อดึงข้อมูล โดยใช้ตัวเลขเป็นเงื่อนไข วิ่งไปหาข้อมูลในColumnที่มีเลขกะตัวหนังสือ ผสมอยู่ครับ
ตัวอย่าง
Select size from TableA where size >= 0.11 and size <= 0.59
ปัจจุบัน Column size เป็นString โดยที่ข้อมูล มีทั้งตัวเลข และ ตัวหนังสือ ผสมอยู่ ตัวเลขนั้น หลักทศนิยมก็ไม่เท่ากัน จะมี1-3หลัก ปะปนกันอยู่
ลองทำหลายวิธีแล้วครับ
Isnumeric(size) >= 0.11,PATINDEX, Between, และ อื่นๆ ไม่ได้ครับ
เท่าที่หาข้อมูลมา ลองทำแล้วไม่ได้ครับ
https://www.geeksforgeeks.org/sql-query-to-get-only-numbers-from-a-string/
https://www.pragimtech.com/blog/sql-optimization/sql-function-to-get-number-from-string/
ตอนนี้ใช้เป็น Where size like 0.11* or size like 0.12* ...... or size like 0.59*
ถ้าบางทีเราคิวรี่ ทศนิยมสามหลัก(0.135-4.965) ก็น่าจะไม่ค่อยดีเท่าไหร่ เลยอยากจะเปลี่ยน วิธีการเขียนใหม่
อยากรบกวนสอบถามหน่อยครับว่า
1.เราจะเปลี่ยน ประเภท Columnให้เป็น Integer เพื่อให้มัน where แล้วหา ค่าตั้งแต่เริ่มต้น ถึงปลายทางได้ ยังไงครับ
2.หรือเราจะเขียนFunction SQL ในVBA ยังไงหรอครับ
อ้างอิง การเขียน Function SQL
https://www.pragimtech.com/blog/sql-optimization/sql-function-to-get-number-from-string/
ู***โดยที่ พอคิวรี่ ออกมาแล้ว ค่าจะออกมาแต่ตัวเลขหรือ ค่าจะออกมาทั้งหยวง(ที่มีทั้งเลขและตัวหนังสือก็ได้ครับ)***
ปล. ปัจจุบัน เขียนคิวรี่ SQL ตอนใช้ currentdb.recordset() ครับ
ขอบคุณมากครับ