How to bind a form to an SQL statement in microsof

2019-08-27 10:54发布

问题:

**Edit

Hello Everyone I am tryng to include an SQL statement in to my vba so that I can easily sort through data and filter. So I have found way to include SQL in to my VBA but I get an error that says "The RunSQL action requires a SQL statement" but clearly the SQL statement is within the strSQL variable.

Private Sub buttonNot_Click()


Dim strSQL As String

strSQL = "SELECT Table1.[FirstNam], Table1.[LastNam]" & _
"FROM Table1 " & _
"WHERE ((([FirstNam]) <> 'Jamie') AND (([LastNam]) <> 'Cartman'));"

DoCmd.RunSQL strSQL

Me.Filter = ""
Me.Filter = "FirstNam<>'Jamie' AND LastNam<>'Cartman'"

End Sub

回答1:

me.recordsource = {SQL string}

Make sure you turn the filter on after appending the query string.



回答2:

You can't run a SELECT query from the DoCmd.RunSQL query, that can only be used for Action or Data Definition queries (INSERT INTO, UPDATE, CREATE, etc.).

Microsoft Dev Center Docs on DoCmd.RunSQL (I know, I included a link, shame on me) :o

I really like @ClassyBear 's answer. That line of code is equivalent to going to the Property Sheet of the Form in design view and under Data, changing the Record Source Property. There you can either choose a table/query or click on the ... and create one in the query designer.



回答3:

Private Sub buttonNot_Click()


Dim strSQL As String

strSQL = "SELECT Table1.[FirstNam], Table1.[LastNam]" & _
"FROM Table1 " & _
"WHERE ((([FirstNam]) <> 'Jamie') AND (([LastNam]) <> 'Cartman'));"


Me.RecordSource = strSQL

'DoCmd.RunSQL strSQL

'Me.Filter = ""
'Me.Filter = "FirstNam<>'Jamie' AND LastNam<>'Cartman'"

End Sub