Page 1 of 1

AND ค่า Value ของแต่ละ Column โดยที่ Column เพิ่มหรือลดลงได้อัตโนมัติ

Posted: Mon Nov 09, 2020 11:11 am
by Serverchita
สวัสดีครับ
ต้องการ AND ค่า Value ของแต่ละ Column โดยที่ Column เพิ่มหรือลดลงได้อัตโนมัติ
จากรูปตัวอย่างต้องการ And ค่าเฉพาะ Column ที่เป็นหมายเลขเท่านั้น โดย Code ที่ใส่ไว้เป็นการ AND 1-5 ไว้ ซึ่งอาจจะมากกว่าหรือน้อยกว่า 5 ก็ได้แล้วต้องมาแก้ Code ใหม่ทุกครั้ง ดังนั้นพอจะมีวิธีที่ทำให้เป็นการ AND แบบอัตโนมัติได้หรือไม่ครับ
ขอบคุณครับ
Capture.JPG
ตัวอย่าง Code

Code: Select all

SELECT Table1.Site, Table1.ItemID, Table1.ID, Table1.[1], Table1.[2], Table1.[3], Table1.[4], Table1.[5], [Table1]![1] & [Table1]![2] & [Table1]![3] & [Table1]![4] & [Table1]![5] AS [And]
FROM Table1
GROUP BY Table1.Site, Table1.ItemID, Table1.ID, Table1.[1], Table1.[2], Table1.[3], Table1.[4], Table1.[5], [Table1]![1] & [Table1]![2] & [Table1]![3] & [Table1]![4] & [Table1]![5];

Re: AND ค่า Value ของแต่ละ Column โดยที่ Column เพิ่มหรือลดลงได้อัตโนมัติ

Posted: Sat Nov 14, 2020 9:24 am
by snasui
:D อาจจะต้องพึ่ง Programming แนวทางคือ ใช้ VBA ดึงข้อมูลใน Table นั้นสัก 1 รายการเพื่อ Loop เก็บ Fields (หัวคอลัมน์) ทั้งหมดไว้ในตัวแปร จากนั้นสร้าง SQL Statement จากตัวแปรนั้นเพื่อเชื่อม Field ที่ต้องการครับ

Re: AND ค่า Value ของแต่ละ Column โดยที่ Column เพิ่มหรือลดลงได้อัตโนมัติ

Posted: Sat Nov 14, 2020 4:27 pm
by Serverchita
snasui wrote: Sat Nov 14, 2020 9:24 am :D อาจจะต้องพึ่ง Programming แนวทางคือ ใช้ VBA ดึงข้อมูลใน Table นั้นสัก 1 รายการเพื่อ Loop เก็บ Fields (หัวคอลัมน์) ทั้งหมดไว้ในตัวแปร จากนั้นสร้าง SQL Statement จากตัวแปรนั้นเพื่อเชื่อม Field ที่ต้องการครับ
ขอบคุณอาจารย์ที่แนะนำครับ แต่ว่าผมยังไม่ได้ใช้ทางแบบที่แนะนำ 100% นะครับ
ผมปรับเปลี่ยนข้อมูลใน Table 1 ใหม่ และใช้ Query Create Table 2 ขึ้นมาใหม่ เพื่อรอการอัพเดทข้อมูลมาเพิ่ม
หลังจากนั้นสร้าง Query Update ตามตัวอย่าง Code ด้านล่าง โดยที่ผมจะสร้างไว้รอ 7 ตัวที่ใช้ Update ข้อมูลเข้าไปใน Table 2
ตรง Code Table1.RunNum)=1 ผมก็จะเปลี่ยนตัวเลข 1 ไปเรื่อย ๆ ตาม Query Update 1-7

Code: Select all

UPDATE Table2 INNER JOIN Table1 ON (Table2.ItemID = Table1.ItemID) AND (Table2.Site = Table1.Site) SET Table2.[AND] = [Table2]![AND] & [Table1]![Mat]
WHERE (((Table1.RunNum)=1));
และเขียน VBA สั่งให้ Run Query Create, Query Update

ผลลัพธ์ที่ได้ตาม Query ชื่อ Result ครับ

Re: AND ค่า Value ของแต่ละ Column โดยที่ Column เพิ่มหรือลดลงได้อัตโนมัติ

Posted: Fri Nov 20, 2020 5:20 pm
by Serverchita
อาจารย์ครับ ผมกลับมาอัพเดทตามแนวทางที่อาจารย์แนะนำครับ
โดยที่ไม่ใช้ Query ปกติ แต่จะเขียน VB ทำ Loop และให้ VB RunSQL ตามด้านล่าง ได้ผลลัพธ์ตามต้องการครับ

Code: Select all

Max = DMax("[RunNum]", "[Table1]", "[Site]= 'TH1'")
i = 1
Do While i <= Max
    DoCmd.RunSQL "UPDATE Table2 INNER JOIN Table1 ON (Table2.ItemID = Table1.ItemID) AND (Table2.Site = Table1.Site) SET Table2.AND = Table2.AND & Table1.Mat WHERE (((Table1.RunNum)=" & i & "));"
    i = i + 1
Loop

Re: AND ค่า Value ของแต่ละ Column โดยที่ Column เพิ่มหรือลดลงได้อัตโนมัติ

Posted: Fri Nov 20, 2020 7:15 pm
by snasui
:D ยินดีด้วยครับ :thup: