Office中国论坛/Access中国论坛

标题: 如何取运行Docmd.Openquery后的值? [打印本页]

作者: FookYou    时间: 2009-12-6 09:45
标题: 如何取运行Docmd.Openquery后的值?
[attach]40645[/attach]
Private Sub Form_Open(Cancel As Integer)
  DoCmd.OpenQuery "查询1"
  Me.Text1 = "查询的第二条记录中的姓名"
  Me.Text2 = "查询的第四条记录中的姓名"
  Me.Text3 = "查询的第二条记录中的年龄"
  Me.Text4 = "查询的第四条记录中的年龄"
End Sub
作者: ACMAIN_CHM    时间: 2009-12-6 10:23
你需要使用ADO模型操作每个记录。

在你的ACCESS自带帮助文档中搜索 ADO recordset



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.


作者: FookYou    时间: 2009-12-6 11:02
谢谢!能不能就该列子写下代码。教下怎么使用?
作者: todaynew    时间: 2009-12-6 17:08
dlookup
作者: FookYou    时间: 2009-12-7 08:22
如果有很多记录,我想从查询表里提取25岁10条记录,20岁5条记录。。,排序是在查询里做好的。该如何实现?
作者: FookYou    时间: 2009-12-7 11:58
没人帮忙啊,谁给个提取查询表记录的例子啊。谢谢!
作者: FookYou    时间: 2009-12-8 10:45
[attach]40688[/attach]
Private Sub Form_Open(Cancel As Integer)
  Dim Cn As ADODB.Connection
  Dim Rs As ADODB.Recordset
  Dim strSQL$
    strSQL = CurrentDb.QueryDefs("查询1").SQL
    Set Cn = CurrentProject.AccessConnection
    Set Rs = New ADODB.Recordset
    Rs.Open strSQL, Cn, adOpenForwardOnly, adLockReadOnly
    Rs.MoveFirst
    Rs.MoveNext
    Me.Text1 = Rs("姓名")
    Me.Text3 = Rs("年龄")
    Rs.Move (2)
    Me.Text2 = Rs("姓名")
    Me.Text4 = Rs("年龄")
    Set Rs = Nothing
    Set Cn = Nothing
End Sub
作者: FookYou    时间: 2009-12-8 10:55
没人帮忙,自己上网查了两天的资料,这样写不知道对不对?
还有如果我的"查询1"是个复杂的查询,就是strSQL字符很长,这样写就不行。
我想解决的问题是:我做好一个复杂的查询(条件跟窗体中的数据有关),在窗体中要对该查询表进行提取记录,
该怎么解决呢?在Access中该如何对查询进行操作,请指教!多谢!
作者: FookYou    时间: 2009-12-8 13:22
Private Sub Form_Open(Cancel As Integer)
  Dim Rs As DAO.Recordset
    Set Rs = CurrentDb.OpenRecordset("查询1")
    Rs.MoveFirst
    Rs.MoveNext
    Me.Text1 = Rs("姓名")
    Me.Text3 = Rs("年龄")
    Rs.Move (2)
    Me.Text2 = Rs("姓名")
    Me.Text4 = Rs("年龄")
    Rs.Close
End Sub
作者: FookYou    时间: 2009-12-8 13:23
原来这样就可以了。。。。。。。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3