delphi7,ACCESS数据库,使用DBGRID控件显示查询结果,但是结果中,文本类型的字段显示列宽太大,想要能根据字段大小调整字段

月梦 2012-07-19 08:51:12
用dbgrid的 Add All Fields.选择需要设置的列,在它的属性栏,直接设置WINDTH值.这一方法,运行后查询结果显示不出来,是空白。
如果是提供这一方法的话希望能解决上结果是空白的问题。
PS:不设置WIDTH值时,语句能执行且能出结果。除了列宽显示不合理外其他的都行
dbgrid是通过ADOquery获取数据,显示列宽不合理的都是ACCESS库中的文本型字段。数值型字段正常,大家帮忙看看怎么能解决。
...全文
548 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
夜--太美 2014-04-07
  • 打赏
  • 举报
回复
我用二楼的方法OK啦
月梦 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]
1个月过去了,这么简单的问题楼主还没搞清楚。。。

dbgrid只要设置的datasource属性,然后每列再设置FieldName属性,就有数据了
至于列的宽度那是由Width决定的,这些设置可以在设计期或运行时设置

若根据SQL语句自动显示列,一般都要设置宽度,像这样
dbgrid1.Columns[0].Width:=100;
[/Quote]这个好用
月梦 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]
1个月过去了,这么简单的问题楼主还没搞清楚。。。

dbgrid只要设置的datasource属性,然后每列再设置FieldName属性,就有数据了
至于列的宽度那是由Width决定的,这些设置可以在设计期或运行时设置

若根据SQL语句自动显示列,一般都要设置宽度,像这样
dbgrid1.Columns[0].Width:=100;
[/Quote]谢谢指导,我再试下
kaikai_kk 2012-08-24
  • 打赏
  • 举报
回复
1个月过去了,这么简单的问题楼主还没搞清楚。。。

dbgrid只要设置的datasource属性,然后每列再设置FieldName属性,就有数据了
至于列的宽度那是由Width决定的,这些设置可以在设计期或运行时设置

若根据SQL语句自动显示列,一般都要设置宽度,像这样
dbgrid1.Columns[0].Width:=100;
月梦 2012-08-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
把dbgrid中默认字段清空, 全部手工添加,添加后每个字段指定FieldName, 并且每个字段的Width修改,(必须修改,不修改,则显示的时候,是根据表中字段的长度显示的) ,Width修改成你想要的宽度, 然后就可以了。
[/Quote]这个方法用过了。不行
jiajiajing6 2012-07-30
  • 打赏
  • 举报
回复
把dbgrid中默认字段清空, 全部手工添加,添加后每个字段指定FieldName, 并且每个字段的Width修改,(必须修改,不修改,则显示的时候,是根据表中字段的长度显示的) ,Width修改成你想要的宽度, 然后就可以了。
月梦 2012-07-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
楼主,是不是设定dbgrid的columns.width每项的列宽,这样限定了显示列宽。
[/Quote]没有设定呢
lwb110120130 2012-07-24
  • 打赏
  • 举报
回复
楼主,是不是设定dbgrid的columns.width每项的列宽,这样限定了显示列宽。
月梦 2012-07-20
  • 打赏
  • 举报
回复
还有别的方法么?
月梦 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
把数据都显示出来了,再动态调整列宽。
[/Quote]数据都显示出来后,动态调整不好,拖拽无反应。。。会不会和我的数据库数据有关系,我的ACCESS数据是从EXCEL导入的。新建表测试,新建的表数据显示出来后,可以动态调整。
月梦 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
把数据都显示出来了,再动态调整列宽。
[/Quote]数据都显示出来后,动态调整不好,拖拽无反应。。。
kaikai_kk 2012-07-19
  • 打赏
  • 举报
回复
空白的?不可能吧
先设置dbgrid的datasource,然后双击dbgrid,Add添加一列,再设置FieldName属性
月梦 2012-07-19
  • 打赏
  • 举报
回复
找了很多方法,大多都是调WIDTH的。但是都不好用。
delphi_911 2012-07-19
  • 打赏
  • 举报
回复
把数据都显示出来了,再动态调整列宽。
月梦 2012-07-19
  • 打赏
  • 举报
回复
这个问题不能无解吧。。。。。
月梦 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
FieldName属性,可以直接输入的,并不需要ADOquery有SQL语句,当然有的话可以选择
[/Quote]输入了,可执行,但仍然显示列宽过大,这一个字段就显示了一屏。。。内容就两字。。并且运行后,手动调都调不了
kaikai_kk 2012-07-19
  • 打赏
  • 举报
回复
FieldName属性,可以直接输入的,并不需要ADOquery有SQL语句,当然有的话可以选择
月梦 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
空白的?不可能吧
先设置dbgrid的datasource,然后双击dbgrid,Add添加一列,再设置FieldName属性
[/Quote]设置FieldName属性不行,因为dbgrid的datasource连的是ADOquery,通过SQL语句执行后才能出数据。
 

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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