รบกวนอาจารย์และท่านผู้รู้
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 423   11
URL.หัวข้อ / URL
รบกวนอาจารย์และท่านผู้รู้

อาจารย์และท่านผู้รู้ทุกท่าน
คือว่าได้สร้างโปรแกรมขึ้นมา 1 ชิ้น ได้ทำ frontend and backend แล้ว
ส่วนตัว โปรแกรมได้แปลงนามสกุลให้เป็น .mde เอาไว้ให้ Drive ที่ทุกคนสามารถเปิดได้ แต่ไม่ทราบว่าทำไม ถึงเปิดได้ ทีละคน พอคนที่ 2 เปิดขึ้นมาก็จะมีข้อความขึ้นมาว่า "!!Could not lock file."
ต้องให้อีกคนที่เปิดอยู่ปิดก่อนแล้วอีกคนจึงเปิดได้

ไม่ทราบว่าจะแก้ไขอย่างไรอีค่ะอาจารย์

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

1 @R03120
หมายถึง ถ้าคนใดเปิด mde ที่ linked กับ Back End แล้ว อีกคนซึ่งมี mde อีกตัวเปิดไม่ได้ใช่หรือไม่ครับ

ให้ลองไปดูเมนู Tools>Options>Advanced tab> แล้วเลือก Default Open Mode ให้เป็น Shared ดูครับ

แล้วลองเปิดไฟล์ mde ดูอีกที น่าจะเปิดได้พร้อมๆ
2 @R03125
ให้เป็น Shared แล้วค่ะ

file.mde ที่ว่ามีอยู่ใน share Drive ที่ทุกคนสามารถเปิดเข้าไปดูข้อมูลได้ค่ะ มีfile เดียวเท่านั้น เมื่อมีคนเปิด file นั้นจะมีนามสกุลเป็น *.ldb ถ้า admin เป็นคนทำจะเปิดได้ไม่มีปัญ แต่หา user คนอื่นที่เปิดไว้ทำงานน่ะ เปิดไม่ได้ค่ะ
3 @R03126
วิธีแก้

1. แยก mde ไว้เครื่องของแต่ละคน ไม่ควรจะใช้ไฟล์ front end ร่วมกันครับ

หรือ

2. คนอื่นจะต้องมีสิทธิ์ในการ Write โฟล์เดอร์นั้นด้วย เพราะคนอื่นๆ ที่ไม่ได้เป็น Admin เปิด มันจะไม่สามารถสร้างไฟล์ ldb ได้ ซึ่งหมายถึง คนนั้นจะถูกบังคับให้เปิดแบบ Read Only ครับ

4 @R03127
ถ้าจะใช้เปิดในแบบลักษณะที่ 2 คือแบบ read Only ละค่ะ ขึ้นมาแค่ 1 ไฟล์จะได้หรือเปล่าค่ะ แต่ถ้าไม่ได้จริงๆ ก็คงต้องทำแบบ ข้อที่ 1 ค่ะ
5 @R03135
อาจารย์ค่ะ ถ้าจะทำตามวิธีที่ 1 ต่อมาก็จะมีคำถามว่า user มีทั้งหมด 10 แผนก แต่ละแผนกเค้าจะมี folder ของแต่ละแผนกของเค้าเองโดยทางผู้สร้าง programme จะต้อง updated ให้ถ้าหากมีการแก้ไข หรือ updated programme

เรื่องมีอยู่ว่า อาจารย์พอจะมีตัวอย่างการส่ง updated ไปแต่ละ folder หรือเปล่าค่ะ หรือ Code หรือคำแนะนำในการที่ง่านต่อการ updated ให้แต่ละแผนก

ขอขอบคุณมากค่ะ
6 @R03137
ตามหลักของ Front End คือ จะต้องมี 1 Front End / 1 User

ไม่เช่นนั้นจะไม่เกิดประโยชน์อะไรกับการทำแบบนี้เลยครับ

สำหรับตัวอย่างการ update front end ให้จาก http://www.utteraccess.com/forums/showflat.php?Cat=&Board=codearchive&Number=135969&Forum=codearchive&Words=update&Match=Entire%20Phrase&Searchpage=0&Limit=25&Old=1year&Main=135969&Search=true#Post135969 ครับ


7 @R03148
อาจารย์ค่ะ ขอทราบวิธีการทำงาน และการนำไปใช้ค่ะ
8 @R03154
เพิ่มเติมความคิดที่ 7
link ที่อาจารย์ให้มาได้ D/L มาแล้ว ส่วนรายละเอียดและวิธ๊การทำงานทั้ง 8 ข้อ อ่านแล้วพอจะเข้าใจเท่านั้น แต่ไม่แตกฉานค่ะ อยากจะรบกวนอาจารย์ช่วยสรุปให้ด้วยค่ะ รบกวนหน่อยค่ะ จะพยายามเรื่องภาษาอังกฤษให้ดีกว่านี้ค่ะ
9 @R03155
ขั้นตอนมีดังนี้ครับ

1) Create a folder on your shared drive that all users can access and place
the DropNew Database there. Also create a folder where you will store your
master front end.
สร้าง Folder ใหม่ในห้องที่ได้ shared ให้ทุกคนเข้าถึงได้ แล้วให้ไฟล์ DropNew ไปเก็บไว้ที่นั่น แล้วสร้างอีกห้องหนึ่งสำหรับเก็บไฟล์ Front End ที่ได้ปรับปรุงล่าสุด

2) Import the module drop into your database and open it
ให้คัดลอกโค้ดใน Module ชื่อ Drop ไปใส่ใน Front End

3) Change the path for the constant MASTER_FRONT_END to to the path for
the folder where you will store your master copy of the front end, this should be
save as an mde file.
ให้เปิด Module ในข้อ 2 แล้วให้เปลี่ยนตัวแปรคงที่ชื่อ MASTER_FRONT_END ให้เป็นชื่อที่ตรงกับ Front End ที่พูดถึงในข้อ 1
ซึ่งจะมีนามสกุลเป็น mde ด้วย

4) Change the path for the constant DROP_DBASE to the location of the file
DropNew, remember to include .mde at the end of this path.
เปลี่ยนห้องของตัวแปรคงที่ DROP_DBASE ให้ตรงกับห้องที่เก็บไฟล์ DropNew และต้องใส่นามสกุลเป็น mde ด้วย

5) In the On Open Event of the first form that opens in your database place the code

code:
--------------------------------------------------------------------------------
Drop.CheckAndPerformDrop
--------------------------------------------------------------------------------

This is what will perform the drop of the new version for the user.
ใส่โค้ดนี้ลงไปในเหตุการณ์ On Open ของฟอร์มที่เรากำหนดให้เปิดทุกครั้งที่เปิดโปรแกรม เช่น StartUp Form

โค้ดนี้แหล่ะที่จะทำหน้าที่ปรับปรุง Front End ให้เรา ฉะนั้นจะต้องมีการสร้าง StartUp form ขึ้นมา แล้วกำหนดให้เปิดทุกครั้งที่เข้าสู่โปรแกรม

การกำหนดให้ฟอร์มไหนเป็น StartUp form ให้ไปที่เมนู Tools>StartUp...> แล้วเลือกชื่อฟอร์มที่ต้องการให้เปิด

6) Distribute a copy of your front end file to all your users and have them place this onto their desktop.
ส่ง Front End ตัวนี้ให้ผู้ใช้ทุกคน

7) Place a copy of the Front End into the folder you created in Step 1 to store the master front.
เมื่อมีการปรับปรุง Front End ให้นำไปเก็บไว้ในห้องที่พูดถึงในข้อ 1

8) When you make changes to the front end take a copy of the front end and
place it in the folder, this will replace the copy you alredy have in there. When a
user goes to open the database again the database will check to see if there
are any changes and if there are it will place a new copy onto their desktop.

เมื่อผู้ใช้เปิด Front End โปรแกรมจะทำการตรวจดูว่ามี Front End ตัวปรับปรุงใหม่หรือเปล่า ถ้ามีมันก็จะไปเอาตัวใหม่มาแทนตัวเดิมให้เองโดยที่ผู้ใช้ไม่ต้องรู้วิธีการทำงานตรงนี้เลยครับ

ลองทำดูเป็นขั้นๆ ไปนะครับ
*** Edited by Supap Chaiya *** 5/27/2003 9:18:40 AM
10 @R03156
อาจารย์ค่ะขออีกรอบนะค่ะ

ชื่อไฟล์คือ Interface Log Rev6.mdb

อยากจะขออธิบายสถานที่เก็บนิหน่อยก่อน
Drive H:\จะไม่มีใครเข้าไปได้นอกจากเจ้าของเครื่อง
Drive P:\group\ จะเข้าได้ทุกคน
Drive P:\OPM\ แต่ละแผนกเท่านั้นที่จะเข้าได้ และจะต้อง ให้แต่ละแผนกทำงานในห้องนี้
Drive P:\SIM\ แต่ละแผนกเท่านั้นที่จะเข้าได้ และจะต้อง ให้แต่ละแผนกทำงานในห้องนี้
Drive P:\AFC\ แต่ละแผนกเท่านั้นที่จะเข้าได้ และจะต้อง ให้แต่ละแผนกทำงานในห้องนี้

หนูจะเริ่มข้อที่ 1 นะค่ะอาจารย์

1. สร้าง Folder ใหม่ในห้องที่ได้ shared ให้ทุกคนเข้าถึงได้ แล้วให้ไฟล์ DropNew ไปเก็บไว้ที่นั่น
:- OK ค่ะได้สร้างเรียบร้อยแล้ว เอาไว้ใน P:\Group\ชื่อใหม่คือ Interfaces,

แล้วสร้างอีกห้องหนึ่งสำหรับเก็บไฟล์ Front End ที่ได้ปรับปรุงล่าสุด
:- ตัวนี้หมายถึง ตัวงานที่ยังไม่ได้แปลงเป็น mdb ใช่หรือเปล่าค่ะ และถ้าหมายถึง mdb จะเอาไว้ที่ H: ได้หรือเปล่าค่ะ

2. OK ค่ะ

3.ให้เปิด Module ในข้อ 2 แล้วให้เปลี่ยนตัวแปรคงที่ชื่อ MASTER_FRONT_END ให้เป็นชื่อที่ตรงกับ Front End ที่พูดถึงในข้อ 1
ซึ่งจะมีนามสกุลเป็น mde ด้วย
:- เริ่มงงแล้วค่ะ ใช่แบบนี้หรือเปล่าค่ะ "h:\Interface Log Rev6.mde"

4. เปลี่ยนห้องของตัวแปรคงที่ DROP_DBASE ให้ตรงกับห้องที่เก็บไฟล์ DropNew และต้องใส่นามสกุลเป็น mde ด้วย
:- p:\group\Interfaces\Interface Log Rev6.mde"

คำถาม ข้อ 3-4 คือว่า "จำเเป็นหรือเปล่าที่ ทั้ง H: , P: จะต้องแปลงเป็น mde แล้วเอามาไว้ก่อน???

5. OK

6. หมายถึงส่งตัว mde หรือเปล่าค่ะ

7. เมื่อมีการปรับปรุง Front End ให้นำไปเก็บไว้ในห้องที่พูดถึงในข้อ 1
:- ปรับปรุง front end ที่พูดถึงคือตัว mdb หรือ mde ค่ะ แล้วเอาไว้ใน H: , P: เพราะว่า ข้อ 1 นั้น เก็นงาน 2 ที่ค่ะ

8. ให้เปิดที่ตัว mde หรือ mdb เพื่อทดลอง

หนูใช้ A2K อยู่ค่ะ d/l : Drop2k.mdb, DropNew2k.mde มาใช้งาน อยากจะขออีกรอบหนึ่งค่ะ เพราะทดลองทำ 2 รอบ ไม่ผ่านค่ะ
11 @R03158
ผมคิดว่าให้ลองกับไฟล์เดิมของเขาก่อนจะดีกว่าครับ

ตอนนี้ผมไม่สามารถที่จะเปิด Access ได้ จึงไม่สามารถให้คำตอบได้ละเอียดมากนัก

แต่ถ้าจะดูจากตัวอย่างของเขา เขาจะใช้ UNC ในการอ้างอิงถึงห้องต่างๆ ใน Server ครับ

ไม่ควรจะใช้ P:\OPM\ ควรจะเป็น \\ชื่อเครื่องของเรา\OPM\ แทนครับ

ให้ตรวจสอบจุดนี้ก่อน ผมว่าปัญหาน่าจะอยู่ที่จุดนี้ครับ

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