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

时间:2021-01-16 15:32:08
用dbgrid的 Add All Fields.选择需要设置的列,在它的属性栏,直接设置WINDTH值.这一方法,运行后查询结果显示不出来,是空白。
如果是提供这一方法的话希望能解决上结果是空白的问题。
PS:不设置WIDTH值时,语句能执行且能出结果。除了列宽显示不合理外其他的都行
dbgrid是通过ADOquery获取数据,显示列宽不合理的都是ACCESS库中的文本型字段。数值型字段正常,大家帮忙看看怎么能解决。

18 个解决方案

#1


找了很多方法,大多都是调WIDTH的。但是都不好用。

#2


空白的?不可能吧
先设置dbgrid的datasource,然后双击dbgrid,Add添加一列,再设置FieldName属性

#3


引用 2 楼  的回复:
空白的?不可能吧
先设置dbgrid的datasource,然后双击dbgrid,Add添加一列,再设置FieldName属性
设置FieldName属性不行,因为dbgrid的datasource连的是ADOquery,通过SQL语句执行后才能出数据。
 

#4


FieldName属性,可以直接输入的,并不需要ADOquery有SQL语句,当然有的话可以选择

#5


引用 4 楼  的回复:
FieldName属性,可以直接输入的,并不需要ADOquery有SQL语句,当然有的话可以选择
输入了,可执行,但仍然显示列宽过大,这一个字段就显示了一屏。。。内容就两字。。并且运行后,手动调都调不了

#6


这个问题不能无解吧。。。。。

#7


把数据都显示出来了,再动态调整列宽。

#8


引用 7 楼  的回复:
把数据都显示出来了,再动态调整列宽。
数据都显示出来后,动态调整不好,拖拽无反应。。。

#9


引用 7 楼  的回复:
把数据都显示出来了,再动态调整列宽。
数据都显示出来后,动态调整不好,拖拽无反应。。。会不会和我的数据库数据有关系,我的ACCESS数据是从EXCEL导入的。新建表测试,新建的表数据显示出来后,可以动态调整。

#10


还有别的方法么?

#11


楼主,是不是设定dbgrid的columns.width每项的列宽,这样限定了显示列宽。

#12


引用 11 楼  的回复:
楼主,是不是设定dbgrid的columns.width每项的列宽,这样限定了显示列宽。
没有设定呢

#13


把dbgrid中默认字段清空, 全部手工添加,添加后每个字段指定FieldName, 并且每个字段的Width修改,(必须修改,不修改,则显示的时候,是根据表中字段的长度显示的) ,Width修改成你想要的宽度, 然后就可以了。

#14


引用 13 楼  的回复:
把dbgrid中默认字段清空, 全部手工添加,添加后每个字段指定FieldName, 并且每个字段的Width修改,(必须修改,不修改,则显示的时候,是根据表中字段的长度显示的) ,Width修改成你想要的宽度, 然后就可以了。
这个方法用过了。不行

#15


1个月过去了,这么简单的问题楼主还没搞清楚。。。

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

若根据SQL语句自动显示列,一般都要设置宽度,像这样
dbgrid1.Columns[0].Width:=100;

#16


引用 15 楼  的回复:
1个月过去了,这么简单的问题楼主还没搞清楚。。。

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

若根据SQL语句自动显示列,一般都要设置宽度,像这样
dbgrid1.Columns[0].Width:=100;
谢谢指导,我再试下

#17


引用 15 楼  的回复:
1个月过去了,这么简单的问题楼主还没搞清楚。。。

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

若根据SQL语句自动显示列,一般都要设置宽度,像这样
dbgrid1.Columns[0].Width:=100;
这个好用

#18


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

#1


找了很多方法,大多都是调WIDTH的。但是都不好用。

#2


空白的?不可能吧
先设置dbgrid的datasource,然后双击dbgrid,Add添加一列,再设置FieldName属性

#3


引用 2 楼  的回复:
空白的?不可能吧
先设置dbgrid的datasource,然后双击dbgrid,Add添加一列,再设置FieldName属性
设置FieldName属性不行,因为dbgrid的datasource连的是ADOquery,通过SQL语句执行后才能出数据。
 

#4


FieldName属性,可以直接输入的,并不需要ADOquery有SQL语句,当然有的话可以选择

#5


引用 4 楼  的回复:
FieldName属性,可以直接输入的,并不需要ADOquery有SQL语句,当然有的话可以选择
输入了,可执行,但仍然显示列宽过大,这一个字段就显示了一屏。。。内容就两字。。并且运行后,手动调都调不了

#6


这个问题不能无解吧。。。。。

#7


把数据都显示出来了,再动态调整列宽。

#8


引用 7 楼  的回复:
把数据都显示出来了,再动态调整列宽。
数据都显示出来后,动态调整不好,拖拽无反应。。。

#9


引用 7 楼  的回复:
把数据都显示出来了,再动态调整列宽。
数据都显示出来后,动态调整不好,拖拽无反应。。。会不会和我的数据库数据有关系,我的ACCESS数据是从EXCEL导入的。新建表测试,新建的表数据显示出来后,可以动态调整。

#10


还有别的方法么?

#11


楼主,是不是设定dbgrid的columns.width每项的列宽,这样限定了显示列宽。

#12


引用 11 楼  的回复:
楼主,是不是设定dbgrid的columns.width每项的列宽,这样限定了显示列宽。
没有设定呢

#13


把dbgrid中默认字段清空, 全部手工添加,添加后每个字段指定FieldName, 并且每个字段的Width修改,(必须修改,不修改,则显示的时候,是根据表中字段的长度显示的) ,Width修改成你想要的宽度, 然后就可以了。

#14


引用 13 楼  的回复:
把dbgrid中默认字段清空, 全部手工添加,添加后每个字段指定FieldName, 并且每个字段的Width修改,(必须修改,不修改,则显示的时候,是根据表中字段的长度显示的) ,Width修改成你想要的宽度, 然后就可以了。
这个方法用过了。不行

#15


1个月过去了,这么简单的问题楼主还没搞清楚。。。

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

若根据SQL语句自动显示列,一般都要设置宽度,像这样
dbgrid1.Columns[0].Width:=100;

#16


引用 15 楼  的回复:
1个月过去了,这么简单的问题楼主还没搞清楚。。。

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

若根据SQL语句自动显示列,一般都要设置宽度,像这样
dbgrid1.Columns[0].Width:=100;
谢谢指导,我再试下

#17


引用 15 楼  的回复:
1个月过去了,这么简单的问题楼主还没搞清楚。。。

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

若根据SQL语句自动显示列,一般都要设置宽度,像这样
dbgrid1.Columns[0].Width:=100;
这个好用

#18


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