سلام
همانطور که مستحضر هستید بهترین راه برای غیر فعال کردن Alt+F11 و یا بطور کلی غیر فعال کردن بخش VBA قرار ادن رمز در این قسمت و سپس تبدیل MDB به فرمت MDE هست.
ولی اگر بخواهید از طریق کد وارد عمل شوید می تونید بصورت زیر عمل کنید که اگر رمز بخش VBA ريست شده باشد و یا اگر رمزی وجود نداشته باشد مجدداً از طریق کد رمز گذاشته شود.
برای این هدف می تونید از کد زیر استفاده کنید.
' Microsoft Visual basic for Applications Extensibility 5.3
Const cALT As String = "%"
Const cPassword As String = "1234" '<< Pasword
If Application.VBE.ActiveVBProject.Protection = vbext_pp_none Then
Application.VBE.MainWindow.SetFocus
Application.VBE.MainWindow.Visible = False
SendKeys "+{TAB}{RIGHT}" & cALT & "V{+}{TAB}" & cPassword & "{TAB}" & cPassword & "{ENTER}"
Application.VBE.CommandBars(1).FindControl(Id:=257 8, recursive:=True).Execute
MsgBox "Now you are protected but you code VBA is open", vbInformation, "Protected"
Else
MsgBox "The VBA code already was protected", vbInformation, "Protected"
End If
که پس از اجرا رمز 1234 خواهد شد.
همچنین می تونید جهت غیر فعال کردن گزینه های مختلف پنجره Startup از کد زیر استفاده کنید.
Sub MajProprietes()
ModifiePropr "StartupShowDBWindow", dbBoolean, False
ModifiePropr "StartupShowStatusBar", dbBoolean,False
ModifiePropr "AllowShortcutMenus", dbBoolean, True
ModifiePropr "AllowFullMenus", dbBoolean,False
ModifiePropr "AllowBuiltinToolbars", dbBoolean, False
ModifiePropr "AllowToolbarChanges", dbBoolean,False
ModifiePropr "AllowBreakIntoCode", dbBoolean, False
ModifiePropr "AllowSpecialKeys", dbBoolean, True
ModifiePropr "AllowBypassKey", dbBoolean, True
End Sub
Function ModifiePropr(chNomPropriété As String, varTypeProp As Variant, varValeurProp As Variant) As Integer
Dim bds As dao.Database, prp As Property
Const conErreurPropNonTrouvée = 3270
Set bds = CurrentDb
On Error GoTo Change_Err
bds.Properties(chNomPropriété) = varValeurProp
ModifiePropr = True
Change_Sortie:
Exit Function
Change_Err:
If Err = conErreurPropNonTrouvée Then ' Propriété non trouvée.
Set prp = bds.CreateProperty(chNomPropriété, varTypeProp, varValeurProp)
bds.Properties.Append prp
Resume Next
Else
ModifiePropr = False
Resume Change_Sortie
End If
End Function