DeleteControl Method [Access 2003 VBA Language Reference]

The DeleteControl method deletes a specified control from a form.

expression.DeleteControl(FormName, ControlName)

expression Required. An expression that returns one of the objects in the Applies To list.

FormName  Required String. A string expression identifying the name of the form or report containing the control you want to delete.

ControlName  Required String. A string expression identifying the name of the control you want to delete.


For example, suppose you have a procedure that must be run the first time each user logs onto your database. You can set the OnClick property of a button on the form to this procedure. Once the user has logged on and run the procedure, you can use the DeleteControl method to dynamically remove the command button from the form.

The DeleteControl method is available only in form Design view or report Design view, respectively.

Note  If you are building a wizard that deletes a control from a form or report, your wizard must open the form or report in Design view before it can delete the control.


The following example creates a form with a command button and displays a message that asks if the user wants to delete the command button. If the user clicks Yes, the command button is deleted.

Sub DeleteCommandButton()
    Dim frm As Form, ctlNew As Control
    Dim strMsg As String, intResponse As Integer, _
         intDialog As Integer

    ' Create new form and get pointer to it.
    Set frm = CreateForm
    ' Create new command button.
    Set ctlNew = CreateControl(frm.Name, acCommandButton)
    ' Restore form.
    ' Set caption.
    ctlNew.Caption = "New Command Button"
    ' Size control.
    ' Prompt user to delete control.
    strMsg = "About to delete " & ctlNew.Name &". Continue?"
    ' Define buttons to be displayed in dialog box.
    intDialog = vbYesNo + vbCritical + vbDefaultButton2
    intResponse = MsgBox(strMsg, intDialog)
    If intResponse = vbYes Then
        ' Delete control.
        DeleteControl frm.Name, ctlNew.Name
    End If
End Sub

Applies to | Application Object

See Also | DeleteReportControl Method