qq强制加好友代码:怎么实现对数据库的查询(vb)??

来源:百度文库 编辑:高校问答 时间:2024/05/02 16:22:40
是VB编程:
选择好字段,输入关键字,就能查出所有含有关键字的记录,这个效果该怎么做?

(这个效果在这个小软件里有,可以先看看)
辅臣数据库浏览器
http://www.66169.com/soft.php?id=1003341
怎么用adodc控件的方法实现对数据库的查询

我就要实现这种效果的方法!!谢谢

'新建工程,在FORM1上
'添加2个文本框text 一个命名为dbpath,一个命名为KEY
'添加一个Combo 命名为ziduan
'添加一个Treeview 命名为tableview
'添加一个MSHFlexGrid 命名为msh
'添加2个安钮 '一个命名为open ,一个命名为SEARCH
'*********************************代码贴在这里,看不明白加我QQ87904619*******************************
'*********************************时间紧,可能会有BUG。你自己看下吧**********************************
Dim conn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim tablenm As String '存储表名使用

Private Sub open_Click()
Dim strconn As String
Dim i As Integer
i = 0
cmd1.Filter = "Access数据库文件|*.mdb|All Files|*.*"
cmd1.DialogTitle = "选择数据库文件"
cmd1.ShowOpen
'打开数据库文件
If cmd1.FileName <> "" Then
dbpath.Text = cmd1.FileName
strconn = "provider=microsoft.jet.oledb.4.0;data source=" & cmd1.FileName
'打开数据源连接
If conn.State = adStateOpen Then
conn.Close
End If
conn.open strconn
'读取所有表名称,填充到TreeView
tabletree.Nodes.Clear
Dim nd1 As Node
Set nd1 = tabletree.Nodes.Add(, , "pt", "数据库文件")
Set rs = conn.OpenSchema(adSchemaTables)
Do Until rs.EOF
'判断是否是表
If rs!TABLE_TYPE = "TABLE" Then
Dim nd As Node
'将表名添加到TreeView
Set nd = tabletree.Nodes.Add("pt", tvwChild, "pt" & i)
nd.Text = rs!TABLE_NAME
i = i + 1
End If
rs.MoveNext
Loop
rs.Close
End If
End Sub
'取表里所有字段的函数
Private Function getTable(ByVal nodename As String) As Recordset
Dim str As String
str = "select * from " & nodename
Set rs = New ADODB.Recordset
rs.open str, conn, 3, 3
Set getTable = rs
End Function
'查找函数
Private Function getKey() As Recordset
Dim str As String
str = "select * from " & tablenm & " where " & Trim(ziduan.Text) & " like '%" & key.Text & "%'"
rs.open str, conn, 3, 3
Set getKey = rs
End Function

Private Sub search_Click()
Set msh.DataSource = getKey
rs.Close
End Sub

'点击表名时使用的函数
Private Sub tabletree_NodeClick(ByVal Node As MSComctlLib.Node)
Dim i As Integer
If Node.key <> "pt" Then
tablenm = Trim(Node.Text)
Set rs = getTable(Trim(Node.Text))
ziduan.Clear
For i = 0 To rs.Fields.Count - 1
ziduan.AddItem rs(i).Name
Next i
rs.Close
End If
End Sub
'本程序在win2000下读取VB目录NOTHWIND数据库通过

在Excel 中,有时需要统计表中相同数据出现的次数,如果对Excel 的函数运用不熟悉,我们可以巧妙地通过“查找与替换”来实现数据的简单统计。

如需统计人员花名册中性别为“男”的人数,可选中性别所在列,点击“编辑”菜单下的“替换”项。在“查找内容”中填写“男”,“替换为”中填上“A”,选择“全部替换”,此时Excel会弹出菜单提示“完成了X处被替换”,这个X即为统计出的男性人数。

再选择“编辑”菜单下“撤消”功能,使原单元格数据恢复。

另附陈秀峰的补充如下:

1、此法对于Excel2000及以前的版本无效(没有替换完成的提示框出现)。

2、如果将文中的“A”换成“男”,即在“替换为”中仍然填上“男”,则免去后面的“撤销”操作,效果更妙。

3、此法可以移植到Word等其他Office系列软件中。

在VB中有ADO控件,可以用的
不知道你对ADO了解怎么样
不行你就到www.csdn.net上看看
很好的

晕~
你上课的时候去干什么去拉?
很简单的问题被你复杂化了~
用什么你自己去翻翻书就知道拉~呵呵

在Excel 中,有时需要统计表中相同数据出现的次数,如果对Excel 的函数运用不熟悉,我们可以巧妙地通过“查找与替换”来实现数据的简单统计。

如需统计人员花名册中性别为“男”的人数,可选中性别所在列,点击“编辑”菜单下的“替换”项。在“查找内容”中填写“男”,“替换为”中填上“A”,选择“全部替换”,此时Excel会弹出菜单提示“完成了X处被替换”,这个X即为统计出的男性人数。

再选择“编辑”菜单下“撤消”功能,使原单元格数据恢复。

另附陈秀峰的补充如下:

1、此法对于Excel2000及以前的版本无效(没有替换完成的提示框出现)。

2、如果将文中的“A”换成“男”,即在“替换为”中仍然填上“男”,则免去后面的“撤销”操作,效果更妙。

3、此法可以移植到Word等其他Office系列软件中。
回答者:时代英雄 - 秀才 二级 12-11 14:09

--------------------------------------------------------------------------------

在Excel 中,有时需要统计表中相同数据出现的次数,如果对Excel 的函数运用不熟悉,我们可以巧妙地通过“查找与替换”来实现数据的简单统计。

如需统计人员花名册中性别为“男”的人数,可选中性别所在列,点击“编辑”菜单下的“替换”项。在“查找内容”中填写“男”,“替换为”中填上“A”,选择“全部替换”,此时Excel会弹出菜单提示“完成了X处被替换”,这个X即为统计出的男性人数。

再选择“编辑”菜单下“撤消”功能,使原单元格数据恢复。

另附陈秀峰的补充如下:

1、此法对于Excel2000及以前的版本无效(没有替换完成的提示框出现)。

2、如果将文中的“A”换成“男”,即在“替换为”中仍然填上“男”,则免去后面的“撤销”操作,效果更妙。

3、此法可以移植到Word等其他Office系列软件中。
回答者:洋葱头6658 - 助理 二级 12-11 14:25

--------------------------------------------------------------------------------

在Excel 中,有时需要统计表中相同数据出现的次数,如果对Excel 的函数运用不熟悉,我们可以巧妙地通过“查找与替换”来实现数据的简单统计。

如需统计人员花名册中性别为“男”的人数,可选中性别所在列,点击“编辑”菜单下的“替换”项。在“查找内容”中填写“男”,“替换为”中填上“A”,选择“全部替换”,此时Excel会弹出菜单提示“完成了X处被替换”,这个X即为统计出的男性人数。

再选择“编辑”菜单下“撤消”功能,使原单元格数据恢复。

另附陈秀峰的补充如下:

1、此法对于Excel2000及以前的版本无效(没有替换完成的提示框出现)。

2、如果将文中的“A”换成“男”,即在“替换为”中仍然填上“男”,则免去后面的“撤销”操作,效果更妙。

3、此法可以移植到Word等其他Office系列软件中。

Sub FillColumn(fg As vsFlexGrid, ByVal c As Long, ByVal t As String, ByVal s As String)

Dim r&, i&, cnt&
ReDim lst(0) As String

' build list
cnt = 0
i = InStr(s, "|")
While i > 0
lst(cnt) = left(s, i - 1)
s = Mid(s, i + 1)
cnt = cnt + 1
ReDim Preserve lst(cnt) As String
i = InStr(s, "|")
Wend
lst(cnt) = s

' set values
fg.Cell(flexcpText, 0, c) = t
For r = fg.FixedRows To fg.Rows - 1
i = (Rnd() * 1000) Mod (cnt + 1)
fg.Cell(flexcpText, r, c) = lst(i)
Next

' do an autosize
fg.AutoSize c, , , 300
End Sub

FillColumn hfxgrid ""Proposals|Demos|Social|Trips|Projects""

或者试下另一种方法:

sql = "select mobilename,mobiletype,count(*) " & _
"as sellcount,count(mobilename)/ ( select count(*) " & _
" from mobile where sellplace<>'其他' and buydate between #" & _
DTPFromDate.Value & "# and #" & DTPTodate.Value & "#)" & _
" as sellpercent " & _
"from mobile where buydate between #" & _
DTPFromDate.Value & "# and #" & DTPTodate.Value & "#" & _
"group by mobilename,mobiletype " & _
" order by count(*) desc "
统计好了用grid控件显示就好