| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5811 人关注过本帖
标题:怎样在Datagrid中显示查询结果?
取消只看楼主 加入收藏
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:6 
怎样在Datagrid中显示查询结果?
请教大家:怎样使用Adodc在Datagrid中显示查询结果?我已经实现在Datagrid中显示数据库中所有的记录,但是不会让它显示查询结果,请高手给出相应的代码,谢谢!在线等
搜索更多相关主题的帖子: 在线 查询 
2013-01-15 13:06
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 2楼 Artless
我用的是ado data object数据控件连接ACCESS数据库
2013-01-15 13:23
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 2楼 Artless
图片附件: 游客没有浏览图片的权限,请 登录注册
还有就是单击“查询”按钮,就在datagrid中显示查询结果,查询按钮的单击事件怎么写
2013-01-15 13:28
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 5楼 Artless
Dim connstring As String
  connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\VB编程\familyIO.mdb;Persist Security Info=False"
  Adodc1.ConnectionString = connstring
   = adCmdText
  Adodc1.RecordSource = "select * from out where '" & Combo1.Text & "'" & " like '" & gjzText.Text & "'"
  Adodc1.Refresh
  Set DataGrid1.DataSource = Adodc1
帮忙看一下应该怎么改,上面这段代码是放在form_load中的,应该也要放在cmd_click事件中吗?
2013-01-15 13:44
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 6楼 Artless
Option Explicit
Dim px As Boolean




Private Sub cmdFirst_Click() '第一条
  Adodc1.Recordset.MoveFirst
  Tongbu
End Sub

Private Sub cmdLast_Click() '最后一条
 Adodc1.Recordset.MoveLast
 Tongbu
End Sub



Private Sub cmdNext_Click() '下一条
  Adodc1.Recordset.MoveNext
  If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast
  Tongbu
End Sub

Private Sub cmdPrevious_Click() '上一条
  Adodc1.Recordset.MovePrevious
  If Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveFirst
  Tongbu
End Sub




Private Sub cmdQue_Click()
Dim connstring As String
  connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\VB编程\familyIO.mdb;Persist Security Info=False"
  Adodc1.ConnectionString = connstring
   = adCmdText
  Adodc1.RecordSource = "select * from out where '" & Combo1.Text & "'" & " like '" & gjzText.Text & "'"
  DataGrid1.DataSource = Adodc1
  Adodc1.Refresh
  
  DataGrid1.Columns(1) = Adodc1.Recordset.Fields("1")
  DataGrid1.Columns(2) = Adodc1.Recordset.Fields("2")
  DataGrid1.Columns(3) = Adodc1.Recordset.Fields("3")
  DataGrid1.Columns(4) = Adodc1.Recordset.Fields("4")
  DataGrid1.Columns(5) = Adodc1.Recordset.Fields("5")
  DataGrid1.Columns(6) = Adodc1.Recordset.Fields("6")
  DataGrid1.Columns(7) = Adodc1.Recordset.Fields("7")
  DataGrid1.Columns(8) = Adodc1.Recordset.Fields("8")
  DataGrid1.Columns(9) = Adodc1.Recordset.Fields("9")
  DataGrid1.Columns(10) = Adodc1.Recordset.Fields("10")
  DataGrid1.Columns(11) = Adodc1.Recordset.Fields("11")
  DataGrid1.Columns(12) = Adodc1.Recordset.Fields("12")
  DataGrid1.Columns(13) = Adodc1.Recordset.Fields("13")
  DataGrid1.Columns(14) = Adodc1.Recordset.Fields("14")
  DataGrid1.Columns(15) = Adodc1.Recordset.Fields("15")
  DataGrid1.Columns(16) = Adodc1.Recordset.Fields("16")
  DataGrid1.Columns(17) = Adodc1.Recordset.Fields("17")
  DataGrid1.Columns(18) = Adodc1.Recordset.Fields("18")

  
DataGrid1.Columns(0).Width = 500 '设置datagrid1控件列宽
DataGrid1.Columns(1).Width = 1000
DataGrid1.Columns(2).Width = 800
DataGrid1.Columns(3).Width = 600
DataGrid1.Columns(4).Width = 800
DataGrid1.Columns(5).Width = 600
DataGrid1.Columns(6).Width = 800
DataGrid1.Columns(7).Width = 600
DataGrid1.Columns(8).Width = 800
DataGrid1.Columns(9).Width = 600
DataGrid1.Columns(10).Width = 800
DataGrid1.Columns(11).Width = 600
DataGrid1.Columns(12).Width = 800
DataGrid1.Columns(13).Width = 600
DataGrid1.Columns(14).Width = 800
DataGrid1.Columns(15).Width = 600
DataGrid1.Columns(16).Width = 1000
DataGrid1.Columns(17).Width = 800
DataGrid1.Columns(18).Width = 800
  If Adodc1.Recordset.EOF Then MsgBox "没有查找到结果!", , "查询提示"

   
End Sub

Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
  px = Not px
  If px Then
    Adodc1.Recordset.Sort = DataGrid1.Columns(ColIndex).DataField & " asc" '单击字段标题自动升序
  Else
    Adodc1.Recordset.Sort = DataGrid1.Columns(ColIndex).DataField & " desc" '单击字段标题自动降序
  End If
End Sub

Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
 If Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveFirst
 If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast
 Tongbu
End Sub

Private Sub Form_Load()
Dim connstring As String
  connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\VB编程\familyIO.mdb;Persist Security Info=False"
  Adodc1.ConnectionString = connstring
   = adCmdText
  Adodc1.RecordSource = "select * from out where '" & Combo1.Text & "'" & " like '" & gjzText.Text & "'"
  Adodc1.Refresh
  Set DataGrid1.DataSource = Adodc1


Adodc1.Recordset.Sort = DataGrid1.Columns(1).DataField
Adodc1.Recordset.MoveLast
px = False

Combo1.AddItem ("日期")
Combo1.AddItem ("水果类")
Combo1.AddItem ("其他辅食类")
Combo1.AddItem ("生活用品类")
Combo1.AddItem ("衣物类")
Combo1.AddItem ("交通类")
Combo1.AddItem ("通信类")
Combo1.AddItem ("娱乐文化类")
Combo1.AddItem ("其他类")
DataGrid1.Enabled = False
'Combo1.ListIndex = 0
End Sub
2013-01-15 13:47
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
收藏
得分:0 
此问题本人已经解决!
2013-01-16 14:54
wcb8302
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2012-12-17
收藏
得分:0 
(总结)要想将查询结果显示在Datagrid中,须注意以下几点:
1.select查询语句中where后的字段及其值不能同时使用变量,不然提示出错,改为:字段为常量,用select语句分情况select语句 解决,“ like '% 查询变量 %'”实现模糊查询
2.执行查询语句后,如果查询文本型字段的值为空,则提示NULL错误,解决方法:打开数据库,将其字段的“必填”选“是”;默认为“ ”。
收到的鲜花
  • Artless2013-01-16 19:41 送鲜花  5朵   附言:原创内容
2013-01-16 15:01
快速回复:怎样在Datagrid中显示查询结果?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052319 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved