我做了一个查询,这个SQL语句由用户自己根据自己的需要输入到一个text控件中,然后点击按钮执行查询过程,结果在datagrid中显示。这些都已实现。
现在我想问的问题是:当用户输入如select * from table句时,如何限制这个table的最后两个field内容不在datagrid中显示,不知如何做?可以设置datagrid吗?
当然不能用select field1,field2,...fieldn from table 来实现。因为用户是不会记住那么多field name. 而且用户也一定会用select * from table这样的语句的。谢谢!Private Sub CmdExecute_Click()
    On Error GoTo Err_Execute
    Dim strSql As String
    Dim rstSql As New ADODB.Recordset
    If Trim(TxtSQL.Text) = "" Then
        MsgBox "SQL text is blank. Please check!", vbOKOnly, "Prompt"
        Exit Sub
    End If
    rstSql.CursorLocation = adUseClient
    strSql = Trim(TxtSQL.Text)
    strSql = LCase(strSql)
    rstSql.Open strSql, cnn, adOpenKeyset, adLockPessimistic
    Set DgdExplorer.DataSource = rstSql
    DgdExplorer.Refresh
    Set rstSql = Nothing
    Exit Sub
Err_Execute:
    MsgBox "SQL syntax error! Please check!", vbOKOnly + vbExclamation, "Warning"
    Exit Sub
End Sub

解决方案 »

  1.   

    为什么你要让用户自己去写SQL语句呢?而不做一个界面让用户选择要查询的内容?然后由程序生成SQL语句。而且既然用户使用SQL都没有障碍了,用户怎么就不能够Seletc *之后再Select fieldn显示自己想要的任意内容呢?你的需求不明确
      

  2.   

    做一个界面让用户选择,可以实现count,sum之类的吗?可能对我有一定的难度。能否给一些思路或其他?