อาจารย์ช่วยดูDB ให้หน่อยค่ะ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 300   7
URL.หัวข้อ / URL
อาจารย์ช่วยดูDB ให้หน่อยค่ะ

คือว่า ทำ db ขึ้นมาเพื่อประมวลผลเครื่องอ่านลายนิ้วมือค่ะ อยากให้อาจารย์ช่วยดูให้หน่อยค่ะ
1. query ชื่อ check น่ะค่ะ ที่ field Off (วันที่พนักงานลา (ลาเป็นชม.หรือเป็นวัน)น่ะค่ะ เอามาจาก table Off) คือว่าอยากให้มันแทรกว่าวันที่เท่าไหร่ พนักงานคนไหน ลากิจทั้งวันน่ะค่ะ มันจะขึ้นเฉพาะที่เค้าลา ครึ่งวัน แต่ไม่ขึ้นเวลาที่เค้าลาทั้งวันน่ะค่ะ ทำยังไงให้มันอยู่ในตารางเดียวกันได้มั้ยคะ จะได้ดู
ได้ว่า วันนั้นเค้าหายไปไหน
2.ถ้าข้อมูลมีประมาณเดือนละ 12,000 record ปีนึงก็ประมาณ 150,000 ไม่ทราบว่า db จะรีบไหว
รึป่าวคะ
3.ทำยังไงให้การประมวลผลเร็วขึ้นคะ กลัวว่าพอเยอะๆเข้าแล้วจะช้ามากน่ะค่ะ
4.คือว่าใน table CHECKINOUT จะ link มาจาก db อีกเครื่องนึง ถ้าต้องการจะสร้าง tableเพื่อ
ที่จะเก็บข้อมูลที่ link เข้ามา(แบบว่า เป็น table back up เลยค่ะ แต่อยู่ใน db ของเรา เวลาประมวลผลจะได้เร็วหน่อย) มีวิธีมั้ยคะ อาจารย์บอกว่าให้ใช้ copyobject อาจารย์พอจะมีตัวอย่าง
มั้ยคะ คือว่า เพราะว่า ไม่ได้สร้าง formให้รับข้อมูลค่ะ เลยคิดไม่ออกว่าจะทำยังไง
รบกวนอาจารย์หน่อยนะคะ

7 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R02385
ขอตอบเป็นบางข้อนะครับ เพราะผมยังไม่ได้ดูไฟล์ที่แนบมาด้วย

2. น่าจะไม่มีปัญหาอะไรครับในด้วยความจุ แต่ความเร็วในการประมวลผลจะขึ้นอยู่กับการออกแบบตาราง ความเร็วของเครื่องฯ ระบบเน็ตเวิร์ค จำนวนผู้ใช้ร่วมกัน และการดูแลรักษาข้อมูล เช่น ต้อง compact ฐานข้อมูลเมื่อมีการลบหรือเปลี่ยนแปลงข้อมูล เป็นประจำ

3. เหมือนข้อ 2 ครับ ถ้าต้องเก็บข้อมูลไว้หลายๆ ปี และต้องใช้ข้อมูลของทุกปีอยู่เป็นประจำ อาจจะต้องเปลี่ยนไปใช้ SQL Server หรือฐานข้อมูลตัวอื่นที่รองรับข้อมูลจำนวนมากๆ ได้ดีกว่า

4. ลองแบบนี้ครับ

Sub CopyTable()
DoCmd.CopyObject , "ชื่อตารางใหม่", acTable, "ชื่อตารางที่ลิ้งค์มา"
End Sub

2 @R02394
ลองแล้วค่ะ มันขึ้นเป็นเหมือนตารางที่ link มาเลยค่ะ คือมีสัญญลักษณ์เป็น linked table ค่ะ (ไม่ใช่ table ใน db ของมันเอง) กลายเป็นว่า มี link table 2 table
เลยค่ะ
3 @R02399
ลองใช้ MakeTable Query ดูก็ได้ครับ

หรือจะใช้โค้ดก็ได้ครับ

Private Sub CopyTable()
Dim dbs As DAO.Database
Set dbs = CurrentDb
dbs.Execute "SELECT ชื่อตารางต้นฉบับ.* INTO ชื่อตารางใหม่ " _
& "FROM ชื่อตารางต้นฉบับ;"
dbs.Close
Set dbs = Nothing
End Sub
4 @R02401
ไม่รู้อย่างนี้จะได้หรือเปล่าครับ

Sub MakeNewTable()

DoCmd.RunSQL "SELECT table CHECKINOUT .* INTO NewCHECKINOUT FROM table CHECKINOUT"

End Sub
5 @R02402
มันขึ้นว่า
compile error :
user-defined type not defined
แล้วก็มีแถบสีเหลืองที่ Private Sub CopyTable() ค่ะ
งงค่ะ
6 @R02404
ให้ลองคำแนะนำของคุณ moo ดีกว่าครับ เพราะไม่ต้องใส่ DAO 3.6 ใน References

7 @R02421
ขอบคุณมากค่ะ
ฝากอาจารย์ดูคำถามข้อแรกหน่อยนะคะ รบกวนหน่อยนะคะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0574s