注册 登录
编程论坛 VB6论坛

请教各位大牛:Access数据库里面如何通过SQL语句查询,使得查询结果显示在窗体上呢?

ppxe310 发布于 2017-12-26 15:43, 7050 次点击
Access数据库里面有两张表,建立一个窗体,想从数据表里面随机抽取两条记录显示在窗体上,如何做到呢?
数据库见附件。
问题
1. 想通过点击“随机抽取执法人员”按钮,能够从“执法人员名单”表里面随机抽取两位执法人员,显示其姓名
2. 击“随机抽取检查企业”,能够从“抽查企业名单”中随机选出一个企业信息
7 回复
#2
ppxe3102017-12-26 15:45
回复 楼主 ppxe310
只有本站会员才能查看附件,请 登录
Access数据库文件
#3
wds12017-12-26 16:43
【需要引用Microsoft Activex Data Objects XX Library】
Private Sub Command1_Click()
 Dim conn As ADODB.Connection
 Set conn = New ADODB.Connection
  conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\VB\temp\RandSystem.accdb;Persist Security Info=False"
  conn.Open
  strsql = "select * from 执法人员名单"
  Dim rs As ADODB.Recordset
  Set rs = New ADODB.Recordset
  rs.Open strsql, conn, 1, 1
  '自己编写随机数算法,以下示例显示1,3记录
  MsgBox "记录数:" & Str(rs.RecordCount)'显示总记录数’
  MsgBox rs.Fields(1)'显示第一个记录【具体显示随机数自己编写】
  rs.Move 3
  MsgBox rs.Fields(1)'显示第三个记录
End Sub
#4
ppxe3102017-12-26 16:45
回复 3楼 wds1
太感谢了,我试试
#5
ppxe3102017-12-26 17:18
回复 3楼 wds1
太感谢了,帮我解决了大问题,现在问题又来了,如何把查询结果放入窗体中的那个文本框里面呢?
Private Sub Command2_Click()
  Dim conn As ADODB.Connection
  Set conn = New ADODB.Connection
  conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Joyce\Desktop\tmp\RandSystem.accdb;Persist Security Info=False"
  conn.Open
  strsql = "SELECT TOP 2 执法人员名单.[姓  名] FROM 执法人员名单 ORDER BY RND(ID)"
   
  Dim rs As ADODB.Recordset
  Set rs = New ADODB.Recordset
  rs.Open strsql, conn, 1, 1
  
   '自己编写随机数算法,以下示例显示1,3记录
  MsgBox "记录数:" & Str(rs.RecordCount) '显示总记录数’
  
  Text4 rs.Fields(1) '//如何把查询结果放入窗体中的那个文本框里面呢? 系统提示这样做不对
  rs.Move 2
  Text4 rs.Fields(1) '显示第二个记录

End Sub
#6
wds12017-12-26 17:37
'如果数据库没有空记录,判断可以不要,不同窗体要加窗体名,如果是文本控件赋值如下’
 If Not IsNull(rs.Fields(1))  Then text4.text=rs.fileds(1)

      
#7
ppxe3102017-12-27 11:13
回复 6楼 wds1
修改为这样: If Not IsNull(rs.Fields("姓  名")) Then Me.Text4.Value = rs.Fields("姓  名").Value
问题就解决了。

太感谢了,
#8
小白N2021-05-15 20:33
思考如何从数据库中获取数据,并对其进行简单处理以后显示到窗体中。例如从数据库中读取一名学生的成绩(比如90分),加5分后将新的成绩(95分)显示在窗体(控件)中。将整个问题的描述及处理步骤和相关代码写成word文档
1