我做了一个查询,这个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
现在我想问的问题是:当用户输入如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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货