问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vb复合查询

发布网友 发布时间:2022-04-26 13:25

我来回答

6个回答

热心网友 时间:2022-06-28 14:52

已完成
=================
1 当会议编号为空时,查询所有会议内容信息
2 当输入会议编号时,计算符合会议编号的信息
3 DATAGRID显示的是同时符合状态标志和会议编号的信息
4 应到人数、未到人数和签到率计算的是符合会议编号的信息
5 输入会议编号敲回车键或状态值选定,所有数据自动计算

热心网友 时间:2022-06-28 14:53

其实这是一个SQL查询问题,条件是从两个TEXT中得到。
假设会议编码从txtNo中输入,签到状态从txtStatus中输入
查询按钮cmdSearch
数据库:TEST 表:tmpTB 字段:会议编码,签到状态,员工工号,……
工程-引用-"Microsoft ActiveX Data Objects 2.x"
Private Sub cmdSearch_Click()
dim rs as adodb.recordset
dim tSql as string
dim ydID as integer '应到人数
dim sdID as integer '实到人数
dim cql as single '出勤率
set rs=new adodb.recordset
rs.activeconnetion="Driver={SQL Server};Server=.;Database=Test;Uid=sa;Pwd=" '------------数据库连接,根据自己的数据做相应改动
'统计选中会议编码的应到人数
tsql="select Count(员工工号) from tmpTB where 会议编码='"+txtNo.Text+"'"
rs.open tSql,,adOpenStatic, adLockOptimistic
ydID=rs.fields(0).value
rs.close
'统计选中会议编码的实到人数
tsql="select Count(员工工号) from tmpTB where 会议编码='"+txtNo.text+"' and 签到状态='%"+txtStatus.Text+"%'"
rs.open tSql,,adOpenStatic, adLockOptimistic
ydID=rs.fields(0).value
rs.close
cql=sdID/ydID
set rs=nothing
End Sub

热心网友 时间:2022-06-28 14:53

有下面几个步骤:
一、链接数据库:
首先新建一个模块,在工程的属性窗口右击Form1,选择【添加】-【添加模块】

注意:必须添加下面是引用:
Microsoft DAO 3.6 Object Librarv
Microsoft ActiveX Data Object 2.7 Librarv

1、如果是Access数据库,在Mole1模块中添加下面的链接数据库代码:
a、有密码的Access数据库链接代码:
Sub SJK(db)
'连接数据库
Dim dbP As String
dbP = App.Path & "\数据库名.dbm"
GSL = "ms access;pwd=密码"
Set WorkDefault = DBEngine.Workspaces(0)
Set db = DBEngine.Workspaces(0).OpenDatabase(dbP, False, False, GSL)
End Sub
b、无密码的Access数据库链接代码:
Public Sub SJK(db)
db.ConnectionString = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & App.Path & "\数据库名.mdb"
db.Open
End Sub

2、如果是SQL 2000数据库,在Mole1模块中添加下面的链接数据库代码:
只提供sa用户带密码的数据库链接代码:
Sub SJK(db)
'连接数据库
db.ConnectionTimeout = 10
db.CursorLocation = adUseServer
db.ConnectionString = "driver={SQL Server};server=服务器名;uid=sa;pwd=密码;database=数据库名"
db.Open
End Sub

二、创建查询窗体:
首先在菜单中点击【工程】-【部件】,在对话框将Microsoft FlexGrid Control 6.0 (SP6)勾选
将窗体大小调整为8470*6440
在窗体中添加二个TextBox控件,一个Command控件,一个MSFlexGrid控件,三个Label控件。

三、编写代码:
Dim db As New ADODB.Command
Dim RS As New ADODB.Recordset
----------------------------------------
Private Sub Command1_Click()
Dim JL As Integer
JL = RS.RecordCount
If Text2.Text <> "" Then
Call SJK(db)
If Text1.Text <> "" Then
strSQL = "select * from 会议统计表 Where 会议编码='" & Text1.Text & "' and 签到状态='" & Text2.Text & "' Order By ID"
Else
strSQL = "select * from 会议统计表 Where 签到状态='" & Text2.Text & "' Order By ID"
End If
RS.Open strSQL, db, 3, 3
With MSFlexGrid1
.Cols = 2
.Rows = JL + 1
.TextMatrix(0, 0) = ""
.TextMatrix(0, 1) = "姓名"
.ColWidth(0) = 0
.ColWidth(1) = 1200
For I = 1 To JL
.TextMatrix(I, 0) = RS("ID")
.TextMatrix(I, 1) = RS("姓名")
TJRS = TJRS + 1
SDRS = SDRS + RS("实到人数")
CQL = CQL + RS("出勤率")
CQL1 = (CQL / TJRS) * 100
RS.MoveNext
Next I
End With
Label3.Caption = "统计人数:" & TJRS & "人; 实到人数:" & SDRS & "人; 出勤率:" & CQL1 & "%"
Else
Label3.Caption = "没有查询到记录!"
End If
End Sub
------------------------------------------------
Private Sub Form_Load()
Label1.BackStyle = 0
Label1.Caption = "会议编码:"
Label1.Alignment = 1
Label2.BackStyle = 0
Label2.Caption = "签到状态:"
Label2.Alignment = 1
Label3.BackStyle = 0
Label3.Caption = ""
Label3.Alignment = 1
MSFlexGrid1.Appearance = flexFlat
MSFlexGrid1.BackColorBkg = &HFAE6E6
MSFlexGrid1.BackColorFixed = &H11CFCF
Me.BackColor = &HFAE6E6
Me.Caption = "会议查询模块"
Text1.Text = ""
Text2.Text = ""
Command1.Caption = "查询"
End Sub

至于控件的摆放位置你自己进行调整即可。

热心网友 时间:2022-06-28 14:54

定义一个字符串变量str,用来存储SQL语句,然后就根据各个text的输入情况选择性的改变str的值,最后rs.open str
比如
dim str as string
str = "select * from table1 where huiyi_id=" & text1
if text2 <> "" then
str = str & "and member=" & text2
end if

仅是举个例子说明意思,希望你能明白

热心网友 时间:2022-06-28 14:55

看来这200分都想要啊。
查询语句其实很简单的
关键要看你的数据库中表是如何设计的了。
而数据库中的表的设计又关系到“会议”这个业务的流程是怎么样的了。
这个就不是一句两句能说清楚的了,您觉得呢。
所以啊,您最好还是说说您要写的这个业务的流程和数据库中相关的表的设计,咱们这些勇夫也好对症下药嘛。

热心网友 时间:2022-06-28 14:55

是数据库的吧?
我可以帮你写。
你可以HI 我

或者Q我

已经HI你
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
PDMS工程师PDMS ...脖子到肩膀中间的地方有个像枣一样大小的肉疙瘩,我很害 ...无法找到和您现有硬件兼容的任何驱动程序。该怎么解决问题? 我的苹果4手机md198zp/a序列号dnqhdtz1dpmw是那一年的机子 请问这是苹果手机的型号吗.MD198cH/A 序列号,DX3KHJ74DPMW请问这部手 ... 手机型号:MD198ZP/A 序列号:C39H1UK1DPMW 是不是翻新机啊?IMEI :01 2... 苹果MD198ZP序列号是C38H16H6DPMW 帮忙看下手机情况, 谢谢 我的iphone4的型号是MD198ZP,序列号是DNTH712LDPMW,麻烦帮我查查这个是... 型号:MD198ZP 序列号:C39H1C84DPMW ...是MD198ZP序列号是DNQH61C0DPMW可是IMEI号手机和包装盒不一样是不... 动态sql 的实现 灵通6100plus按键音怎样删除 怎么将数据库的数据复制到另一个数据库 tsql 为sell_order表添加列,发货日期datetime,创建规则并绑定到,并检查形式是否为2008-08-18格式 Tsql 树的生成 TSQL问题 如果数据库表里有个字段int型 秘密直播里面有送出礼物金额是充值了吗? 想写个tsql语句,查看用户是否与数据库连接,如果存在返回值为1,不存在... tsql问题 如何修改字段名 请问快手直播秘密忘记怎么好回来呀 TSQL PL/SQL究竟指的是哪些数据库 请问各位童鞋,韩剧秘密花园19、20集什么时候能看啊!? t sql语句是不是所有数据库软件都适用 忘记了快手直播秘密 T-sql与SQL语言是一个东西吗? 关于《维多利亚的秘密2009》里的一首歌曲 ,歌曲是当红乐队 莱昂国王 的 sex on fire,维多利亚的秘密2009 SQL和TSQL语言是一样的吗? 高杨要直播是真的吗? 什么是T-SQL 妻子的秘密全集直播1-54集百度影音高清优酷视频迅雷下载观看 怎样将一个数据库中表数据复制到另一个数据库表中 举个例 sqlserver数据... SQL高手高手请进,SQL高手有问题 腰部两侧隐隐作痛? 男人腰两边疼是由哪些常见因素引起的 腰的两侧疼,有好几年了,请问怎么回事. 早上醒来腰两边酸痛到底什么原因呢 我晚上睡觉到半夜,腰两边疼痛是什么原因呢 腰部左右两侧疼痛,是什么原因 两侧的腰很疼,有时候和针扎的一样,做了双肾B超,没有问题,那会是什么问题呢?而且肋骨也疼。 我的腰两侧都疼了一个月了 怎么回事呢 有啥药能暂时缓解的吗? 泰国清迈自由行去哪玩,去十天吃的,住的,玩的,求大神回答~ 泰国签证打算要去清迈自由行的要怎么签证 泰国自由行求解. XWOW晓舞全自动洗地机器人比传统扫地机器人和洗地机好在哪里? 电动汽车长期快充对电池伤么? 唇腭裂流程有哪些? 唇裂二次修复【唇裂二次修复】 第二次唇腭裂修复只做嘴巴不做鼻子可以吗 唇腭裂二次修复能修复好吗? 成人唇腭裂二次修复能达到什么样的效果