我想实现这样的功能 :vb窗体上有个Text控件,command控件,MSFlexGrid控件,现想通过在Text中输入“文字”条件,按command可以查询数据库中和Text 内容相同的数据。如日期,名称;任一在数据库中存在的与Text内容相等的数据均显示在MSFlexGrid控件上,我纠结了好长时间了,寻高手提示
解决方案 »
- 请教主窗体TreeView与子窗体ListView的联动
- 环境测试工具设计,如何获得本地网络利用率,如何占用本地带宽?
- 555 ToolBar 的 tbrDropDown 怎么用呀
- 如何用程序实现更改打印纸张的大小?
- DataGrid1
- 用了Exit sub,听到了两个声音。
- 用vb程序存取web库(.mdb)的方法!请大家讨论,提供代码,up有分!
- 谁知道怎么改运行中的程序的托盘图标???我用SysTray.ocx不能改?
- 请问当主菜单栏为空时,有没有办法在运行时创建一条主菜单栏,能够在窗体显示出来。
- mschart控件怎么显示每一个点的数据
- excel 导入到SQL服务器(注:EXCEL文件在客户端)
- vb socket 连接问题
expression 用在 WHERE 子句中的 SQL 表达式。
Pattern 表达式与之比较的字符串或字符串文本。
说明可用 Like 运算符来找出符合指定样式的字段值。对于 pattern,可以指定完整的值(例如,Like "Smith"),或用通配符来找出一数值范围(例如,Like "Sm*")。
在一表达式中,可用 Like 运算符比较字段值和字符串表达式。例如,如果在 SQL 查询中输入 Like "C*",则查询会返回所有字段中以字母 C 开头的值。在参数查询 中,可以提示用户提供要搜寻的样式。在下面的例子里,会返回以字母 P 开头、而其后接着介于 A 到 F 之间的任何字母和三个数字的数据:Like "P[A-F]###"在下面的列表中说明如何使用 Like 运算符来测试不同样式的表达式。
此示例调用 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
您上面提的我还没接触过
查询结果加载到表格即是.
有个简单的例子
'工程-->部件 添加 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
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修改数据源