access 多条件查询

Viven-大白菜 2010-10-20 11:46:30
现在用vb+access,查询,将结果显示到listview中,现在我做
Set rst = db.OpenRecordset("select * from dangqian where(lot='13')")
这个。然后显示的只有一条记录,应该有很多条的,请高手指点。
如何实现多条件查询呢?包括一个时间段的查询,谢谢。
...全文
320 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
panyong 2010-10-27
  • 打赏
  • 举报
回复
你用 select * from dangqian where lot='13' 先在数据库里的SQL查询一下有多少条数据

如果有你说的 10几条数据 证明SQL语句没有问题,然后再用
Do While Not rss.EOF
For i = 1 To rss.RecordCount
Set Fliv = ListView1.ListItems.Add()
Fliv.Text = i
Fliv.SubItems(1) = rss.Fields("字段1")
Fliv.SubItems(2) = rss.Fields("字段2")
Fliv.SubItems(3) = rss.Fields("字段3")
Fliv.SubItems(4) = rss.Fields("字段4")
Fliv.SubItems(5) = rss.Fields("字段5")
rss.MoveNext
Next i
Loop
rss.Close
sunmoonn 2010-10-26
  • 打赏
  • 举报
回复
rst没清空或你的条件设置不正确
这是我的
If rst.State Then
rst.Close
Set rst = Nothing
End If
rst.CursorLocation = adUseClient

然后再添加你自己的代码试试
Set rst = db.OpenRecordset("select * from dangqian where(lot='13')")
LV1.ListItems.Clear
For i = 1 To rst.RecordCount

king06 2010-10-21
  • 打赏
  • 举报
回复
只能说满足你这个条件的记录只有1条,select * from dangqian where(lot='13')

将SQL语句放到数据库中创建查询,运行一下就知道了
Viven-大白菜 2010-10-21
  • 打赏
  • 举报
回复
不对啊。我现在表中的lot=13的有许多条,它只认第一条。然后就完了。不忘下走。。
li08hua 2010-10-21
  • 打赏
  • 举报
回复
5楼的是正解!多条件是指什么样的?
Viven-大白菜 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lxq19851204 的回复:]
VB code
For i = 1 To rst.RecordCount
LV1.ListItems.Add i, , rst.Fields("Lot") & vbNullString
With LV1.ListItems(i)
.SubItems(1) = rst.Fields("1") & vbNullString
.SubItems(2) = rst……
[/Quote]
还是不行,,只能显示一条记录。。愁死我了。。另外多条件查询的语句咋写呢。谢谢
lxq19851204 2010-10-20
  • 打赏
  • 举报
回复
For i = 1 To rst.RecordCount
LV1.ListItems.Add i, , rst.Fields("Lot") & vbNullString
With LV1.ListItems(i)
.SubItems(1) = rst.Fields("1") & vbNullString
.SubItems(2) = rst.Fields("2") & vbNullString
.SubItems(3) = rst.Fields("3") & vbNullString

End With
rst.MoveNext
'If rst.EOF Then Exit For '去掉
Next i
Viven-大白菜 2010-10-20
  • 打赏
  • 举报
回复
Set db = Workspaces(0).OpenDatabase("data.mdb", False)
Set rst = db.OpenRecordset("select * from dangqian where(lot='13')")
LV1.ListItems.Clear
For i = 1 To rst.RecordCount
LV1.ListItems.Add i, , rst.Fields("Lot") & vbNullString
With LV1.ListItems(i)
.SubItems(1) = rst.Fields("1") & vbNullString
.SubItems(2) = rst.Fields("2") & vbNullString
.SubItems(3) = rst.Fields("3") & vbNullString

End With
rst.MoveNext
If rst.EOF Then Exit For
Next i

rst.Close
db.Close
贝隆 2010-10-20
  • 打赏
  • 举报
回复
上代码来看看
Viven-大白菜 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 king06 的回复:]

debug.print rst.RecordCount 看看是多少.
VB code
.SubItems(1) = rst.Fields("1") & vbNullString '1是字段名? 如果是序号,不需要双引号且序号从0开始
.SubItems(2) = rst.Fields("2") & vbNullString
.SubItems(3) = rst.F……
[/Quote]
rst.recordcount 返回值为1,不知道为什么。我没看出来哪错了,请教高手
king06 2010-10-20
  • 打赏
  • 举报
回复
debug.print rst.RecordCount 看看是多少.
  .SubItems(1) = rst.Fields("1") & vbNullString '1是字段名? 如果是序号,不需要双引号且序号从0开始
.SubItems(2) = rst.Fields("2") & vbNullString
.SubItems(3) = rst.Fields("3") & vbNullString

多条件是指什么样的?e.g.
select * from dangqian where lot='13' and 字段2>0 and 字段3 is not null

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧