设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2492|回复: 13
打印 上一主题 下一主题

[与其它组件] 问一个关于查找记录的菜问题

[复制链接]
跳转到指定楼层
1#
发表于 2006-3-9 23:17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
偶要查找一个记录,代码如下:

Dim string1 As String
Dim dbs As Database
Dim rst1, rst2, rst3 As dao.Recordset

Set dbs = OpenDatabase("D:\work\数据处理.mdb")

Set rst1 = dbs.OpenRecordset('oldfile', dbOpenDynaset)

string1 = "0001"

rst1.MoveFirst
rst1.FindFirst "客户号 like " & string1   '在oldfile表中查找一条记录,客户号=变量string1对应的字符,这句语句该怎么写??
If not rst1.nomatch Then
      
      MsgBox (rst1.Fields(6))  '显示客户号对应的合同号

endif

问题是记录指针一直停留在表oldfile 的第一条记录,无法实现查找定位记录的目的.请各位DX指教! BTW, 有什么比较好的入门书籍推荐吗? 谢谢!

[此贴子已经被作者于2006-3-10 10:35:01编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-3-10 00:06:00 | 只看该作者
把这句

rst1.findnext

改为

rst1.findnext "客户号 like " & string2

试试看
3#
 楼主| 发表于 2006-3-10 00:16:00 | 只看该作者
在findfirst后的第一句 msgbox 指针就没有正确定位了(在表的第一条记录而不是符合条件的第一条记录),所以应该不关findnext的事...
4#
发表于 2006-3-10 00:39:00 | 只看该作者
不是很清楚您的目的,如有可能,能不能描述的详细一些?您是不是想找出该客户的所有合同号?

这里  strings = "0001" ,会不会是string2  ?



rst1.MoveFirst
rst1.FindFirst "客户号 like " & string2(或者这里是不是strings  ?)


[此贴子已经被作者于2006-3-9 16:42:12编辑过]

5#
 楼主| 发表于 2006-3-10 00:56:00 | 只看该作者
不好意思,改过来了,都是string1,刚才写错了

确实是想找出该客户的所有合同号.
6#
发表于 2006-3-10 05:52:00 | 只看该作者
rst1.findnext ??

改为rst1.movenext

试试
7#
 楼主| 发表于 2006-3-10 16:18:00 | 只看该作者
在findfirst后的第一句 msgbox 指针就没有正确定位了(它定位在表的第一条记录而不是符合条件的第一条记录)
8#
发表于 2006-3-10 17:27:00 | 只看该作者



Using the Find Method


The following examples listings demonstrate how to locate a record using fFind and seek.


DAO


Sub DAOFindRecord()





        Dim db            As DAO.Database


        Dim rst          As DAO.Recordset


                        


        ' Open the database


        Set db = DBEngine.OpenDatabase("C:\nwind.mdb")


        


        ' Open the Recordset


        Set rst = db.OpenRecordset("Customers", dbOpenDynaset)


        


        ' Find the first customer who's country is USA


        rst.FindFirst "Country = 'USA'"


        


        ' Print the customer id's of all customers in the USA


        While Not rst.NoMatch


                Debug.Print rst.Fields("CustomerId").Value


                rst.FindNext "Country = 'USA'"


        Wend


        


        ' Close the recordset


        rst.Close


        End Su
9#
 楼主| 发表于 2006-3-10 18:02:00 | 只看该作者
当偶写:rst1.FindFirst "客户号 like " & string1 时,rst1.nomatch 是true,也就是说找不到对应记录(其实此记录是存在的)

当偶写:rst1.FindFirst "客户号 like " string1

rst1.FindFirst "客户号 = string1"

时都是报错,偶到底应该怎么写呢?
10#
发表于 2006-3-10 18:17:00 | 只看该作者
你的Do .....Loop语句没有,FindNext是不动的,最好上传你的示例文件,这样可能大家都方便.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 18:30 , Processed in 0.082731 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表