กระทู้เก่าบอร์ด อ.Yeadram
1,834 4
URL.หัวข้อ /
URL
shortcut menu ใน access
ขอสอบถามว่า access สามารถสร้าง shortcut menu เองได้หรือไม่ ถ้าได้ ขอคำแนะนำด้วยครับว่าทำอย่างไร ขอบคุณครับ
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R18028
น่าจะเรียกว่า popup menu มากกว่า(คลิกขวา ครับ)
2 @R18034
ขอบคุณสำหรับคำถามครับ
ลองดู
Link นี้ครับ
เป็น Access ก่อน 2007
หลัง 2007 ไม่รู้สร้าง ตรงไหน แต่หา code ได้ประมาณนี้ครับ
วิธีนำไปใช้ เหมือน Link ข้างบน คือกำหนดชื่อ Shortcut Menu ใน Property ของ Form หรือ Control
ลองดู
Link นี้ครับ
เป็น Access ก่อน 2007
หลัง 2007 ไม่รู้สร้าง ตรงไหน แต่หา code ได้ประมาณนี้ครับ
Sub CreateCommandBar()
Const strCommandBarName As String = "My Command Bar"
Dim cmb As Office.CommandBar
Dim cmbc As Office.CommandBarControl
On Error Resume Next
Application.CommandBars(strCommandBarName).Delete
On Error GoTo 0
'define as a PopUp menu
Set cmb = Application.CommandBars.Add(strCommandBarName, msoBarPopup, False, False)
With cmb
'Add option to load Form1
Set cmbc = .Controls.Add(Type:=1)
cmbc.Caption = "Form1"
cmbc.OnAction = "OpenForm1"
Set cmbc = Nothing
Set cmbc = .Controls.Add(Type:=1)
cmbc.Caption = "Hello"
cmbc.OnAction = "Hello"
Set cmbc = Nothing
End With
Set cmb = Nothing
End Sub
Sub OpenForm1()
DoCmd.OpenForm ("Form1")
End Sub
Sub Hello()
MsgBox "Hello", vbInformation, "Hello"
End Sub
วิธีนำไปใช้ เหมือน Link ข้างบน คือกำหนดชื่อ Shortcut Menu ใน Property ของ Form หรือ Control
3 @R18037
ทำได้ครับ รายละเอียดเยอะมาก ยกตัวอย่างให้ดูดีกว่านะครับ เป็นแบบการดึงเมนู Office มาใช้งาน โดยในตัวอย่างผมอยากได้ Shortcut Menu 3 ตัวคือ Copy, Paste, Cut โดยเปลี่ยนเป็นภาษาไทยด้วย
ตัวอย่าง
1. ติดตั้ง References: Microsoft Office xx.x Object Library ในไฟล์ MS Access
- ใส่ฟังก์ชั่นลงใน Module ดังนี้:
'----------------Start Code----------------
Public Sub CreateShortcutMenuWithGroups()
On Error Resume Next
CommandBars.Item("Menu_Smallest").Delete
Dim cmbRightClick As Office.CommandBar
Set cmbRightClick = CommandBars.Add("Menu_Smallest", msoBarPopup, False, False)
With cmbRightClick
.Controls.Add msoControlButton, 19, , , True ' Copy
.Controls.Item(1).Caption = "คัดลอก"
.Controls.Add msoControlButton, 22, , , True ' Paste
.Controls.Item(2).Caption = "วาง"
.Controls.Add msoControlButton, 21, , , True ' Cut
.Controls.Item(3).Caption = "ตัดคำ"
End With
Set cmbRightClick = Nothing
End Sub
'-----------------End Code-----------------
2. หลังจากเซฟ Module แล้ว ที่หน้าต่าง VBE ให้กดปุ่ม Run Sub/User Form หรือกดปุ่ม F5 เพื่อให้โปรแกรมอ่านโค๊ดที่เขียน 1 ครั้ง ก็จะได้ Shortcut Menu ชื่อ Menu_Smallest สำหรับเรียกใช้งานบนฟอร์มต่อไป
3. ใส่โค๊ดใน Event > On Load ของฟอร์ม (หรือ On Open)
CreateShortcutMenuWithGroups
4.1 หากต้องการแสดง Shortcut Menu ที่เราสร้าง เฉพาะคอนโทรลบางตัวที่ต้องการเท่านั้น ให้กำหนดคุณสมบัติคอนโทรลดังนี้:
บนฟอร์มที่ต้องการใช้งาน คลิ๊กที่คอนโทรลที่ต้องการ เลือกคุณสมบัติดังนี้:
Property > Other > Shortcut Menu: Yes
Property > Other > Shortcut Menu Bar: Menu_Smallest
4.2 หากต้องการแสดง Shortcut Menu ที่เราสร้างบนคอนโทรลทั้งหมดของฟอร์ม ให้กำหนดคุณสมบัติของฟอร์มดังนี้:
Property > Other > Shortcut Menu: Yes
Property > Other > Shortcut Menu Bar: Menu_Smallest
จริงๆยังมีรายละเอียดอีกเยอะมากในการทำ อธิบายไม่หมดยังไงลองค้นใน Google ศึกษาดูเองนะครับ
ปล. สามารถดูเลข ID Command Bar ได้ที่
http://support.microsoft.com/kb/213552
ตัวอย่าง
1. ติดตั้ง References: Microsoft Office xx.x Object Library ในไฟล์ MS Access
- ใส่ฟังก์ชั่นลงใน Module ดังนี้:
'----------------Start Code----------------
Public Sub CreateShortcutMenuWithGroups()
On Error Resume Next
CommandBars.Item("Menu_Smallest").Delete
Dim cmbRightClick As Office.CommandBar
Set cmbRightClick = CommandBars.Add("Menu_Smallest", msoBarPopup, False, False)
With cmbRightClick
.Controls.Add msoControlButton, 19, , , True ' Copy
.Controls.Item(1).Caption = "คัดลอก"
.Controls.Add msoControlButton, 22, , , True ' Paste
.Controls.Item(2).Caption = "วาง"
.Controls.Add msoControlButton, 21, , , True ' Cut
.Controls.Item(3).Caption = "ตัดคำ"
End With
Set cmbRightClick = Nothing
End Sub
'-----------------End Code-----------------
2. หลังจากเซฟ Module แล้ว ที่หน้าต่าง VBE ให้กดปุ่ม Run Sub/User Form หรือกดปุ่ม F5 เพื่อให้โปรแกรมอ่านโค๊ดที่เขียน 1 ครั้ง ก็จะได้ Shortcut Menu ชื่อ Menu_Smallest สำหรับเรียกใช้งานบนฟอร์มต่อไป
3. ใส่โค๊ดใน Event > On Load ของฟอร์ม (หรือ On Open)
CreateShortcutMenuWithGroups
4.1 หากต้องการแสดง Shortcut Menu ที่เราสร้าง เฉพาะคอนโทรลบางตัวที่ต้องการเท่านั้น ให้กำหนดคุณสมบัติคอนโทรลดังนี้:
บนฟอร์มที่ต้องการใช้งาน คลิ๊กที่คอนโทรลที่ต้องการ เลือกคุณสมบัติดังนี้:
Property > Other > Shortcut Menu: Yes
Property > Other > Shortcut Menu Bar: Menu_Smallest
4.2 หากต้องการแสดง Shortcut Menu ที่เราสร้างบนคอนโทรลทั้งหมดของฟอร์ม ให้กำหนดคุณสมบัติของฟอร์มดังนี้:
Property > Other > Shortcut Menu: Yes
Property > Other > Shortcut Menu Bar: Menu_Smallest
จริงๆยังมีรายละเอียดอีกเยอะมากในการทำ อธิบายไม่หมดยังไงลองค้นใน Google ศึกษาดูเองนะครับ
ปล. สามารถดูเลข ID Command Bar ได้ที่
http://support.microsoft.com/kb/213552
4 @R18040
ขอบคุณมากครับ จะลองปรับใช้ดูครับ
Time: 0.3833s