我想实现这样的功能 :vb窗体上有个Text控件,command控件,MSFlexGrid控件,现想通过在Text中输入“文字”条件,按command可以查询数据库中和Text 内容相同的数据。如日期,名称;任一在数据库中存在的与Text内容相等的数据均显示在MSFlexGrid控件上,我纠结了好长时间了,寻高手提示

解决方案 »

  1.   

    恩,是只要是和text中内容相同的数据库记录都显示,在线请教
      

  2.   

    Like 运算符将字符串表达式和 SQL 表达式中的样式做比较。语法expression Like "pattern"运算符 Like 的语法包含下列部分:部分 描述
    expression 用在 WHERE 子句中的 SQL 表达式。
    Pattern 表达式与之比较的字符串或字符串文本。
    说明可用 Like 运算符来找出符合指定样式的字段值。对于 pattern,可以指定完整的值(例如,Like "Smith"),或用通配符来找出一数值范围(例如,Like "Sm*")。
    在一表达式中,可用 Like 运算符比较字段值和字符串表达式。例如,如果在 SQL 查询中输入 Like "C*",则查询会返回所有字段中以字母 C 开头的值。在参数查询 中,可以提示用户提供要搜寻的样式。在下面的例子里,会返回以字母 P 开头、而其后接着介于 A 到 F 之间的任何字母和三个数字的数据:Like "P[A-F]###"在下面的列表中说明如何使用 Like 运算符来测试不同样式的表达式。
      

  3.   

    此示例返回员工名字以字母 A 到 D 开始的员工列表。
    此示例调用 EnumFields 过程,且可以在 SELECT 语句示例中找到该过程。Sub LikeX() Dim dbs  As Database, rst  As Recordset ' 在您的计算机中修改此行使其正确指到 Northwind 的路径。
    Set dbs = OpenDatabase("Northwind.mdb") ' 返回员工名字以字母 A 到 D 开始的员工列表。
    Set rst = dbs.OpenRecordset("SELECT LastName," _
    & " FirstName FROM Employees" _
    & " WHERE LastName Like '[A-D]*';") '移居记录集。
    rst.MoveLast ' 调用 EnumFields 来打印记录集的内容,' 通过 Recordset 对象和需要的字段宽度。
    EnumFields rst, 15

    dbs.CloseEnd Sub
      

  4.   

    楼上您好,我是个初学者,想使用filter
    您上面提的我还没接触过
      

  5.   

    先按输入框里面的内容判断并拼接SQL字符串,然后组成一个SQL查询语句;
    查询结果加载到表格即是.
    有个简单的例子
        '工程-->部件 添加 Microsoft flexgrid control 6.0
        Dim Cnn As New ADODB.Connection
        Cnn.ConnectionString = "Provider=microsoft.jet.oledb.4.0;data source=E:\AccessDB\Database1.mdb; "
        If Cnn.State <> ADODB.ObjectStateEnum.adStateClosed Then Cnn.Close
        Cnn.Open
        
        Dim strWhere As String
        Dim Rs As ADODB.Recordset
        Set Rs = New ADODB.Recordset
        strWhere = "where 1=1 "
        If Trim(Text1.Text) <> "" Then strWhere = strWhere & "and good_code like '%" & Trim(Text1.Text) & "%' "
        If Trim(Text2.Text) <> "" Then strWhere = strWhere & "and customer like '%" & Trim(Text2.Text) & "%' "
        
        With Rs
            Set .ActiveConnection = Cnn
            .CursorLocation = adUseClient
            .CursorType = adOpenKeyset
            .LockType = adLockOptimistic
            .Open "SELECT good_code,customer,sum(price*amount)/sum(amount) AS avg_price FROM sales " & _
                strWhere & "GROUP BY good_code,customer "
            If .RecordCount > 0 Then
                MSFlexGrid1.Clear
                MSFlexGrid1.Cols = 3
                MSFlexGrid1.Rows = .RecordCount + 1
                MSFlexGrid1.TextMatrix(0, 0) = "商品编号"
                MSFlexGrid1.TextMatrix(0, 1) = "顾客名称"
                MSFlexGrid1.TextMatrix(0, 2) = "平均价格"            .MoveFirst
                For i = 1 To .RecordCount
                    MSFlexGrid1.TextMatrix(i, 0) = .Fields(0).Value
                    MSFlexGrid1.TextMatrix(i, 1) = .Fields(1).Value
                    MSFlexGrid1.TextMatrix(i, 2) = .Fields(2).Value
                    .MoveNext
                Next
            End If
            .Close
        End With
        Set Rs = Nothing
      

  6.   

    菜单:工程->引用 Microsoft ActiveX Data Object...
       Dim cn As New ADODB.Connection
        Dim rst As New ADODB.Recordset
        Dim SqlStr As String
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=123"
        SqlStr = "Select * From 基本信息 where 姓名 = '" & Text1.Text & "'"
        rst.CursorLocation = adUseClient
        rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText 
    Set MSFlexGrid1.DataSource = rst '给DataGrid修改数据源