กระทู้เก่าบอร์ด อ.Yeadram
1,500 6
URL.หัวข้อ /
URL
สั่ง code ให้รันเมื่อ access พบว่าซ้ำ
[FONT=Arial]ผมใช้ความสามารถของ access ในการตรวจสอบข้อมูลซ้ำ ก็คือให้เช็ค primary key[/FONT] [FONT=Arial]ซึ่งเมื่อมีการซ้ำกัน Access ก็จะโชว์หน้าต่าง error มาตามปกติ[/FONT]
[SIZE=4]คำถามครับ[/FONT] [FONT=Arial]ถ้าผมมี code ตัวนึงที่ต้องการให้รันเฉพาะเวลาที่มีการซ้ำกันของ primary key (ถ้าไม่ซ้ำก็ไม่ต้องรัน) ผมจะเขียนคำสั่ง if อย่างไรครับ
[SIZE=4]ปล. [/FONT] [FONT=Arial]ผมไม่ต้องการ select ข้อมูลมาตรวจสอบก่อน insert น่ะครับ เลยให้ Access มันเช็คเอง เพราะกลัวว่าถ้าข้อมูลมันเยอะแล้วจะช้า[/FONT]
[SIZE=4]ขอบคุณครับ[/FONT]
[SIZE=4]คำถามครับ[/FONT] [FONT=Arial]ถ้าผมมี code ตัวนึงที่ต้องการให้รันเฉพาะเวลาที่มีการซ้ำกันของ primary key (ถ้าไม่ซ้ำก็ไม่ต้องรัน) ผมจะเขียนคำสั่ง if อย่างไรครับ
[SIZE=4]ปล. [/FONT] [FONT=Arial]ผมไม่ต้องการ select ข้อมูลมาตรวจสอบก่อน insert น่ะครับ เลยให้ Access มันเช็คเอง เพราะกลัวว่าถ้าข้อมูลมันเยอะแล้วจะช้า[/FONT]
[SIZE=4]ขอบคุณครับ[/FONT]
6 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R18229
ขอบคุณครับ อ.สันติสุข
ปล. รหัส error ดูได้จากที่ไหนครับ
ปล. รหัส error ดูได้จากที่ไหนครับ
3 @R18231
อีกเรื่องครับ จากที่อาจารย์บอกว่า select primary key มาเช็คก่อนสั่ง insert มันไม่ช้า แต่ถ้าผมใส่ where เข้าไปด้วยมันจะช้าลงหรือเปล่าครับ (สมมติว่ามีประมาณ ห้าหมื่น เรคคอร์ดครับ)
คือตอนที่ผมทำโปรเจคใช้ PHP + MSSQL เวลาที่จะ insert barcode(primary) ผมจะให้ select มาตรวจก่อนว่ามี barcode ที่จะเพิ่มหรือยัง (โดยมีเงื่อนไข where ด้วย) ตอนแรกๆ ก็ใช้งานได้ดีครับ พอจำลองข้อมูลประมาณ 2 ปี (ประมาณ ห้าหมื่น เรคคอร์ด) ตอนตรวจสอบมันเริ่มช้าอย่างเห็นได้ชัดเลยครับ เลยต้อง coding กันใหม่ ไม่ทราบว่า access มันจะเป็นเหมือนกันหรือเปล่าครับ
คือตอนที่ผมทำโปรเจคใช้ PHP + MSSQL เวลาที่จะ insert barcode(primary) ผมจะให้ select มาตรวจก่อนว่ามี barcode ที่จะเพิ่มหรือยัง (โดยมีเงื่อนไข where ด้วย) ตอนแรกๆ ก็ใช้งานได้ดีครับ พอจำลองข้อมูลประมาณ 2 ปี (ประมาณ ห้าหมื่น เรคคอร์ด) ตอนตรวจสอบมันเริ่มช้าอย่างเห็นได้ชัดเลยครับ เลยต้อง coding กันใหม่ ไม่ทราบว่า access มันจะเป็นเหมือนกันหรือเปล่าครับ
4 @R18232
http://msdn.microsoft.com/en-us/library/office/bb221208%28v=office.12%29.aspx
ใน help file ของ Access เอง (กด F1) ก็มีครับ ลองค้นด้วยคำว่า Trapable DAO Error แต่ถ้าเป็น help ภาษาไทยผมไม่รู้นะ
ใน help file ของ Access เอง (กด F1) ก็มีครับ ลองค้นด้วยคำว่า Trapable DAO Error แต่ถ้าเป็น help ภาษาไทยผมไม่รู้นะ
5 @R18233
ขอบคุณครับอาจารย์
ตอบเร็วมากเลยครับ
ตอบเร็วมากเลยครับ
6 @R18234
คุณแน่ใจหรือเปล่าว่าเป็น primary key เพราะถ้าเป็น มันไม่ควรจะช้านะ ไม่ว่าเขียนด้วยภาษาอะไรก็ตาม ลองเช็คฐานข้อมูลคุณดูครับว่ามันมีหลายๆก้อนหรือเปล่า แล้วถ้าทำให้เป็น cluster index ไปด้วย ก็จะยิ่งเร็วครับ
ระบบผมมีเป็นล้านเรคอร์ด ผมยังหาได้เร็วปรื๊ดเลย
ระบบผมมีเป็นล้านเรคอร์ด ผมยังหาได้เร็วปรื๊ดเลย
Time: 0.3380s
Private Sub Form_Error(DataErr As Integer, Response As Integer)
If DataErr = 3022 Then
รันโค้ดของคุณ
Response = acDataErrContinue
End if
End Sub
ปล. การเช็คจาก primary key ยังไงก็ไม่ช้าหรอกครับ เพราะมันเป็นคีย์อยู่แล้ว