กระทู้เก่าบอร์ด อ.Yeadram
4,814 17
URL.หัวข้อ /
URL
Code ของ Menu ACCESS
ผม set ค่าให้ทุกเครื่องดังนี้
เครื่องมือ>>>ตัวเลือก>>>แก้ไข/ค้นหา
ยืนยัน
-การเปลี่ยนแปลงของระเบียน
-การลบเอกสาร
-แบบ สอบถาม ACTION
ผมเอา CHECK BOX ออก ต้องทำทุกเครื่อง และ เครื่องที่ลง PROGRAM ใหม่
มีวิธีเขียน CODE โดยไม่ MENUL ไหมครับ
เช่น LOAD มาแล้ว ทำขั้นตอนนี้ไปเลย
ขอบคุณครับ
เครื่องมือ>>>ตัวเลือก>>>แก้ไข/ค้นหา
ยืนยัน
-การเปลี่ยนแปลงของระเบียน
-การลบเอกสาร
-แบบ สอบถาม ACTION
ผมเอา CHECK BOX ออก ต้องทำทุกเครื่อง และ เครื่องที่ลง PROGRAM ใหม่
มีวิธีเขียน CODE โดยไม่ MENUL ไหมครับ
เช่น LOAD มาแล้ว ทำขั้นตอนนี้ไปเลย
ขอบคุณครับ
17 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R01183
ขอบคุณครับ เห็นมีคนมาดูแล้วผ่าน นึกว่าจะไม่ได้คำตอบซะแล้ว
3 @R01208
ขอถาม อ. ต่ออีกนะครับว่า ตรง Tool>>>Start Up แล้วต่อด้วย
ชื่อโปรแกรมประยุกต์ , อนุญาตให้ใช้แถบ Menu ภายใน และ อื่นๆ อีก
ทั้งหมดนั้น มี Code ที่สามารถเขียนแทนได้ไหมครับ
ชื่อโปรแกรมประยุกต์ , อนุญาตให้ใช้แถบ 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
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 พวกนี้มันคืออะไรครับ
ก็จะได้ข้อมูลเพิ่มเติมอีกครับ
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 ครับ
ค่าเหล่านี้เขากำหนดให้มีชื่อเพื่อที่จะได้เข้าใจได้ง่ายๆว่ามันคืออะไร แทนที่จะเขียนโปรแกรมให้อ้างตัวเลขโดยตรง ก็อ้างจากชื่อเหล่านี้แทนครับ
10, 1, 4 เป็นค่าคงที่ที่แทนประเภทของข้อมูลว่าเป็น text, boolean และ long integer ตามลำดับ ซึ่งค่าเหล่านี้เป็นค่าที่ใช้กับ DAO ครับ
ค่าเหล่านี้เขากำหนดให้มีชื่อเพื่อที่จะได้เข้าใจได้ง่ายๆว่ามันคืออะไร แทนที่จะเขียนโปรแกรมให้อ้างตัวเลขโดยตรง ก็อ้างจากชื่อเหล่านี้แทนครับ
9 @R01288
อาจารย์ครับ มีตัวอย่าง set Security ใหมี LEVEL =LOW
โดยใช้ CODE สั่งงานไหมครับ
โดยใช้ 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
พอทำงานได้ แต่เดี๋ยวจะลองศึกษาวิธีของอาจารย์เพิ่มครับ
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 นั่นเอง เหมือนคุณบอกว่าคุณจะเข้าไปในรถเพื่อหยิบกุญแจเปิดประตูรถที่กำลังล็อคอยู่นั่นแหล่ะครับ
Time: 0.2414s
Application.SetOption "Confirm Document Deletions", True (หรือ False)
Application.SetOption "Confirm Action Queries", True (หรือ False)