网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月21日漏签0天
vb吧 关注:156,144贴子:1,166,069
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 11回复贴,共1页
<<返回vb吧
>0< 加载中...

VB按照多条件到Access查询数据

  • 只看楼主
  • 收藏

  • 回复
  • 冻菁
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Text1中是姓名;listview1的第一列是学科,Access的表"FSQK"中的第2列和第3列有很多人的各科的成绩和分数,现在要根据Text1中的姓名和listview1中的学科(学科会有很多)为查找条件到Access的表"FSQK"中找到这个人的每一学科所对应的分数填到listview1的第二列。找不到的填写"没有"。如下图:
我要使用ADO连接数据库,如
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Database.mdb;Jet OLEDB:Database Password=;Persist Security Info=False;"
完整作业,急啊!


  • 露琪亚の咪咪
  • 啥玩意
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
表结构什么都没有。怎么回答。


星座王
点亮12星座印记,去领取
活动截止:2100-01-01
去徽章馆》
2025-05-21 02:52:30
广告
  • 冻菁
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
呵呵,又见到你真高兴!最近都忙些啥呢?朋友


  • 露琪亚の咪咪
  • 啥玩意
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
月中会闲下来,其它时间会很忙。


星座王
点亮12星座印记,去领取
活动截止:2100-01-01
去徽章馆》
  • 冻菁
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
哦,大忙人啊!
我将数据库结构截图出来。


  • 冻菁
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

listview1中的学科那一栏也是自定义行的所有的学科,现在要做的是从表FSQK中人员
所对应的各科成绩,直接填到listview1中分数那一栏。表FSQK中没有的则在listview1中的分数栏显示“没有”


  • 露琪亚の咪咪
  • 啥玩意
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
select a.km,b.fenshu
from (select distinct xueke as km from fsqk) a
left join fsqk b on a.km=b.xueke
where xingming='张三'
试下,其它好办法没想到。


星座王
点亮12星座印记,去领取
活动截止:2100-01-01
去徽章馆》
  • 冻菁
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没看懂多少,太简化了。还是附上我的全代码吧。
------------------------------------------------------------
模块中代码:
Public cn As New ADODB.Connection '连接
Public rs As New ADODB.Recordset '记录集
Public Sub OpenConn() '连接数据库
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Database.mdb;Jet OLEDB:Database Password=;Persist Security Info=False;"
End Sub
'关闭数据库连接
Public Sub CloseConn()
'rs.Close
'Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
---------------------------------------------------------------
Form中代码:
Dim SQL As String
Dim AddData As ListItem
'添加和查找数据
Private Sub CmdCZ_Click()
SQL = "select * from FSQK where xingming like '%" & Me.TexXM.Text & "%' ORDER BY ID ASC"
Call OpenConn
rs.Open SQL, cn, 1, 1
Do While Not rs.EOF
Set AddData = ListView1.ListItems.Add(, , rs.Fields("ID").Value)
AddData.SubItems(1) = IIf(IsNull(rs.Fields("xueke")), "", rs.Fields("xueke"))
AddData.SubItems(2) = IIf(IsNull(rs.Fields("fenshu")), "", rs.Fields("fenshu"))
rs.MoveNext
Loop
Call CloseConn
End Sub
Private Sub Form_Load()
With ListView1
.ColumnHeaders.Add , , "ID"
.ColumnHeaders.Add , , "学科"
.ColumnHeaders.Add , , "分数"
.ColumnHeaders(1).Width = 0
End With
'添加现有所有学科到listview1中
Call OpenConn
SQL = "select * from SYxueke ORDER BY ID"
rs.Open SQL, cn, 1, 1
Do While Not rs.EOF
Set addlist1 = ListView1.ListItems.Add(, , rs.Fields("ID").Value)
addlist1.SubItems(1) = IIf(IsNull(rs.Fields("xueke")), "", rs.Fields("xueke"))
rs.MoveNext
Loop
Call CloseConn
End Sub
---------------------------end------------------------------
以上代码只能实现将所查找到得数据添加到了已经定义好的数据的下面,而我要的是将数据添加到学科的分数那栏,而不是添加到原有数据的下方。
请帮看看改改!




2025-05-21 02:46:30
广告
  • 露琪亚の咪咪
  • 啥玩意
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我说下我要做的方法,大致到你这上面改的。
建立一张学科表,里面用来存所有学科,这样在查询的时候就可以根据学科表来查数据。
你在本地这边就可以直接把所有查询出来的记录插入列表中。


星座王
点亮12星座印记,去领取
活动截止:2100-01-01
去徽章馆》
  • sunshinebean
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
既然姓名和学科都是查询条件而这2个在FSQK中都有
那就是select fenshu from FSQK where xingming='xxx' and xueke='xxx'
xxx自己传啊


  • 露琪亚の咪咪
  • 啥玩意
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你没看明白意思,他要的是所有科目全列出,数据库里没有的也要列出。


星座王
点亮12星座印记,去领取
活动截止:2100-01-01
去徽章馆》
  • 冻菁
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
是的,a6essaw说的对!其实所有科目是从数据库的一个表“SYkemu"中获取的所有科目,然后根据姓名和所有的listview1的第一列所有的科目到表”FSQK"中找到对应科目和对应分数,如有没有的科目则直接在该科目的后面显示“没有”。
我之所以这样做有两个目的。第一,以后可以在表“SYkemu”中添加和删除科目;第二,如果所查找到该学生的的哪一科还没有录入则可以看到“没有”。
a6essaw,请问那如何根据姓名和所有的listview1的第一列所有的科目到表”FSQK"中找到对应科目和对应分数呢?
就是相当于把下面这这两段结合在一起,怎么改写呢?
--------------------------------------------------------------------------------
SQL = "select * from FSQK where xingming like '%" & Me.TexXM.Text & "%' ORDER BY ID ASC"
Call OpenConn
rs.Open SQL, cn, 1, 1
Do While Not rs.EOF
Set AddData = ListView1.ListItems.Add(, , rs.Fields("ID").Value)
AddData.SubItems(1) = IIf(IsNull(rs.Fields("xueke")), "", rs.Fields("xueke"))
AddData.SubItems(2) = IIf(IsNull(rs.Fields("fenshu")), "", rs.Fields("fenshu"))
rs.MoveNext
Loop
Call CloseConn
--------------------------------------------------------------------------------
Call OpenConn
SQL = "select * from SYxueke ORDER BY ID"
rs.Open SQL, cn, 1, 1
Do While Not rs.EOF
Set addlist1 = ListView1.ListItems.Add(, , rs.Fields("ID").Value)
addlist1.SubItems(1) = IIf(IsNull(rs.Fields("xueke")), "", rs.Fields("xueke"))
rs.MoveNext
Loop
Call CloseConn
--------------------------------------------------------------------------------



登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 11回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示