关于DataGrid的一系列问题。高手请来帮帮忙~~

awangxx 2003-10-09 09:28:34
问题1、DataGrid用ado绑定一个access数据库,如果库里有20列。但是我只想在Data
Grid里显示我某次操作需要的列。请问怎么办?
举例:比如我做一个停车场管理系统的时候。我在车辆入场管理的时候需要填入:车辆型号,车牌号码,入场时间。我在车辆出场管理的时候需要填入:出场时间。我的整个库里的列有:车场自动编号,车辆型号,车牌号码,入场时间,出场时间,停车时间(出场时间-入场时间),收费标准,应收金额。现在我想实现在DataGrid里只能看见我在车辆入场管理的时候需要填入:车辆型号,车牌号码,入场时间等列。其他没有进行操作的列被隐藏。在车辆出场管理时,我只需要填入出场时间,其他的列都应该能自动显示并计算。请问怎样实现?请给代码。光说理论我怕我看的迷糊。:)

问题2、DataGrid里的列的大小能在编程的时候由我设定吗?我用的时候每列系统拉的很大。非常不美观。

问题3、如果可能,请发一个停车场管理系统的实际例子给我,我的MAIL:awangxx@sohu.com和awangxx@yahoo.com.cn,最好两个mail都发一下。我怕我收不到。呵呵。我先申明:我绝对不是拿来做商业用途,我只是想学习VB。
对了。如果有和我一样的菜鸟,也对VB很感兴趣,我很愿意同你们交个朋友。我的QQ号码是7528108。加我的时候请在验证框输入“VB”。
谢谢~~!
~_~
...全文
27 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
awangxx 2003-10-10
  • 打赏
  • 举报
回复
非常感谢大家的帮忙
:)
awangxx 2003-10-09
  • 打赏
  • 举报
回复
没人了吗?我再顶一下。呵呵
awangxx 2003-10-09
  • 打赏
  • 举报
回复
怎么对datagrid中某一列的数据排序?
awangxx 2003-10-09
  • 打赏
  • 举报
回复
对了。我的入场时间和出场时间是用的textbox的值来输入的。
text1.text=time '记录入场时间
text2.text=time '记录出场时间
然后我想在出场管理中自动计算停车时间(text3.text=text2.text-text1.text)。
并且自动计算并显示 应收金额(停车时间 * 收费标准)
请问又该怎么处理?
strongfisher 2003-10-09
  • 打赏
  • 举报
回复
列宽不同
2 datagrid1.Columns(0).Width = 500
datagrid1.Columns(3).Width = 1000
1
Dim sQuery As String
sQuery = "select labor as 车辆型号,mobile as 车牌号 from 表 “
Set rstCmms = cnnCMMS.Execute(sQuery)
Set DataGrid1.DataSource = rstCmms

就是查询的时候只查询你所需要的列就可以了
awangxx 2003-10-09
  • 打赏
  • 举报
回复
to haipingma(.Net && Java 中徘徊):
谢谢,我现在知道怎么调整单独列宽了。其实strongfisher(Haiwolf) 说的很详细啦。我真笨。。。
现在希望大家能帮我详细解答一下第一个问题。谢谢。
还有。DataGrid里的列能不能自动调整大小啊。比如我已经datagrid1.Columns(3).Width = 1000。万一我输入的东西超过了我设定的大小。能自动调整吗?
awangxx 2003-10-09
  • 打赏
  • 举报
回复
to trongfisher(Haiwolf):
调整列宽成功。谢谢
那可不可以每行的列宽都不相同呢。或者设置里面的列能自动调整大小。
这段我不太明白。请说详细些哦。我是菜鸟~
1
Dim sQuery As String
sQuery = "select labor as 车辆型号,mobile as 车牌号 from 表 where failurecode='" & txtFailureCode.Text & "'"
Set rstCmms = cnnCMMS.Execute(sQuery)
Set DataGrid1.DataSource = rstCmms
haipingma 2003-10-09
  • 打赏
  • 举报
回复
1 兩种方法 select 所需要的列 from tablename where ...
datagrid1.Columns(0).Visible=False
datagrid1.Columns(3).Visible=False
...
2 datagrid1.Columns(0).Width = 500
datagrid1.Columns(3).Width = 1000
awangxx 2003-10-09
  • 打赏
  • 举报
回复
如果用datagrid不能实现以上操作。请告诉我其他的方法。谢谢。比如说用MSHFlexGrid~
strongfisher 2003-10-09
  • 打赏
  • 举报
回复
1
Dim sQuery As String
sQuery = "select labor as 车辆型号,mobile as 车牌号 from 表 where failurecode='" & txtFailureCode.Text & "'"
Set rstCmms = cnnCMMS.Execute(sQuery)
Set DataGrid1.DataSource = rstCmms
strongfisher 2003-10-09
  • 打赏
  • 举报
回复
2>
'调整列宽
dim k as integer
For k = 0 To datagrid1.Columns.Count - 1
datagrid1.Columns(k).Width = 1600
Next
awangxx 2003-10-09
  • 打赏
  • 举报
回复
怎么没人啊。我自己顶下~~~
liaorui 2003-10-09
  • 打赏
  • 举报
回复
第一个问题:
  你把SQL语句写成你需要显示的列就可以了呀
select 车辆型号,车牌号码,入场时间 from 表名;

然后执行这条SQL,把这条记录集符给DATAGRIG就可以了呀
strongfisher 2003-10-09
  • 打赏
  • 举报
回复
Public Sub sub_HeadSort(ByVal dgDataGrid As DataGrid, ByVal ColIndex As Integer)
'''---------------------------------------------------------------------
'*
'* 名 称 : sub_HeadSort
'* 作 者 : HaiWolf
'* 功 能 : 该函数用来为datagrid表格排
'* 用 法 : 该函数用来为datagrid表格排序
'* 输 入 : dgDataGrid为表格名称
'* ColIndex 为表格的具体列
'* 返 回 值:
'* 修改日期: 2003-9-25
'''---------------------------------------------------------------------
Static b_Sort
Dim rsTemp As ADODB.Recordset
Set rsTemp = dgDataGrid.DataSource
rsTemp.Sort = rsTemp.Fields.Item(ColIndex).Name & VBA.IIf(b_Sort, " desc", "")
b_Sort = Not b_Sort

End Sub

1,216

社区成员

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

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