กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
346 3
URL.หัวข้อ /
URL
office developer setup ใครใช้แล้ว work ตอบที
ใครเคยใช้ office dev ทำแผ่นรันไทม์ไปติดตั้งบนเครื่องที่ไม่มี offce ติดตั้งอยู่ได้บ้าง
ผมลองแล้ว รันปุ๊ป เออร์เรอร์ทันที
ผมใช้ ode 2k
โดยตัวโปรแกรมmde ติดตั้งในเครื่องลูก แล้ว data.mdb อยู่ที่ server
ใครทมีประสบการ์ณ แวะมาปรึกษาด้วยครับ
ผมลองแล้ว รันปุ๊ป เออร์เรอร์ทันที
ผมใช้ ode 2k
โดยตัวโปรแกรมmde ติดตั้งในเครื่องลูก แล้ว data.mdb อยู่ที่ server
ใครทมีประสบการ์ณ แวะมาปรึกษาด้วยครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R04081
ปัญหาอาจอยู่ที่รายการใน References ที่ได้ตั้งไว้ ไม่มี หรือ มีแต่ต่างเวอร์ชันกัน ในเครื่องเป้าหมายครับ ลองตรวจดูว่ามีการเพิ่ม References อะไรไว้บ้าง
อาจทดสอบง่ายๆ โดยการทำโปรแกรมจำลองแบบง่ายๆ โดยไม่ต้องกำหนด References อะไร ทำเป็น Back End / Front End เหมือนเดิม แล้วนำไปติดตั้งดูว่าปัญหา หรือได้ Error ตัวเดิมหรือเปล่า จะได้ตัดปัญหาไปที่ละอย่าง
ถ้าผมต้องเรียกใช้ dll เพิ่มเติม ผมจะติด dll ตัวนั้นไปด้วย แล้วลงทะเบียบใหม่ตอนที่ลงโปรแกรมเรา ซึ่ง dll พวกนี้สามารถเก็บไว้ในห้องเดียวกับไฟล์โปรแกรมของเราได้
ซึ่งผมจะใช้โค้ดในหน้า http://agserver.kku.ac.th/basiceng/activexreg.asp ช่วยครับ
อีกส่วนหนึ่งอย่างให้ดูคือ การเขียนโค้ดแบบ Late Binding ซึ่งจะไม่ต้องกำหนด References และไม่ต้องกังวลกับเรื่องเวอร์ชันที่ต่างกัน โดยเฉพาะการใช้ DAO และ ADO ไม่ทราบว่าใช้ตัวไหนครับ
ตัวอย่างการเขียนโค้ดแบบ Late Binding
Dim con As Object, rst As Object
Set con = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
...
ส่วนการใช้ VBA นั้น ที่ผมได้ยินมา เขาแนะนำให้เขียนโดยใช้ VBA ให้มากที่สุด เพราะถ้าใช้ Macro หรือโค้ดที่อ้างอิงคำสั่งในเมนูต่างๆ ซึ่งจะถูกตัดไปในเวอร์ชัน Runtime จะทำให้ไม่สามารถทำงานได้
ผมว่าลอง Error Message ที่มันฟ้องมา แล้วลองวิเคราะห์หาสาเหตุ หรือลองเอา Error Message ไปค้นใน MS หรือ Google ดู อาจจะมีคนเคยมีปัญหานี้แล้วก็ได้ครับ
อาจทดสอบง่ายๆ โดยการทำโปรแกรมจำลองแบบง่ายๆ โดยไม่ต้องกำหนด References อะไร ทำเป็น Back End / Front End เหมือนเดิม แล้วนำไปติดตั้งดูว่าปัญหา หรือได้ Error ตัวเดิมหรือเปล่า จะได้ตัดปัญหาไปที่ละอย่าง
ถ้าผมต้องเรียกใช้ dll เพิ่มเติม ผมจะติด dll ตัวนั้นไปด้วย แล้วลงทะเบียบใหม่ตอนที่ลงโปรแกรมเรา ซึ่ง dll พวกนี้สามารถเก็บไว้ในห้องเดียวกับไฟล์โปรแกรมของเราได้
ซึ่งผมจะใช้โค้ดในหน้า http://agserver.kku.ac.th/basiceng/activexreg.asp ช่วยครับ
อีกส่วนหนึ่งอย่างให้ดูคือ การเขียนโค้ดแบบ Late Binding ซึ่งจะไม่ต้องกำหนด References และไม่ต้องกังวลกับเรื่องเวอร์ชันที่ต่างกัน โดยเฉพาะการใช้ DAO และ ADO ไม่ทราบว่าใช้ตัวไหนครับ
ตัวอย่างการเขียนโค้ดแบบ Late Binding
Dim con As Object, rst As Object
Set con = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
...
ส่วนการใช้ VBA นั้น ที่ผมได้ยินมา เขาแนะนำให้เขียนโดยใช้ VBA ให้มากที่สุด เพราะถ้าใช้ Macro หรือโค้ดที่อ้างอิงคำสั่งในเมนูต่างๆ ซึ่งจะถูกตัดไปในเวอร์ชัน Runtime จะทำให้ไม่สามารถทำงานได้
ผมว่าลอง Error Message ที่มันฟ้องมา แล้วลองวิเคราะห์หาสาเหตุ หรือลองเอา Error Message ไปค้นใน MS หรือ Google ดู อาจจะมีคนเคยมีปัญหานี้แล้วก็ได้ครับ
3 @R04093
ขอบคุณอาจารย์สุภาพ ที่มาตอบคำถามครับ
เอาไว้ผมจะลองทดสอบ ถ้าได้ error จะcapture ภาพมาให้ดูครับ
เอาไว้ผมจะลองทดสอบ ถ้าได้ error จะcapture ภาพมาให้ดูครับ
Time: 0.1493s
ขออธิบายแบบละเอียดเลย ก็แล้วกัน
ลง office runtime แบบ full version แล้ว เอา program.mde ลงติดตั้ง
พอรันโปรแกรมก็ error ทันที เพราะผมเขียน code ให้โปรแกรมเรียกหา data.mdb เพื่อเชื่อมฐานข้อมูลมาจาก server
Access Runtime 2000
ซึ่งผมสันนิฐานว่า office runtime version อาจจะไม่รองรับ VBA หรือเปล่า เพราะผมเขียน code VBA ในโปรแกรมทั้งหมด โดยไม่มีการ bound form กับเทเบิลเลย และมีการเรียก API function มาใช้ด้วย แต่พอผมลงโปรแกรมชุด office พร้อมaccess ด้วยก็รันโปรแกรมผ่านฉลุยได้ทันที! (เออ เอากะมันสิวะ)
** ปัญหาที่เจอนี้ ผมเคยทดสอบตั้งแต่ต้นปีแล้ว พอเจอ error ก็ไม่ได้ทดสอบต่ออีก
แต่ตอนนี้ลูกค้าผมเค้าจ้างผมพัฒนาโปรแกรม แต่เค้ากลัวเรื่องลิขสิทธิ์ ผมเลยต้องไปรื้อ ode มาปัดฝุ่น ลองใหม่ แต่ขี้เกียจฟอร์แมตฮาร์ดดิกส์ เพราะถ้าผมจะทดสอบรันไทม์ ผมจะต้องไม่ลง office เลยในเครื่องนั้น เลยต้องแวะมาถามท่านผู้รู้ก่อนดีกว่า
ถ้าท่านอาจารย์สุภาพหรือเพื่อนๆ ผู้มีประสบการณ์ เคยใช้ MOD หรือ ODE (แล้วแต่ใครจะเรียกก็ตาม) ใช้งานได้ดี ไม่มีปัญหา ขอคำแนะนำด้วย ขอบคุณล่วงหน้าสำหรับทุกคำตอบ