Code ของ Menu ACCESS
กระทู้เก่าบอร์ด อ.Yeadram

 4,814   17
URL.หัวข้อ / URL
Code ของ Menu ACCESS

ผม set ค่าให้ทุกเครื่องดังนี้
เครื่องมือ>>>ตัวเลือก>>>แก้ไข/ค้นหา
ยืนยัน
-การเปลี่ยนแปลงของระเบียน
-การลบเอกสาร
-แบบ สอบถาม ACTION

ผมเอา CHECK BOX ออก ต้องทำทุกเครื่อง และ เครื่องที่ลง PROGRAM ใหม่
มีวิธีเขียน CODE โดยไม่ MENUL ไหมครับ
เช่น LOAD มาแล้ว ทำขั้นตอนนี้ไปเลย
ขอบคุณครับ

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

1 @R01179
Application.SetOption "Confirm Record Changes", True (หรือ False)
Application.SetOption "Confirm Document Deletions", True (หรือ False)
Application.SetOption "Confirm Action Queries", True (หรือ False)
2 @R01183
ขอบคุณครับ เห็นมีคนมาดูแล้วผ่าน นึกว่าจะไม่ได้คำตอบซะแล้ว
3 @R01208
ขอถาม อ. ต่ออีกนะครับว่า ตรง Tool>>>Start Up แล้วต่อด้วย
ชื่อโปรแกรมประยุกต์ , อนุญาตให้ใช้แถบ Menu ภายใน และ อื่นๆ อีก
ทั้งหมดนั้น มี Code ที่สามารถเขียนแทนได้ไหมครับ
4 @R01209
มีครับ แต่ยุ่งยากหน่อย เพราะว่าค่าต่างๆที่อยู่ใน Startup Option นี้เป็น User-Defined Property เพิ่มเติมเข้าไปในฐานข้อมูล เราต้องใช้คำสั่งเหล่านี้เพื่อเพิ่ม Property เข้าไป

Dim DB As DAO.Database
Dim p As DAO.Property

Set DB = CurrentDB
Set p = DB.CreateProperty(PropName, PropType, PropValue)
On Error Resume Next
DB.Properties.Append p

โดยค่าที่เป็นไปได้ของ PropName, PropType และ PropValue คือ

"AppTitle", dbText, "ชื่อไตเติล"
"AppIcon", dbText, "พาร์ทและชื่อไฟล์ของไอคอน (.bmp, .ico)"
"StartupForm", dbText, "ชื่อฟอร์ม"
"StartupShowDBWindow", dbBoolean, True/False
"StartupShowStatusBar", dbBoolean, True/False
"AllowToolbarChanges", dbBoolean, True/False
"AllowBuiltinToolbars", dbBoolean, True/False
"AllowFullMenus", dbBoolean, True/False
"StartupMenuBar", dbText, "ชื่อเมนูบาร์"
"AllowBreakIntoCode", dbBoolean, True/False
"AllowSpecialKeys", dbBoolean, True/False
"AllowBypassKey", dbBoolean, True/False

บางค่านั้นกำหนดแล้วจะมีผลเมื่อปิดและเข้า Access ใหม่เท่านั้น

PropName เหล่านี้จะถูกฝังลงไปกับไฟล์ฐานข้อมูลด้วย ดังนั้นถ้าสั่งโค้ดดังกล่าวอีก ก็จะเกิด runtime error ขึ้น จึงต้องมีการ bypass error ด้วย On Error Resume Next อีกต่างหาก

แล้วถ้าจะกำหนดใหม่ ก็ต้องทำการลบ Property ออกจากฐานข้อมูลเสียก่อนด้วยคำสั่ง CurrentDB.Properties.Delete PropName

5 @R01210
กรณีเป็น "AppTitle" ถ้าต้องการให้เห็นการเปลี่ยนแปลงหลังจากกำหนดค่าแล้ว ต้องสั่ง Application.RefreshTitleBar เพิ่มเติมด้วย
6 @R01213
ขอบคุณครับ
เดี๋ยวผมจะ เริ่มศึกษาไปทีล่ะคำสั่งครับ
7 @R01255
เข้าใจแล้วครับ สำหรับท่านอื่นที่อาจจะสนใจเรื่องนี้ ตาม WEB นี้ไป
ก็จะได้ข้อมูลเพิ่มเติมอีกครับ
http://msdn.microsoft.com/en-us/library/aa140020(office.10).aspx
ลอกเข้ามาก็ใช้ได้เลย

แต่ที่ไม่เข้าใจเนื้อหา ใน WEB ตรง
Const PROPERTY_NOT_FOUND As Integer = 3270
   Const TEXT_TYPE As Integer = 10
   ' Equivalent to DAO dbText data type.
   Const BOOL_TYPE As Integer = 1
   ' Equivalent to DAO dbBoolean data type.
   Const LONG_TYPE As Integer = 4
   ' Equivalent to DAO dbLong data type.


ไอ้ค่า 3270    10    1    4 พวกนี้มันคืออะไรครับ
8 @R01261
3270 คือ error code ที่เกิดเมื่ออ้างถึง Property นั้น แต่ปรากฏว่าไม่มีอยู่จริง

10, 1, 4 เป็นค่าคงที่ที่แทนประเภทของข้อมูลว่าเป็น text, boolean และ long integer ตามลำดับ ซึ่งค่าเหล่านี้เป็นค่าที่ใช้กับ DAO ครับ

ค่าเหล่านี้เขากำหนดให้มีชื่อเพื่อที่จะได้เข้าใจได้ง่ายๆว่ามันคืออะไร แทนที่จะเขียนโปรแกรมให้อ้างตัวเลขโดยตรง ก็อ้างจากชื่อเหล่านี้แทนครับ
9 @R01288
อาจารย์ครับ มีตัวอย่าง set Security ใหมี LEVEL =LOW
โดยใช้ CODE สั่งงานไหมครับ
10 @R01289
ผมไม่มีครับ และยังไม่เคยเห็นว่ามีนะครับ
11 @R01290
ไม่ได้จริงๆครับ ถ้าได้แต่ต้องเขียน VB SCRIP เอา แต่ถ้าจะไม่ WORK ในทาง
ปฎบัติ
12 @R01437
ลองดู ตย. ในหัวข้อ How to set the macro security level in Access 2003 runtime. ใน http://www.access.qbuilt.com/html/vba5.html
13 @R01438
อาจารย์ครับ ตอนนี้ ใช้ CODE VB scrip แบบ นี้อยู่ครับ
พอทำงานได้ แต่เดี๋ยวจะลองศึกษาวิธีของอาจารย์เพิ่มครับ

Const cDatabaseToOpen = "C:\Database\NEWDON.mdb"
   
On Error Resume Next
Dim AcApp
Set AcApp = CreateObject("Access.Application")


If Val (AcApp.Version) >= 11 Then
AcApp.AutomationSecurity = 1
End If

AcApp.Visible = True
AcApp.OpenCurrentDatabase cDatabaseToOpen


If AcApp.CurrentProject.FullName <> "" Then
AcApp.UserControl = True
Else
AcApp.Quit
MsgBox "Failed to open '" & cDatabaseToOpen & "'."
End If
14 @R07609
ไม่ทราบว่า Code VB scrip แบบที่บอกไปใส่ไว้ตรงไหนหรอครับ รบกวนบอกหน่อยสิครับ ขอบคุณครับ
15 @R07633
VB Script ก็เป็นเท็กซ์ไฟล์ธรรมดาๆที่มีนามสกุลเป็น .vbs VB Script ใช้รูปแบบของภาษา Visual Basic ถ้าเข้าใจไม่ผิด เครื่องต้องมี IE ติดตั้งด้วยถึงจะรัน VB Script ได้ครับ เวลาจะรัน ก็แค่ดับเบิลคลิกที่ไฟล์ .vbs หรือจะรันผ่าน command line ก็ได้ครับ
16 @R08170
รันผ่าน Command line ในมาโครหรอครับ ไม่ทราบว่า ตรง Command lind ต้องเขียนคำสั่งยังไงครับ
17 @R08171
กรณีที่คุณ Krathok-man เอา VB script มาแสดงนั้น ไม่ได้หมายถึงให้รันผ่าน Macro แม้ว่าจะทำได้ แต่ไม่รู้จะทำไปทำไม เพราะ script นี้ต้องรันก่อนเปิดใช้ฐานข้อมูล ไม่ใช่เราเข้าโปรแกรมแล้วค่อยมารัน เพราะถ้าเข้าโปรแกรมโดยที่ยังไม่ได้รัน script นี้ Access มันก็จะขึ้นคำเตือนเรื่อง Security นั่นเอง เหมือนคุณบอกว่าคุณจะเข้าไปในรถเพื่อหยิบกุญแจเปิดประตูรถที่กำลังล็อคอยู่นั่นแหล่ะครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2414s