กระทู้เก่าบอร์ด อ.Yeadram
2,476 3
URL.หัวข้อ /
URL
การ Make Table by Query
รบกวนเรียนถามอาจารย์หลาย ๆ ท่านช่วยชี้แนะด้วยครับ
กรณีเมื่อมีการ Make table จาก query และคำสั่ง Make table
ตัวอย่าง query
fld1 fld2 fld3
Amount vat : [fld1]*7/107 Net: [Amount]-[Vat]
2,500 165.33 2,334.67
Currency Currency Currency
หมายเหตุ ใน query, properties ทั้งสามฟิลด์นี้ เป็น Format : Standard, Decimal Places : 2 (ทศนิยม 2 ตำแหน่ง)
เมื่อ run query แล้วก็ได้ตามนั้น
แต่เมื่อ Make Table ไปแล้ว, ฟิลด์ทั้งสามนี้ Properties เปลี่ยนไปดังนี้ครับ
Amount : Data Type : Currency
Format ว่าง ๆ ไม่มีอะไร, Decimal Place เป็น Auto
Vat : Data Type : Number
Field Size : Double , Decimal Place เป็น Auto
Net : Data Type : Currency
Format ว่าง ๆ ไม่มีอะไร, Decimal Place เป็น Auto
มีวิธีไหมครับที่จะให้ Data type, Properties เป็นไปตามที่กำหนดไว้
หมายเหตุ ทราบครับว่า การคำนวนควรอยู่ใน query ไม่ควรเก็บไว้ใน table
แต่มีข้อสงสัยครับว่า, จะมีวิธีที่จะให้เป็นไปตามที่กำหนดได้ไหม, และจะกำหนดได้ที่ไหนครับ
ขอบพระคุณล่วงหน้าครับ
กรณีเมื่อมีการ Make table จาก query และคำสั่ง Make table
ตัวอย่าง query
fld1 fld2 fld3
Amount vat : [fld1]*7/107 Net: [Amount]-[Vat]
2,500 165.33 2,334.67
Currency Currency Currency
หมายเหตุ ใน query, properties ทั้งสามฟิลด์นี้ เป็น Format : Standard, Decimal Places : 2 (ทศนิยม 2 ตำแหน่ง)
เมื่อ run query แล้วก็ได้ตามนั้น
แต่เมื่อ Make Table ไปแล้ว, ฟิลด์ทั้งสามนี้ Properties เปลี่ยนไปดังนี้ครับ
Amount : Data Type : Currency
Format ว่าง ๆ ไม่มีอะไร, Decimal Place เป็น Auto
Vat : Data Type : Number
Field Size : Double , Decimal Place เป็น Auto
Net : Data Type : Currency
Format ว่าง ๆ ไม่มีอะไร, Decimal Place เป็น Auto
มีวิธีไหมครับที่จะให้ Data type, Properties เป็นไปตามที่กำหนดไว้
หมายเหตุ ทราบครับว่า การคำนวนควรอยู่ใน query ไม่ควรเก็บไว้ใน table
แต่มีข้อสงสัยครับว่า, จะมีวิธีที่จะให้เป็นไปตามที่กำหนดได้ไหม, และจะกำหนดได้ที่ไหนครับ
ขอบพระคุณล่วงหน้าครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R11382
1. สร้าง table ว่างรอไว้ครับ (tblTemp)
กำหนดแบบที่ต้องการเลย
2. เมื่อต้องการข้อมูล เปลี่ยนจาก make table เป็น Insert query แทน (Insert Into tblTemp Select ...)
* ลบข้อมูลเดิมทิ้งให้หมด ถ้ามี (Delete * From tblTemp) - ซึ่งจะไม่ทำก็ได้ถ้ามั่นใจว่าไม่มีข้อมูล (จากการลบที่ ขั้นตอนที่ 4.)
3. นำไปใช้งาน เช่น ออกรายงาน ...
4. หลังจากใช้งานเสร็จแล้ว ลบข้อมูลทิ้งให้หมด (Delete * From tblTemp) - เพื่อให้ database ไม่โต และพร้อมสำหรับการใช้งานครั้งต่อไป
กำหนดแบบที่ต้องการเลย
2. เมื่อต้องการข้อมูล เปลี่ยนจาก make table เป็น Insert query แทน (Insert Into tblTemp Select ...)
* ลบข้อมูลเดิมทิ้งให้หมด ถ้ามี (Delete * From tblTemp) - ซึ่งจะไม่ทำก็ได้ถ้ามั่นใจว่าไม่มีข้อมูล (จากการลบที่ ขั้นตอนที่ 4.)
3. นำไปใช้งาน เช่น ออกรายงาน ...
4. หลังจากใช้งานเสร็จแล้ว ลบข้อมูลทิ้งให้หมด (Delete * From tblTemp) - เพื่อให้ database ไม่โต และพร้อมสำหรับการใช้งานครั้งต่อไป
3 @R11488
ผมก็ใช้ วิธี เดียวกับ ท่าน PichaiTC เลยครับ
ตอนแรก ก็คิดว่า จะ ทำ Query แล้ว สร้าง Table เหมือนกัน แต่มันค่อนข้างยุ่งยากมาก และ ที่สำคัญ หากเราสร้างแล้ว แล้ว ลบ Table บ่อยๆ MDB มีโอกาส พังสูงมากครับ
ตอนแรก ก็คิดว่า จะ ทำ Query แล้ว สร้าง Table เหมือนกัน แต่มันค่อนข้างยุ่งยากมาก และ ที่สำคัญ หากเราสร้างแล้ว แล้ว ลบ Table บ่อยๆ MDB มีโอกาส พังสูงมากครับ
Time: 0.3215s
วิธีที่ 2.Create Table ด้วยวิธีอื่น เช่น DAO
วิธีที่ 3.ถึงแม้ Datatype จะเปลี่ยน หรือ Decimal จะเปลี่ยน คุณก็แปลงข้อมูลได้เวลาจะใช้โดยใช้ Function เข้ามาช่วย แต่ที่น่ากังวลคือ Datatype ที่เปลี่ยนมีข้อมูลครบหรือไม่ หรือมีการตัดค่าทศนิยมตำแหน่งสุดท้ายเป็นอะไร