กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
317 7
URL.หัวข้อ /
URL
ทำปุ่ม Command Buttom ให้คลิกได้ครั้งเดียว
รบกวน อ.สุภาพ , อ.BADMAN และพี่ๆ ท่านอื่นๆ แนะนำด้วยครับ
ที่ Table ชื่อ TblCheck2Field และที่ Form ชื่อ FrmTblCheck2Field
ผมต้องการให้สามารถคลิกได้แค่ 1 ครั้งเท่านั้น ถ้าคลิกซ้ำอีก ก็จะถาม Password เพื่อให้กรอกข้อมูล
ปัญหาคือ เมื่อคลิกที่ CmdImportData ผมอยากให้แต่ละ Record เป็นอิสระต่อกัน
กล่าวคือปุ่มของใครของมัน เนื่องจากตอนนี้ เมื่อผมคลิกที่ปุ่ม CmdImportData ที่ Record ไหน 1 ครั้ง
ปุ่ม CmdImportData ของ Record อื่นๆ จะถูก Update โดย Auto ในขณะที่ผมยังไม่ได้คลิกที่ปุ่ม CmdImportData ของ Record นั้นๆ เลย
ผมส่งตัวอย่าง File แนบมาด้วยครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
ที่ Table ชื่อ TblCheck2Field และที่ Form ชื่อ FrmTblCheck2Field
ผมต้องการให้สามารถคลิกได้แค่ 1 ครั้งเท่านั้น ถ้าคลิกซ้ำอีก ก็จะถาม Password เพื่อให้กรอกข้อมูล
ปัญหาคือ เมื่อคลิกที่ CmdImportData ผมอยากให้แต่ละ Record เป็นอิสระต่อกัน
กล่าวคือปุ่มของใครของมัน เนื่องจากตอนนี้ เมื่อผมคลิกที่ปุ่ม CmdImportData ที่ Record ไหน 1 ครั้ง
ปุ่ม CmdImportData ของ Record อื่นๆ จะถูก Update โดย Auto ในขณะที่ผมยังไม่ได้คลิกที่ปุ่ม CmdImportData ของ Record นั้นๆ เลย
ผมส่งตัวอย่าง File แนบมาด้วยครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R02177
คุณ Suchat ครับ คุณต้องใส่เงื่อนไข ว่าจะ Update Record ใหน
3 @R02178
ผมส่ง File ที่เป็น Version 97 มาให้แล้วครับ
รบกวน แนะนำด้วยครับ
ขอบพระคุณมากๆ ครับ
รบกวน แนะนำด้วยครับ
ขอบพระคุณมากๆ ครับ
4 @R02181
1. ตอนคุณตรวจสอบเงื่อนไขด้วยคำสั่ง Dlookup คุณไม่ได้จำเพาะเจาะจง
ว่าเป็นเรคคอร์ดไหน ฉะนั้นมันจะดูที่เรคคอร์ดแรกเท่านั้น
2. ผมได้เพิ่มฟิลด์ [DocNo] เข้าไปด้วยเพื่อให้ง่ายในการตรวจสอบเงื่อนไข
3. ตอนคุณสั่ง Run SQL คุณก็ไม่ได้ใส่เงื่อนไขอย่างเจาะจงเรคคอร์ด มันจึง
Update ให้ทุกเรคคอร์ จึงเป็นผลให้เรคคอร์ดอื่นๆเป็นด้วย
..ลองดูตัวอย่างที่ผมแก้ไขให้ครับ...
ว่าเป็นเรคคอร์ดไหน ฉะนั้นมันจะดูที่เรคคอร์ดแรกเท่านั้น
2. ผมได้เพิ่มฟิลด์ [DocNo] เข้าไปด้วยเพื่อให้ง่ายในการตรวจสอบเงื่อนไข
3. ตอนคุณสั่ง Run SQL คุณก็ไม่ได้ใส่เงื่อนไขอย่างเจาะจงเรคคอร์ด มันจึง
Update ให้ทุกเรคคอร์ จึงเป็นผลให้เรคคอร์ดอื่นๆเป็นด้วย
..ลองดูตัวอย่างที่ผมแก้ไขให้ครับ...
5 @R02194
ขอบพระคุณมากๆ ครับ อ.BADMAN
ผมลองเอา Code ไปปรับใช้กับงานที่บริษัทแล้ว ผมพบปัญหาตรงที่ว่า
เผอิญชื่อ Table ของผมมันมี digi หนึ่งตัวเป็นเคาะ (เนื่องจากว่าผมคงมือไวไปนะครับ)
เมื่อผม Run เลยเกิด Debug ที่บรรทัดนี้ คือ
dbs.Execute "UPDATE TblCheck2 Field SET Imported = -1 WHERE DocNo = '" & [Forms]![frmTblCheck2 Field]![DocNo] & "';"
หรือมีวิธี แก้ไขชื่อ Table ในโครงสร้างทั้งหมดใน Access ให้เปลี่ยนทุกตัวไหมครับ
คือว่าผมลองเปลี่ยนตรงชื่อ Table โดย Rename เลย ปรากฏว่าต้องไล่ทุกตัวในโครงสร้างเลย
ไม่ไหวครับ เยอะมากๆ เลย
รบกวน อ.BADMAN แนะนำอีกครั้งด้วยครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
ผมลองเอา Code ไปปรับใช้กับงานที่บริษัทแล้ว ผมพบปัญหาตรงที่ว่า
เผอิญชื่อ Table ของผมมันมี digi หนึ่งตัวเป็นเคาะ (เนื่องจากว่าผมคงมือไวไปนะครับ)
เมื่อผม Run เลยเกิด Debug ที่บรรทัดนี้ คือ
dbs.Execute "UPDATE TblCheck2 Field SET Imported = -1 WHERE DocNo = '" & [Forms]![frmTblCheck2 Field]![DocNo] & "';"
หรือมีวิธี แก้ไขชื่อ Table ในโครงสร้างทั้งหมดใน Access ให้เปลี่ยนทุกตัวไหมครับ
คือว่าผมลองเปลี่ยนตรงชื่อ Table โดย Rename เลย ปรากฏว่าต้องไล่ทุกตัวในโครงสร้างเลย
ไม่ไหวครับ เยอะมากๆ เลย
รบกวน อ.BADMAN แนะนำอีกครั้งด้วยครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
6 @R02196
ลองใส่ [ ] ชื่อตารางไว้ด้วยครับ
dbs.Execute "UPDATE [TblCheck2 Field] SET Imported = -1 WHERE DocNo = '" & [Forms]![frmTblCheck2 Field]![DocNo] & "';"
ใน Access 2000 ขึ้นไป จะมี Name AutoCorrect ให้ช่วยในการเปลี่ยนชื่อฟีลด์ต่างๆ ในตาราง แล้วมันจะไปเปลี่ยนชื่อฟีลด์นั้นให้ใน Query/Form หรือ Report ให้เอง
แต่มันจะไม่เปลี่ยนชื่อฟีลด์ต่างๆ ในส่วนที่นำไปเขียนโค้ดเองนะครับ
และผมไม่สามารถใช้ตัวนี้ได้ใน Access 2000 แต่ Access 2002 จะทำได้ค่อนข้างดี
ให้ลองค้นหา Name AutoCorrect เพิ่มเติมใน Help เพื่อหาจุดอ่อนของมันก่อนครับ
และให้ค้นกระทู้เก่าๆ ด้วยคำว่า AutoCorrect อ่านประกอบด้วย
dbs.Execute "UPDATE [TblCheck2 Field] SET Imported = -1 WHERE DocNo = '" & [Forms]![frmTblCheck2 Field]![DocNo] & "';"
ใน Access 2000 ขึ้นไป จะมี Name AutoCorrect ให้ช่วยในการเปลี่ยนชื่อฟีลด์ต่างๆ ในตาราง แล้วมันจะไปเปลี่ยนชื่อฟีลด์นั้นให้ใน Query/Form หรือ Report ให้เอง
แต่มันจะไม่เปลี่ยนชื่อฟีลด์ต่างๆ ในส่วนที่นำไปเขียนโค้ดเองนะครับ
และผมไม่สามารถใช้ตัวนี้ได้ใน Access 2000 แต่ Access 2002 จะทำได้ค่อนข้างดี
ให้ลองค้นหา Name AutoCorrect เพิ่มเติมใน Help เพื่อหาจุดอ่อนของมันก่อนครับ
และให้ค้นกระทู้เก่าๆ ด้วยคำว่า AutoCorrect อ่านประกอบด้วย
7 @R02201
ขอขอบพระคุณ อาจารย์ สุภาพ และ อาจารย์ BADMAN และพี่ๆ ทุกท่าน มากๆ ครับ
ตอนนี้สามารถแก้ไขปัญหาได้แล้วครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
ตอนนี้สามารถแก้ไขปัญหาได้แล้วครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
Time: 0.1263s
1. เข้าใจว่าคุณคงสร้างปุ่มไว้ที่ส่วนของ Detail Form และเป็น Continuous Form
เพราะเมื่อคุณสั่ง Command.Enable = False ทำให้มีผลกระทบต่อเรคคอร์ดอื่นๆด้วย
(เคยเจอประสบการณ์เหมือนกัน)
2. ลองสร้างปุ่มไว้ที่ Header หรือ Footer แทน แล้วใช้เหตุการณ์ On Cีurrent ตรวจสอบ เรคคอร์ด
ปัจจุบันเพราะเมื่อตัวชี้เรคคอร์ดเลื่อนไปถึงเรคคอร์ดไหน ก็จะตรวจสอบเรคคอร์ดนั้นและทำตามคำสั่ง
ได้อย่างแม่นยำ