กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
478 13
URL.หัวข้อ /
URL
รบกวนอาจารย์ช่วยตอบหน่อยครับ
ผมแบ่ง User level group เรียบร้อยแล้วนะครับ แต่ตอนนี้มีปัญหาตรงที่ถ้าผมเขียนที่บ้านจะนำโปรแกรมนี้ไปลงที่ออฟฟิศ จะต้องทำอย่างไรครับ หรือต้อง copy ไฟล์ system.mdw ,system1x.MDW ไปด้วยหรือเปล่าครับ หรือต้องไปตั้งที่ตัวไฟล์เซอฟเวอร์เลย.
อีกปัญหาก็คือ ผมต้องการที่จะปิดเมนูบางเมนูเพื่อมิให้ USER เข้าไปแก้ไข ที่ตัวค่าเริ่มต้น, มุมมอง , แถบเครี่องมือ , เมนู และที่สำคัญก็คือไม่ต้องการให้มีการ EXPORT DATA ออกไป หรือดึงข้อมูลไปใช้ในฐานข้อมูลอื่นได้ ขอตวามกรุณานะครับอาจารย์
อีกปัญหาก็คือ ผมต้องการที่จะปิดเมนูบางเมนูเพื่อมิให้ USER เข้าไปแก้ไข ที่ตัวค่าเริ่มต้น, มุมมอง , แถบเครี่องมือ , เมนู และที่สำคัญก็คือไม่ต้องการให้มีการ EXPORT DATA ออกไป หรือดึงข้อมูลไปใช้ในฐานข้อมูลอื่นได้ ขอตวามกรุณานะครับอาจารย์
13 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R00317
ครับ ต้องนำไฟล์ *.mdw ที่สร้างขึ้นไปด้วยครับ
แล้วไปสร้าง shortcut ในเครื่องของ client ทุกคนดังนี้
"C:\Program Files\Access97\Office\MSACCESS.EXE" "\\myserver\program compiled\ICBPROCUREMENTV3.mde" /wrkgrp "\\myserver\15dec2001\program compiled\icbnew.mdw"
จากข้างบนสมมติว่าโปรแกรม Access ติดตั้งไว้ในห้อง C:\Program Files\Access97\Office\
และ Server ชื่อ myserver
และการป้องกันไม่ให้มีการแสดงเมนูหรือใช้ shortcut ตอนสร้าง Start Up Form (Tools menu>StartUp...) ให้คลิกเอาเครื่องหมายถูกออกทุกรายการที่ปรากฏอยู่ เช่น Display Database Window, Allow Built-In Toolbars, ...
ส่วนเนื้อหาเกี่ยวกับการใช้ระบบความปลอดภัย ให้ลองดูจากเอกสารข้างล่างนี้ครับ
http://agserver.kku.ac.th/basiceng/MSAccessSecurity.doc
2 @R00318
ขอบคุณครับอาจารย์ สำหรับคำแนะนำ ผมทำ shortcut ตามข้างล่างนี้แล้วครับ
"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "\\g:\GL CUSTOMER\Customer record.mde" /wrkgrp "\\g:\GL CUSTOMER\GL CUSTOMER\Glwkg.mdw"
g: เป็นแชร์ ไดรฟ บนเซอร์เวอร์ ครับ
แต่แล้วพอรันชอร์ตคัทแล้วเกิด error ตามข้างล่างนี้ครับ.
Can't start your application. The workgroup information file is missing or opened exclusively by another user. (Error 3028)
ช่วยแนะนำผมต่ออีกนิดนะครับ ขอบคุณครับ
3 @R00320
ลองเปิดไฟล์ MDB ธรรมดาที่ไม่มี Security ทางเน็ตเวิร์ดดูก่อนนะครับว่าเปิดได้หรือเปล่า โดยเอาส่วนที่เรียกไฟล์ MDW ออกก่อน
"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "\\g:\GL CUSTOMER\db1.mdb"
และต้องตรวจดูด้วยว่าเครื่อง client นี้มีสิทธิ์ในการ Write ห้องเป้าหมายใน Server หรือเปล่า
ถ้าทำหมดแล้ว แต่ยังมีปัญหาอยู่ ให้ดูว่าเก็บ mdw ไว้ห้องนี้จริงหรือเปล่า การสกดชื่อมีพิมพ์ผิดหรือไม่
บางที่สิ่งเหล่านี้อาจเกิดขึ้นได้เสมอครับ
และการตั้งชื่อโฟล์เดอร์ที่มีช่องว่างก็อาจก่อนให้เกิดปัญหาได้เหมือนที่ผมเคยเจอมา
ลองดูครับ
4 @R00327
อาจารย์ครับ ผมลองเปิดดูแบบที่อาจารย์แนะนำแล้วปรากฎว่าเปิดไม่ได้เพราะ โปรแกรมเรียกหาไฟล์เวร์คกรุ๊ป จึงต้องนำกลับเข้าไปใหม่แล้วแก้ชื่อโฟลเดอร์ ให้ติดกันแล้วก็ไม่หายครับ ERROR แบบเดิมอีก อาจารย์คิดว่าต้องทำอย่างไรดีครับ และตอนนี้โปรแกรม ACCESS ทุกตัวที่รันบนเครื่องผมก็เรียกหา ไฟล์เวร์คกรุ๊ปนี้หมดทุกตัวเลยครับทำไมไม่แยกเป็นต่างหากไปเลยล่ะครับหรือต้องทำอย่างไร
ช่วยแนะนำด้วยครับ
5 @R00329
การที่เราเข้าไปใช้ Security แล้วใช้ system.mdw ตัวเดียวกันกับของ Access จะทำให้การเปิดไฟล์ทุกตัวในเครื่องฯ นั้นต้องเรียกหา system.mdw เสมอ
เขาจะนิยมสร้างไฟล์ *.mdw ขึ้นมาใหม่ แล้วสร้าง path ดังตัวอย่างที่ผมแนะนำไว้ข้างต้น จะทำให้คนอื่นที่ไม่ต้องใช้ระบบ Security ใช้ไฟล์ของเขาได้ตามปกติ
วิธีแก้ ให้หาไฟล์ system.mdw จากเครื่องฯ อื่นที่ยังไม่ได้ตั้ง Security มาใส่แทนไฟล์เดิม ก็จะแก้ปัญหานี้ได้ครับ
ส่วนการเรียกไฟล์ผ่านระบบ Network ที่มี Server ให้ลองสร้างไฟล์ฐานข้อมูลเปล่าๆ ขึ้นมาสักตัวหนึ่ง แล้วเก็บไว้ในเครื่อง Server แล้วไปลองเปิดในเครื่องลูกข่ายดู ว่าเปิดได้หรือไม่ โดยการใช้ Browse ช่วย อย่าพิมพ์ path ของฐานข้อมูลเอง เพื่อป้องกันการพิมพ์ผิดครับ
6 @R00333
อาจารย์สุภาพครับ ผมทำตามคำแนะนำของอาจารย์แล้วทบทวนดูชื่อ Server อีกครั้งแล้ว ปรากฏว่าสามารถลิงค์ไปได้ไม่มีปัญหาครับ แต่พอไปเซ็ตชอร์ตคัตที่เครื่องยูสเซอร์ กลับไม่เป็นไปตามเงื่อนไขที่ผมตั้งไว้ คือไม่มีการถาม user password เพื่อล็อกอินเข้าไป และไปดูใน SECURITY ก็ไม่มี user name ที่ผมเซ็ตไว้เลยครับ
7 @R00334
ที่ผมทำ ผมจะเอาไฟล์ Back End Database และ *.MDW ไปไว้ใน Server แล้วตัวลูกหรือ Front End จะเอาไปไว้ที่เครื่องของ User แล้วสร้าง Shortcut ด้วย Command ต่อไปนี้
"C:\Program Files\Access97\Office\MSACCESS.EXE" "\\myserver\program compiled\ICBPROCUREMENTV3.mde" /wrkgrp "\\myserver\15dec2001\program compiled\icbnew.mdw"
ให้สังเกตว่าผมจะตั้งชื่อเป็น icbnew.mdw เพื่อหลีกเลี่ยงคำว่า system.mdw ซึ่งเป็นไฟล์ที่ผู้ใช้ Access ปกติใช้กัน
ให้ลองดูว่าได้เรียกใช้ไฟล์ *.mdw ได้ถูกตัวหรือไม่ครับ
8 @R00335
อาจารย์ครับ command ด้านล่างนี้ครับ ผมก็เลี่ยงแล้วที่จะไม่ให้ซ้ำกัน แต่เหมือนกับว่าตัวเดต้าเบสไม่ได้ลิงค์กันกับตัว MDW file
"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "\\192.168.42.252\share\GLCUSTOMER\CUSTOMER RECORD.mdB"/WRKGRP"\\192.168.42.252\share\GLCUSTOMER\Aaa.mdW"
9 @R00336
ลองเปิดไฟล์นี้ในเครื่อง Server เองโดยตรงจะได้หรือเปล่าครับ โดยให้เรียกผ่านไฟล์ *.mdw ด้วย
ถ้าเปิดได้ แสดงว่าต้องมีปัญหาการชื่อของไฟล์ที่มีช่องว่างก็ได้ได้ ลองเปลี่ยนชื่อไฟล์แบบไม่ให้ช่องว่า และมีความยาวไม่เกิน 8 ตัวอักษรดูครับ
10 @R00337
เรียกจาก server โดยตรงก็ไม่ได้ครับอาจารย์
11 @R00338
ลองเอา shortcut ที่เรียกใน Server มาดูซิครับ น่าจะเป็นแบบนี้นะครับ
"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "c:\share\GLCUSTOMER\CUSTOMER RECORD.mdB" /WRKGRP "c:\share\GLCUSTOMER\Aaa.mdW"
จะต้องมีช่องว่าง ก่อนและหลัง /WRKGRP ด้วย
ลองดูใหม่ครับ
12 @R00339
ขอบพระคุณมากครับอาจารย์ แล้วผมจะลองดูอีกครั้งนะครับ
13 @R00342
สำเร็จแล้วครับอาจารย์ ขอบคุณมากนะครับ
Time: 0.3215s