กระทู้เก่าบอร์ด อ.Yeadram
2,553 10
URL.หัวข้อ /
URL
นำข้อมูลเข้า Query และสร้างเป็นตารางใหม่เก็บไว้
แค่ตั้งชื่อก็ไม่ค่อยถูกแล้วครับ...ไม่ค่อยจะมีความรู้ทาง VBA...คิดไม่ออกว่าจะเป็นแนวทางไหน...เริ่มเลยครับ
tbl1 เป็นตารางข้อมูลเริ่มต้นประกอบด้วยข้อมูลมากมาย
tbl2 เป็นตารางเก็บข้อมูล
field1 field2
1 A
2 B
3 C
4 D
5 A
6 B
7 C
8 D
9 A
10 B
11 C
12 D
qry1 คิวรี่สร้างจาก tbl1, และมีเงื่อนไข criteria field1 "งานด่วน", field2 "กทม"
field1 field2 field3 field4 field5
งานด่่วน กทม 5001 กก (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น A)
งานด่่วน กทม 5003 ขข (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น B)
งานด่่วน กทม 5007 กง (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น C)
งานด่่วน กทม 5011 คค (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น D)
งานด่่วน กทม 5015 สส (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น A)
งานด่่วน กทม 5022 งง (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น B)
งานด่่วน กทม 5035 กน (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น C)
งานด่่วน กทม 5125 พพ (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น D)
งานด่่วน กทม 5155 ฟพ (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น A)
งานด่่วน กทม 5253 ยบ (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น B)
งานด่่วน กทม 5255 วง (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น C)
งานด่่วน กทม 5321 สน (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น D)
(หาก qry1 มีข้อมูลมากกว่านี้, ในช่อง field5 เมื่อครบ 12 record ใน tbl2 แล้ว, ก็จะเริ่มต้นวนกลับไปที่ record ที่ 1 จนไปถึง record ที่ 12 เป็นเช่นนี้ไปเรื่อย
tbl3 เป็นตารางสร้างไว้แล้วรองรับการจะบันทึกเก็บข้อมูลสะสมไว้, โดยนำมาจาก qry1 ที่ได้แล้ว, ดังนั้นเมื่อมีเงื่อนไขที่กำหนดไว้ใน qry1 คือ "งานด่วน" และ "กทม", qry1 นี้จะเกิดขึ้น และก็จะบันทึกรายการเก็บเข้าในตารางแบบ Append ต่อกันไปครับ
rpt1 รายงานโดยนำข้อมูลจาก qry1 ไปออกเป็น paper รายงานในแต่ละครั้ง
(หมายเหตุ แจ้งให้ทราบว่าใน qry1 ข้อมูลเดิมจะหายไป หากเงื่อนไข field1 และ field2 ถูกปฏิบัติงาน, เงื่อนไขก็จะเปลี่ยนไป, qry1 นี้ก็จะไม่เกิดขึ้นเอง)
ผมนึกไม่ออกว่าจะเริ่มต้นและทำต่อไปอย่างไรครับ..
เช่น ผมทำ form เปล่า ๆ ขึ้นมา, และสร้างปุ่ม Command Button
แต่ vb จะเขียนโค้ดอย่างไร, ออกแนวไหนครับ, เพราะมันหลายซับซ้อนจริง ๆ
สมมุติน่ะครับ ผม
tbl1 เป็นตารางข้อมูลเริ่มต้นประกอบด้วยข้อมูลมากมาย
tbl2 เป็นตารางเก็บข้อมูล
field1 field2
1 A
2 B
3 C
4 D
5 A
6 B
7 C
8 D
9 A
10 B
11 C
12 D
qry1 คิวรี่สร้างจาก tbl1, และมีเงื่อนไข criteria field1 "งานด่วน", field2 "กทม"
field1 field2 field3 field4 field5
งานด่่วน กทม 5001 กก (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น A)
งานด่่วน กทม 5003 ขข (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น B)
งานด่่วน กทม 5007 กง (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น C)
งานด่่วน กทม 5011 คค (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น D)
งานด่่วน กทม 5015 สส (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น A)
งานด่่วน กทม 5022 งง (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น B)
งานด่่วน กทม 5035 กน (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น C)
งานด่่วน กทม 5125 พพ (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น D)
งานด่่วน กทม 5155 ฟพ (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น A)
งานด่่วน กทม 5253 ยบ (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น B)
งานด่่วน กทม 5255 วง (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น C)
งานด่่วน กทม 5321 สน (นำข้อมูลเข้าจาก tbl2 ตามลำดับ เช่น D)
(หาก qry1 มีข้อมูลมากกว่านี้, ในช่อง field5 เมื่อครบ 12 record ใน tbl2 แล้ว, ก็จะเริ่มต้นวนกลับไปที่ record ที่ 1 จนไปถึง record ที่ 12 เป็นเช่นนี้ไปเรื่อย
tbl3 เป็นตารางสร้างไว้แล้วรองรับการจะบันทึกเก็บข้อมูลสะสมไว้, โดยนำมาจาก qry1 ที่ได้แล้ว, ดังนั้นเมื่อมีเงื่อนไขที่กำหนดไว้ใน qry1 คือ "งานด่วน" และ "กทม", qry1 นี้จะเกิดขึ้น และก็จะบันทึกรายการเก็บเข้าในตารางแบบ Append ต่อกันไปครับ
rpt1 รายงานโดยนำข้อมูลจาก qry1 ไปออกเป็น paper รายงานในแต่ละครั้ง
(หมายเหตุ แจ้งให้ทราบว่าใน qry1 ข้อมูลเดิมจะหายไป หากเงื่อนไข field1 และ field2 ถูกปฏิบัติงาน, เงื่อนไขก็จะเปลี่ยนไป, qry1 นี้ก็จะไม่เกิดขึ้นเอง)
ผมนึกไม่ออกว่าจะเริ่มต้นและทำต่อไปอย่างไรครับ..
เช่น ผมทำ form เปล่า ๆ ขึ้นมา, และสร้างปุ่ม Command Button
แต่ vb จะเขียนโค้ดอย่างไร, ออกแนวไหนครับ, เพราะมันหลายซับซ้อนจริง ๆ
สมมุติน่ะครับ ผม
10 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R08344
(เพิ่มเติมครับ)
ในครั้งต่อไปเมื่อมีเงื่อนไขทำให้ qry1 เกิดขึ้น, การจะนำข้อมูลใน tbl2 (คือ A, หรือ B, หรือ C, หรือ D....ใส่ลงไป.) โดยให้เช็ค field5 ใน tbl3 (ถูกบันทึก Append มาโดย qry1), ตัวสุดท้ายที่ได้คือลำดับที่ 12 ก็คือ D, ดังนั้นตัวต่อไปคือ กลับไปลำดับที่ 1 ก็คือ A ......เป็นเช่นนี้ไปเรื่อย
ในครั้งต่อไปเมื่อมีเงื่อนไขทำให้ qry1 เกิดขึ้น, การจะนำข้อมูลใน tbl2 (คือ A, หรือ B, หรือ C, หรือ D....ใส่ลงไป.) โดยให้เช็ค field5 ใน tbl3 (ถูกบันทึก Append มาโดย qry1), ตัวสุดท้ายที่ได้คือลำดับที่ 12 ก็คือ D, ดังนั้นตัวต่อไปคือ กลับไปลำดับที่ 1 ก็คือ A ......เป็นเช่นนี้ไปเรื่อย
3 @R08386
ขอความกรุณามีใครจะแนะนำวิธีนี้จะทำอย่างไรได้บ้างครับ....ขอบพระคุณล่วงหน้าครับ
หมายเหตุ ต้องอ่านให้หมดตั้งแต่ topic ที่ 1 และอีก 2 Reply น่ะครับ (ไม่รู้ว่าผมเขียนข้อความเข้าใจหรือไม่ครับ)
หมายเหตุ ต้องอ่านให้หมดตั้งแต่ topic ที่ 1 และอีก 2 Reply น่ะครับ (ไม่รู้ว่าผมเขียนข้อความเข้าใจหรือไม่ครับ)
4 @R08389
ตารางที่ 1 และ 2 ไม่มีความสัมพันธ์กันเลยหรือเปล่าครับ
หลักการคงจะเป็นว่า append ข้อมูลของ qry1
วิธีทำง่ายๆ ก็คือ เปิด qry1 แล้วเปลี่ยนให้เป็น append query มันก็จะถามว่าจะส่งไปเก็บไว้ที่ตารางเป้าหมายไหน ก็ใส่ชื่อตารางเป้าหมายลงไป สมมติว่าชื่อตาราง tblAll
field5 จะยังว่างอยู่
จากค่อยใช้โค้ด vba เขียนเปิดตารางเป้าหมายขึ้นมา
dim rst as object, intx as integer, strx as string
dim strsql as string
strsql="select field5 from tblall where field5 is null"
set rst=currentdb.openrecordset(strsql)
intx=1
if not rst.eof then
do while not rst.eof
if intx=13 then
intx=1
end if
rst.edit
rst(0)= dlookup("field2","tbl2", "field1=" & intx)
rst.update
intx=intx+1
rst.movenext
loop
end if
rst.close
set rst=nothing
ยังไม่ได้ทดสอบโค้ดนะครับ ลองปรับใช้ดู
หลักการคงจะเป็นว่า append ข้อมูลของ qry1
วิธีทำง่ายๆ ก็คือ เปิด qry1 แล้วเปลี่ยนให้เป็น append query มันก็จะถามว่าจะส่งไปเก็บไว้ที่ตารางเป้าหมายไหน ก็ใส่ชื่อตารางเป้าหมายลงไป สมมติว่าชื่อตาราง tblAll
field5 จะยังว่างอยู่
จากค่อยใช้โค้ด vba เขียนเปิดตารางเป้าหมายขึ้นมา
dim rst as object, intx as integer, strx as string
dim strsql as string
strsql="select field5 from tblall where field5 is null"
set rst=currentdb.openrecordset(strsql)
intx=1
if not rst.eof then
do while not rst.eof
if intx=13 then
intx=1
end if
rst.edit
rst(0)= dlookup("field2","tbl2", "field1=" & intx)
rst.update
intx=intx+1
rst.movenext
loop
end if
rst.close
set rst=nothing
ยังไม่ได้ทดสอบโค้ดนะครับ ลองปรับใช้ดู
5 @R08391
วันนี้อาจารย์อีกท่านมาตอบให้แล้ว...ขอบคุณครับ
ผมจะไปลองปรับใช้ดู, หากติดปัญหาใด, ผมจะยกกระทู้นี้ขึ้นมาอีกครับ
ขอบคุณอาจารย์อีกครั้ง
ผมจะไปลองปรับใช้ดู, หากติดปัญหาใด, ผมจะยกกระทู้นี้ขึ้นมาอีกครับ
ขอบคุณอาจารย์อีกครั้ง
6 @R08397
ลืมบอกอาจารย์สุชาติว่า ตารางที่ 1 และ ตารางที่ 2 ไม่มีความสัมพันธ์กันเลยครับ
จึงเป็นหลักการของอาจารย์คือ Append query ไปยัง Table (สะสมไปเรื่อย)
ผมจะนำไปปรับก่อนน่ะครับ...หากไม่ได้อย่างไร...ขออนุญาตเข้ามาถามใหม่ครับ
จึงเป็นหลักการของอาจารย์คือ Append query ไปยัง Table (สะสมไปเรื่อย)
ผมจะนำไปปรับก่อนน่ะครับ...หากไม่ได้อย่างไร...ขออนุญาตเข้ามาถามใหม่ครับ
7 @R08399
ผมไม่ได้อ่านทั้งหมด ทั้งกระทู้ถาม และความเห็นตอบ สิงที่ผมพูดต่อจากนี้ไม่ได้เกี่ยวกับกระทู้นี้เลย แต่อยากจะพูดครับ (สงสัยเพราะความเมามันพาไป เหอะ เหอะ เหอะ)
วันนี้ผมเลิกงานตามปกติครับ ห้าโมงเย็น แล้วก็ตามปรกติครับ กินเหล้า! สามทุ่มกว่าค่อยได้เข้าเว็บบอร์ด ผมพยายามเปิดอ่านทุกกระทู้ใหม่ๆ ครับ แต่ก็ไม่สามารถตอบได้ทุกกระทู้ อาจเพราะ สมองเวลาเมาไม่พร้อมจะคิดตามได้ในทุกประเด็น
แต่วันนี้เห็นมีคนตอบคำถาม ในกระทู้นี้ ลงชื่อว่า สุภาพ ผมก็....(ขออนุญาตใช้ภาษาวัยรุ่น) โคตรปลื้มใจเลยครับ
อ.สุภาพ คือต้นแบบที่ทำให้ผมรู้จัก Access และเป็นต้นแบบที่ทำให้เว็บนี้เกิดขึ้นเป็นตัวเป็นตน และยืนอยู่ได้จนทุกวันนี้ครับ
ขอบคุณที่ อาจารย์แวะเวียนมาครับ
วันนี้ผมเลิกงานตามปกติครับ ห้าโมงเย็น แล้วก็ตามปรกติครับ กินเหล้า! สามทุ่มกว่าค่อยได้เข้าเว็บบอร์ด ผมพยายามเปิดอ่านทุกกระทู้ใหม่ๆ ครับ แต่ก็ไม่สามารถตอบได้ทุกกระทู้ อาจเพราะ สมองเวลาเมาไม่พร้อมจะคิดตามได้ในทุกประเด็น
แต่วันนี้เห็นมีคนตอบคำถาม ในกระทู้นี้ ลงชื่อว่า สุภาพ ผมก็....(ขออนุญาตใช้ภาษาวัยรุ่น) โคตรปลื้มใจเลยครับ
อ.สุภาพ คือต้นแบบที่ทำให้ผมรู้จัก Access และเป็นต้นแบบที่ทำให้เว็บนี้เกิดขึ้นเป็นตัวเป็นตน และยืนอยู่ได้จนทุกวันนี้ครับ
ขอบคุณที่ อาจารย์แวะเวียนมาครับ
8 @R08401
เห็นด้วยกับ อ. Yeadram ครับ เพราะ อ.สุภาพ ไชยา คือ คนไทยคนเดียวที่มีจำนวนการโพสติด 1 ใน 50 อันดับแรกที่โพสสูงสุดในเวปบอร์ด www.utteraccess.com (ปัจจุบันอันดับที่ 34 ด้วยจำนวนกว่า 6200 โพส) ซึ่งเป็นเวปหลักในการถาม-ตอบเกี่ยวกับ Access ในอเมริกาครับ และเป็นผู้ก่อตั้งเวปถามตอบ Access ภาษาไทยที่มีคนใช้งานสูงสุดก่อนหน้านี้ แต่เวปนั้นได้ปิดตัวไปแล้ว คำถาม-ตอบบางส่วนที่ยังมีเหลืออยู่ ก็อยู่ในลิงค์ที่แสดงในหน้าโอมเพจของที่นี่แหล่ะครับ สามารถพูดได้ว่า อ. สุภาพ คือระดับปรมาจารย์ของ Access คนหนึ่งในระดับโลกทีเดียว
9 @R08403
เคยอ่านในเว็บบอร์ดเก่า ๆ..บางกระทู้ร่วม 10 ปีไ้ด้กระมัง (ผมยังไม่รู้เรื่อง access เลย)
อ.สุภาพ ตอบหลายปัญหาในอดีต......ปัจจุบันก็ยังคงนำมาประยุกต์ใช้ได้ครับ
หลาย ๆ คำตอบของบางกระทู้ก็หายไป, น่าเสียดายครับ (คงนานไป)
รู้สึกปลื้มใจที่ อ.สุภาพ ช่วยตอบให้ผม....ขอบคุณครับ
ปล.
(1) อ.สุภาพตอบปัญหาได้ละเอียดดี, มีเรียงลำดับก่อนหลัง, ทำให้อ่านและเข้าใจง่าย
(2) ก็ขอถือโอกาสนี้แจ้งให้ อ.สุภาพ ได้ทราบว่า "โค้ดที่ให้ใช้ได้ครับ"
อ.สุภาพ ตอบหลายปัญหาในอดีต......ปัจจุบันก็ยังคงนำมาประยุกต์ใช้ได้ครับ
หลาย ๆ คำตอบของบางกระทู้ก็หายไป, น่าเสียดายครับ (คงนานไป)
รู้สึกปลื้มใจที่ อ.สุภาพ ช่วยตอบให้ผม....ขอบคุณครับ
ปล.
(1) อ.สุภาพตอบปัญหาได้ละเอียดดี, มีเรียงลำดับก่อนหลัง, ทำให้อ่านและเข้าใจง่าย
(2) ก็ขอถือโอกาสนี้แจ้งให้ อ.สุภาพ ได้ทราบว่า "โค้ดที่ให้ใช้ได้ครับ"
10 @R08408
ขอบคุณหลายๆ ท่านครับที่ยังจำกันได้
เนื่องจากผมมีงานประจำมีมากขึ้น เลยไม่ค่อยได้มาแวะมาทักทายบ่อยนัก
แม้แต่เว็บต่างประเทศก็ไม่ค่อยได้เข้าไปบ่อยเหมือนกัน
ปัญหาใหม่ๆ เกี่ยวกับ Access ก็อาจจะไม่สามารถตอบได้ทุกอย่างเหมือนเคย
แต่ก็เห็นเพื่อนๆ ที่อยู่ในเว็บนี้ก็ยังเหนียวแน่นกันดี ช่วยกันสานต่อแลกเปลี่ยนประสบการณ์ในการใช้งาน Access โดยเฉพาะ อ. yeadram อ. สันติสุข และอีกหลายท่านที่ไม่ได้เอ่ยชื่อ
Happy programming!
เนื่องจากผมมีงานประจำมีมากขึ้น เลยไม่ค่อยได้มาแวะมาทักทายบ่อยนัก
แม้แต่เว็บต่างประเทศก็ไม่ค่อยได้เข้าไปบ่อยเหมือนกัน
ปัญหาใหม่ๆ เกี่ยวกับ Access ก็อาจจะไม่สามารถตอบได้ทุกอย่างเหมือนเคย
แต่ก็เห็นเพื่อนๆ ที่อยู่ในเว็บนี้ก็ยังเหนียวแน่นกันดี ช่วยกันสานต่อแลกเปลี่ยนประสบการณ์ในการใช้งาน Access โดยเฉพาะ อ. yeadram อ. สันติสุข และอีกหลายท่านที่ไม่ได้เอ่ยชื่อ
Happy programming!
Time: 0.2516s
สมมุติน่ะครับ ผมสร้าง form เปล่าขึ้นมา, และสร้าง Command Button
Event on Click, และ VB โค้ดจะเขียนอย่างไรดีครับ, คิดไม่ออก, เพราะซับซ้อนเหลือเกิน (ผมทำได้แต่ง่าย ๆ ครับ เช่น msg "....." ฯลฯ อะไรประมาณนี้น่ะครับ)