Error #Name? ใน TextBox
กระทู้เก่าบอร์ด อ.Yeadram

 2,212   9
URL.หัวข้อ / URL
Error #Name? ใน TextBox

ผมมีปัญหาแก้ไม่ได้ ที่ TextBox ของฟอร์ม ที่เป็นยอดรวมเงินครับ

ซึ่งไฟล์นี้สร้างตั้งแต่รุ่น Access2000 ครับ ใช้เรื่อยมา เปลี่ยนเวอร์ชั่นล่าสุด Access 2010 จนมาปีที่แล้วผมเปลี่ยนเป็น Access 2013, Windows 10 ครับ เปิดฟอร์มขึ้นมาทำงานแล้วติด Error ที่ TextBox ซึ่ง Text Box นี้เป็นยอดรวมเงินใบซื้อสินค้าอยู่ในส่วนฟอร์มหลัก โดยดึงข้อมูลมาจาก TextBox ของฟอร์มย่อยที่เป็น Datasheet Form ที่ใช้ฟังก์ชั่น Sum(Amount) มาอีกทีนึงครับ

โดยเขียนที่ Control Sourec =[FrmBuyCashDetails].[Form]![TxtTotalAmount]-[Discount]

ใน Reference ผมติ๊กไว้ดังนี้ครับ
- Visual Basic For Applications
- Microsoft Access 15.0 Object Library
- DirectAnimation Library
- Shockwave Flash
- Animation GIF Control
- Microsoft Visual Basic for Applications Extensibility 5.3
- Microsoft Calendar Control 9.0
- OLE Automation
- Microsoft ActiveX Data Objects 6.1 Library
- Microsoft Office 15.0 Access database engine Object Library
- Microsoft Jet and Replication Objects 2.6 Library


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

1 @R22857
แน่ใจหรือเปล่าครับว่าไม่ได้แก้ไขชื่อ subform control (ไม่ใช่ชื่อของฟอร์มนะครับ) ให้เป็นอย่างอื่นแทน FrmBuyCashDetails อีกอย่าง ลอง compile โปรแกรมใหม่ครับ อาจเจอที่ผิดก็ได้
2 @R22859
ครับ ขอบคุณครับคุณสันติสุข ผมไม่ได้แก้ไขชื่อเลยครับ และลองใช้ Access 2013 Save as: Compile แล้ว ผลก็คือ compile ไม่สำเร้จครับ และ message ที่โชว์ขึ้นมาก็ไม่ได้ช่วยอะไรเราเลย บอกแต่กว้างๆ ครับ

(This error is usually associated with compiling a large database into an MDE file.  Because of the method used to compile the database, a considerable number of TableID references are created for each table.  The Access database engine can only create a maximum of 2048 open TableIDs at one time.  Exporting a database as an MDE potentially can exceed this limit if the database has a large number of objects (table, macro, form, report, etc).
3 @R22860
เปิดไฟล์ขึ้นมา แล้วเข้า VBA Editor เลือกเมนู Debug - Compile ครับ ไม่ใช่ Save As...
4 @R22861
ครับผม ขอโทษครับ ผมลอง compile ที่ VBA Editor ตามที่คุณสันติสุขบอกแล้ว ผ่านฉลุยไม่ติดอะไรเลยครับ

ผมฝากลิงค์หน้าตาแบบฟอร์มมาให้ดูครับ ขึ้น error แบบในรูปครับ

https://www.dropbox.com/s/29vus6u492ml39y/ViewForm.jpg?dl=0


ขอบคุณครับ
5 @R22863
ลองป้อนรายการซื้อสัก 2 บรรทัดนะครับ ป้อนส่วนลดด้วย เสร็จแล้วกด Ctrl-G เพื่อแสดง Immediate Windows ใน VBA Editor แล้วป้อนคำสั่ง 3 บรรทัดครับ

? Forms("ชื่อฟอร์มหลัก").Name
? Forms("ชื่อฟอร์มหลัก").FrmBuyCashDetails.Name
? Forms("ชื่อฟอร์มหลัก").FrmBuyCashDetails.Form.TxtTotalAmount
? Forms("ชื่อฟอร์มหลัก").Discount

ดูผลลัพธ์เช่นกันว่าเกิด error ที่บรรทัดไหนบ้าง และ error ว่าอะไร
6 @R22865
ครับ ผมลองเทสแล้ว error หลายส่วนเลยครับ เรียงลำดับ error ดังนี้ครับ

1. error ในขั้นตอนเลือกชื่อร้านผู้ขายที่อยู่ในส่วนฟอร์มหลัก คือจะมีรายการสินค้า เพิ่มเข้ามาในฟอร์มย่อยทันที 1 รายการเองอัตโนมัติทันที ตามรูปครับ
https://www.dropbox.com/s/qvobttpd2l999i6/ViewForm-1.jpg?dl=0

2. error ถัดมา พอเข้ามาในฟอร์มย่อยพอลองคีย์ลำดับที่ ก็เกิด error ตามรูปครับ เป็น error ทั้ง 2 รายการเลยครับ
https://www.dropbox.com/s/uewv8twty8808nt/ViewForm-2.jpg?dl=0

3. error ที่ 3 พอผมใส่ส่วนลดเสร็จแล้วกดแท็บเพื่อเลื่อนไปฟิล์ดถัดไป (คือฟิล์มรวมเป็นเงิน) ขึ้น error ตามรูปครับ
https://www.dropbox.com/s/juz10yyr863vclc/ViewForm-3.jpg?dl=0

4. error ที่ 4 ตอนที่ผมคลิ๊กถูก 7% ด้วย ตามรูปครับ
https://www.dropbox.com/s/bemx3e5nc0rio5a/ViewForm-4.jpg?dl=0

5. error ที่ 5 ขณะที่ใช้คำสั่งตามที่คุณสันติสุข แนะนำครับ ขึ้น error ตามรูปครับ
https://www.dropbox.com/s/3y224yv7rwpr0pq/ViewForm-5.jpg?dl=0

ผมขออธิบายเพื่อเป็นข้อมูลเพิ่มเติมครับ (ไม่แน่ใจว่าจะมีประโยชน์หรือเปล่า)
1. Icon Exit ที่ผมสร้างไว้ คลิ๊กไม่ได้ คลิ๊กแล้วขึ้น Error เหมือน error ที่ 4 ครับ
2. ที่ผ่านมาเวลาผมเปลี่ยน version ของโปรแกรมทีไรก็เกิด error ที่ 4 เหมือนกันทุกครั้ง แต่ผมหาไฟล์ mscal.ocx มาใส่ในเครื่องและติ๊กเลือก Reference ก็หายทำงานได้ตามปกติ แต่คราวนี้ version 2013 กับไม่สามารถใช้งานได้ทั้งที่ก็นำไฟล์ mscal.ocx มาใส่แล้ว ก็ยังทำงานไม่ได้ครับ



7 @R22866
error ที่บอกมาทั้งหลายในคำตอบสุดท้าย อาจเป็นไปได้ที่เกิดจาก Microsoft Calendar Control มีปัญหา มีคำตอบของ blackjack_9820 ใน https://social.msdn.microsoft.com/Forums/office/en-US/57ffd371-4f46-4d01-882d-85da6bcba39e/does-ms-access-2013-have-mscalocx-available?forum=accessdev ที่น่าจะตรงกับที่คุณต้องการ แต่ตรงนี้ต้องเสี่ยงเอาเองนะครับ ไม่รู้ว่าจะเกิดอะไรขึ้นบ้าง ก่อนจะทำก็ให้สำรองไฟล์โปรแกรมและฐานข้อมูลคุณไว้ก่อน เผื่อมีปัญหาจะได้เอาของเดิมกลับมาใช้ได้

แต่ถ้าระบบของคุณไม่จำเป็นต้องใช้ Microsoft Calendar Control ตัวนี้ ก็เอาออกจาก Reference ไปเลย แล้วเอา ActiveX ของ Microsoft Calendar Control ออกจากทุกฟอร์มด้วย อีกอย่าง ในระบบของคุณมี Reference หลายตัวเหลือเกิน ถ้าตัวไหนไม่ได้ใช้ เอาออกไปด้วยก็ได้นะครับ

หรืออาจเปลี่ยนไปเลือก Show Date Picker property ของเท็กซ์บ็อกซ์ให้เป็น For Dates เพื่อให้เท็กซ์บ็อกซ์แสดงปุ่มเลือกวันที่จากปฏิทินแทน ซึ่งเป็นอินเทอร์เฟสที่ผมว่าดูดีและเหมาะสมกว่าการใช้ Microsoft Calendar Control

สุดท้าย ถ้าแก้ปัญหาเรื่อง Microsoft Calendar Control นี้ได้ ก็ไม่รู้ว่าจะแก้ปัญหา #Name? ได้หรือไม่ เพราะเหมือนมันจะไม่เกี่ยวข้องกันเลย
8 @R22867
งานนี้ขอแจมด้วยจ้าในฐานะอยุ่กะ access มา 18 ปี

เจ๊เคยเจอปัญหานี้เหมือนกัน ประมาณว่า version ก่อนทำงานได้ตามปกติแต่พอย้ายแล้วเกิดปัญหาเยอะจนไม่รู้จะแก้ยังไง

ลองทำตามขั้นตอนนี้นะจ้ะเจ๊จะบอก
1. สร้างฐานข้อมูลใหม่ (เวอร์ใหม่)
2. นำเข้าวัตถุฐานข้อมูลทุกอย่างที่มีอยู่
3. ลบ reference ที่เป็น activeX
4. ถ้ามี ActiveX ให้ทดสอบสร้างฟอร์มใหม่
แล้วเพิ่ม ActiveX ตัวนั้นเข้ามาในฟอร์ม
5. บันทึกฟอร์มชั่วคราว
6. ปิดและเปิดฐานข้อมูลอีกครั้ง
โชคดีจ้า
*** การสำรองข้อมูลนั้นสำคัญก่อนกระบวนการที่มีความเสี่ยง***
9 @R22870
ขอบคุณ คุณสันติสุข และคุณ U&ME มากๆ นะครับ

ผมจะลองทดสอบตามที่แนะนำมาทั้ง 2 เลยนะครับ ได้ผลอย่างไรแล้วจะมาแจ้งให้ทราบครับ


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