Docmd Run Access Query in VBA Example

 

Docmd.RunSQL Access Database Example

The Microsoft Access RunSQL method performs the RunSQL action in Visual Basic.  This command is used to execute sql query code within Access Visual Basic. Typically you would want to use the docmd.runsql for Update Queries and Delete Queries.  If you want to work with the data in VBA then you would do a Select Query using a Recordset operation.
MS Access Runsql Example

SQL Statement –  A required variant string expression that is  a valid SQL statement for an action query or a data-definition query. Examples are Update, Delete, Insert Into, etc., queries.

TakeApeek360 Street View

Use Transaction – Optional Variant. Use True (-1) to include this query in a transaction. Use False (0) if you don’t want to use a transaction. If you leave this argument blank, the default (True) is assumed. See our tutorial onAccess Transaction Processing.

MS Access RunSQL Example:

Public Sub RUN_Query

    Dim SQL_Text as String

    SQL_Text = “Delete * from M_Employees”

    Docmd.RunSQL (SQL_Text, false)

End Sub

The RunSQL command is one of the most powerful features of Access Visual Basic.  The programmer has the ability to perform all the logic and data validation functions within VBA and has the power of SQL all within the same environment.

New! Download a running example of the Docmd.RunSQL Method

Such functions as creating temporary tables and building queries based on the user’s responses to question creates an environment of almost infinite flexibility.

A tip for creating your own RunSQL code is the create your query in the Access Query Design tool and then view the SQL view and copy and paste the SQL code into your Visual Basice window… this will give you a great starting point.

Below is an example of appending data to a temporary table based on the records within a master form on the screen.  We use a local variable (SQLText) to hold the SQL text – this makes debugging easier because you can use a MsgBox to display the value of SQLText and you can also place the SQLText value into a little text field on the form and that way you can copy it and paste it in the Access Query Design tool to help debug problems. This example gives us programmatic control of the details form data.  Note that the records for the detail form comes from separate tables.  This query could also have been done using aUnion query:

Private Sub Form_Current()
Dim SQLText As String

‘ JW Dean Blue Claw Database Design

‘ disable editing if previous order number has been filledin

If IsNull(Me.Previous_Order_) = True Then
Me.AllowEdits = True
Else
Me.AllowEdits = False
End If

‘ clear out temp table
DoCmd.RunSQL “Delete * from t_orders”

‘create and run the append queries

SQLText = “INSERT INTO T_Orders ( Order_Numb, ITEMDESC, XTNDPRCE, QUANTITY ) SELECT SOPNUMBE, ITEMDESC, XTNDPRCE, QUANTITY ” & _
“FROM SOP10200 where SOPNumbe='” & Me.Previous_Order_ & “‘ or sopnumbe='” & Me.ReplOrder_ & “‘ or sopnumbe='” & Me.CR_ & “‘”

DoCmd.RunSQL SQLText


SQLText = “INSERT INTO T_Orders ( Order_Numb, ITEMDESC, XTNDPRCE, QUANTITY ) SELECT SOPNUMBE, ITEMDESC, XTNDPRCE, QUANTITY ” & _
“FROM SOP30300 where SOPNumbe='” & Me.Previous_Order_ & “‘ or sopnumbe='” & Me.ReplOrder_ & “‘ or sopnumbe='” & Me.CR_ & “‘”

DoCmd.RunSQL SQLText
‘ refresh the form
Form_F_Previous_Details.Requery
End Sub

More runsql examples:

Docmd
DoCmd Run SQL, Run an SQL action query by using the SQL command. You may also run a DDL query. DoCmd Send Object, Include the specified datasheet, form,…

Inventory Calculations Example – Single User Databases
This Access database download shows how you can use the Docmd.Runsql statement in the after update (afterupdate) event to increment and decrement inventory …

Multi-Select Parameter Forms
select name,address1,address2,city,state,zip from q_daily_prospect_Pitney” DoCmd.RunSQL (sqltext) Set rst = db.OpenRecordset(“select count(name) as icount …

Microsoft Office:
MS Access 2003
Access 2007
Access 2010
Access 2013

 

Microsoft Office VBA, MS Access 2003, 2007, 2010, 2013, 2016