This function is very simple for insert a command button with Event Procedure
in form any mdb (Microsoft access)
This function coding by VBA and can work in VB
Please remember this library must be import to project first
“Microsoft Access 10.0 Libraries” or higher
Function AddCtl(dbPathAndName As String, frmName As String, _ OName As String, NName As String) ' Destination of microsoft access database (mdb) ' object form variable ' object old control in that form variable _ ' (static point to reference by a new control) ' object new that you will make variable ' object module for place Event Procedure of new control ' variable for count of line in module _ ' that you start insert a new procedure Dim acc As Access.Application Dim frm As Form Dim ctlO As Control Dim ctlN As Control Dim mdl As Module Dim mdlLine As Long 'connect to that database and 'open destination form in design view Set acc = CreateObject("access.Application") On Error GoTo ExitErr acc.OpenCurrentDatabase (dbPathAndName) acc.DoCmd.OpenForm frmName, acDesign ' set variables for object form ' set variables for object module ' set valibles for reference control Set frm = acc.Forms(frmmane) Set mdl = frm.Module Set ctlO = frm.Controls(OName) ' create a new control in form ' place it in front of old control ' (or somewhere by reference to old control) ' and set it in to new control variable Set ctlN = acc.CreateControl(frm.Name, acCommandButton, _ acDetail, , , ctlO.Left - (ctlO.Width + 50), ctlO.Top,_ ctlO.Width, ctlO.Height) ' set original properties for new control ctlN.Name = NName ctlN.Caption = "Hello!" ctlN.OnClick = "[Event Procedure]" ' create a code "Procedure fon OnClick Event" ' etc., by "CreateEventProc command ' in this step VBA will create start line in some line ' of module, But we can get a number of line ' by itself mdlLine = mdl.CreateEventProc("Click", ctlN.Name) ' and the next line from above is a start line of you command mdl.InsertLines mdlLine + 1, "msgbox " & Chr(34) & "Hello" & Chr(34) ' in anotherway you can in sert a code pattern ' form a file by method of module ' ex. mdl.addfromfile 'besure close any object acc.DoCmd.Close acModule, mdl.name , acSaveYes acc.DoCmd.Close acForm, frm.Name, acSaveYes Exitt: acc.CloseCurrentDatabase Set acc = Nothing Exit Function ExitErr: MsgBox Err.Description Resume Exitt End Function
*//one sample for use the function like this : \\*
*\\send values to every variable in function and run //*
Sub runn() Dim dbPth, frmN, OldN, NewN As String dbPth = CurrentProject.Path & "\mdbform.mdb" frmN = "frmtest" OldN = "cmdExit" NewN = "cmdTest" call AddCtl(CStr(dbPth), CStr(frmN), CStr(OldN), CStr(NewN)) End Sub