38 个解决方案
#2
#3
这个图里所有属性都可以通过代码设置,朱总这个不能不知道吧?
#4
请给出设置的代码,供大家学习!
谢谢!
#5
我这里没装VB,但是我以前那么设置过
另外,所有ACTIVEX属性页中的设置都可以用代码实现
这一点无可争议
具体怎么设置可以参看MSDN
另外,所有ACTIVEX属性页中的设置都可以用代码实现
这一点无可争议
具体怎么设置可以参看MSDN
#6
LS:不要一句话没有VB,就可打发.
DATAGRID控件不能实现,它无Rows和Cols属性.
MSFLEXGRID控件可以实现.
附图说明:
DATAGRID控件不能实现,它无Rows和Cols属性.
MSFLEXGRID控件可以实现.
附图说明:
#7
机器没有VB,那你就装个VB,也好给出更佳的答复.
#9
注意1楼可是获得了60分的满分,这个帖子是
2002-02-01 23:16:11 在 VB / 基础类 提问的
2002-02-01 23:16:11 在 VB / 基础类 提问的
#10
问题在于DATAGRID控件缺省是2列,你如何用代码扩展.
#11
代码设置列宽需要已将DataGrid控件绑定到数据控件,数据控件和相关数据表连接的基础上实施.即实施了检索字段这步.
#12
你怎么用手工扩展就怎么用代码扩展
#13
手工扩展不需要检索字段?
#14
按MSDN:
要在设计时实现一个 DataGrid 控件
为您希望访问的数据库创建一个 Microsoft 数据链接 (.UDL) 文件。请参阅“创建 Northwind OLE DB 数据链接”主题,以获得一个示例。
在窗体上放置一个 ADO Data 控件,并将其 ConnectionString 属性设置为在第 1 步中所创建的OLE DB 数据源。
在这个 Ado Data 控件的 RecordSource 属性中输入一条将返回一个记录集的 SQL 语句。例如,
Select * From MyTableName Where CustID = 12
在窗体上放置一个 DataGrid 控件,并将其 DataSource 属性设置为这个 ADO Data 控件。
右键单击该 DataGrid 控件,然后单击“检索字段”。
右键单击该 DataGrid 控件,然后单击“编辑”。
重新设置该网格的大小、删除、或添加网格的列。
右键单击该 DataGrid 控件,然后单击“属性”。
使用“属性页”对话框来设置该控件的适当的属性,将该网格配置为所需的外观和行为。
可以手工扩展DataGrid 控件列,但必须同时各列绑定字段,其扩展的列才能存在.
否则运行后, DataGrid 控件仍是缺省的2列.
或者采用搜索字段来绑定DataGrid 控件的各列与ADO数据控件连接的数据源所连接表的各字段.
#15
Ado Data 控件 很少有人使用了,你抱出个98年的MSDN当圣经啊
即使使用Ado Data 控件
Ado Data 控件的所有属性页中的属性设置,也都可以通过代码来实现
手工设置过几年就忘却了,可读性不强
代码设置可以加注释,修改方便,复制也方便,清晰
Ado Data 控件糊弄一下初学者还可以
教你不少了,想知道更多就开帖子给分吧
即使使用Ado Data 控件
Ado Data 控件的所有属性页中的属性设置,也都可以通过代码来实现
手工设置过几年就忘却了,可读性不强
代码设置可以加注释,修改方便,复制也方便,清晰
Ado Data 控件糊弄一下初学者还可以
教你不少了,想知道更多就开帖子给分吧
#16
博士!失敬!失敬!
请不要在技术贴的讨论中捣乱.
Private Sub Form_Load()
Dim cn As New ADODB.Connection '定义数据库的连接
sql = "select * from biao1"
Dim rs As New ADODB.Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ts.mdb;Persist Security Info=False"
cn.Open
rs.CursorLocation = adUseClient
rs.Open sql, cn, adOpenDynamic, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
Set DataGrid1.DataSource = rs
End Sub
#17
高工不愧是*锻炼出来的人,扣帽子一手熟,我的哪句话是捣乱的?
你说你这么一大把年纪了
错了就错了,还死要面子
技术的东西可不能误人子弟
科学技术来不得半点虚荣与骄傲
你说你这么一大把年纪了
错了就错了,还死要面子
技术的东西可不能误人子弟
科学技术来不得半点虚荣与骄傲
#18
你也拿出点儿代码来,不然,空口说白话,已经自输三分了,我看你没有说下去的必要了
#19
看来你也是不会
够可怜的
够可怜的
#20
Datagrid1.Columns(0).Width=1695.118
就相当于#2楼的手工设置
就相当于#2楼的手工设置
#21
#22
1.建议通过代码绑定到ADO对象上,而不是什么控件
2.数值可以不是整数
2.数值可以不是整数
#23
代码绑定到ADO对象上,那么DataGrid 控件的列数如何增加?或者说如何超过2列?
#24
没玩过吧?
我再说一遍:手工设置可以通过代码来实现.
你手工设置的能实现,代码设置的就能实现
你手工设置的检索带几列,代码设置就能检索带几列.
这么说该明白了吧?
我再说一遍:手工设置可以通过代码来实现.
你手工设置的能实现,代码设置的就能实现
你手工设置的检索带几列,代码设置就能检索带几列.
这么说该明白了吧?
#25
检索带=检索到
写错一字
写错一字
#26
没见你拿出代码来呀!
#27
你用Ado Data 控件自己开发自己用,那是发现不了问题的
别人都是开发了卖
这就牵扯到安装到客户机器上,ADO的设置数据库路径是死的
另一个问题就是出现一个新客户的时候
使用控件需要重新来设置
用代码就可以直接修改使用,复制也方便,阅读也清晰
别人都是开发了卖
这就牵扯到安装到客户机器上,ADO的设置数据库路径是死的
另一个问题就是出现一个新客户的时候
使用控件需要重新来设置
用代码就可以直接修改使用,复制也方便,阅读也清晰
#28
http://topic.csdn.net/u/20091018/18/53cf65d3-17de-40f3-9b08-c95d148280d6.html?91740
上面有ADO的代码,你自己不看
你让我拿什么拿
上面有ADO的代码,你自己不看
你让我拿什么拿
#29
给你点代码看看吧,我用记事本打开复制的
这里没装VB
Dim cn As New ADODB.Connection
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=123"
Dim rst As New ADODB.Recordset
Dim SqlStr As String
SqlStr = "Select * FROM 坯子类型清单"
rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText
Combo1.Clear
Do While rst.EOF = False
Combo1.AddItem rst.Fields("坯子类型").Value
rst.MoveNext
Loop
Set DataGrid1.DataSource = rst
DataGrid1.Caption = "坯子类型情况"
这里没装VB
Dim cn As New ADODB.Connection
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=123"
Dim rst As New ADODB.Recordset
Dim SqlStr As String
SqlStr = "Select * FROM 坯子类型清单"
rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText
Combo1.Clear
Do While rst.EOF = False
Combo1.AddItem rst.Fields("坯子类型").Value
rst.MoveNext
Loop
Set DataGrid1.DataSource = rst
DataGrid1.Caption = "坯子类型情况"
#30
LS:受较了!
咋也没看到DataGrid1控件的列设置,只看到用代码设置了DataGrid1.Caption = "坯子类型情况"
DataGrid1控件绑定到rst记录集,能显示的是该记录集的所有字段.但此时如果添加句
Datagrid1.Columns(2).Width=1695.118
在
Set DataGrid1.DataSource = rst
DataGrid1.Caption = "坯子类型情况"
VB必然报错(下标越界)
如此写
不报错.
咋也没看到DataGrid1控件的列设置,只看到用代码设置了DataGrid1.Caption = "坯子类型情况"
DataGrid1控件绑定到rst记录集,能显示的是该记录集的所有字段.但此时如果添加句
Datagrid1.Columns(2).Width=1695.118
在
Set DataGrid1.DataSource = rst
DataGrid1.Caption = "坯子类型情况"
VB必然报错(下标越界)
如此写
Private Sub Form_Load()
Dim cn As New ADODB.Connection '定义数据库的连接
sql = "select * from biao1"
Dim rs As New ADODB.Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ts.mdb;Persist Security Info=False"
cn.Open
rs.CursorLocation = adUseClient
rs.Open sql, cn, adOpenDynamic, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
Set DataGrid1.DataSource = rs
DataGrid1.Columns(2).Width = 1695
End Sub
不报错.
#31
下标越界是因为你只有两列的时候去设置第三列
你用控件连起来也是这个错误
你可以去设置显示出来的列的宽度
你用控件连起来也是这个错误
你可以去设置显示出来的列的宽度
#32
你用控件连接也是先绑定后设置已有列的宽度
真是嘴硬,自己有1万多可用分在这里却利用别人的帖子问问题
怪不得最近老有人用ADODC控件,原来都是你教出来的,你该谢罪
真是嘴硬,自己有1万多可用分在这里却利用别人的帖子问问题
怪不得最近老有人用ADODC控件,原来都是你教出来的,你该谢罪
#33
真是莫名其妙,讨论问题成了谢罪对象.罢!罢!
#34
你想一走了之
到VBGOOD去忽悠你的ADODC控件吧
你的高级工程师不是计算机类的,别到处吓唬人
你做的程序跟别人做的程序不一样
别人是靠它混饭吃,卖给客户
你做了是为了捞取国家的课题经费
为了你的职称和论文
到VBGOOD去忽悠你的ADODC控件吧
你的高级工程师不是计算机类的,别到处吓唬人
你做的程序跟别人做的程序不一样
别人是靠它混饭吃,卖给客户
你做了是为了捞取国家的课题经费
为了你的职称和论文
#35
博士,请不要胡说八道,我做的VB程序是我供职的公司自己用的.是没有报酬的.也从无有课题经费来自国家.
#36
我说过了,ADODC控件开发的东西自己用没问题
但这里大多数人开发的东西是要卖的
并且要多次修改为了下一部开发
另外,IT人员流动也很大
不说了,同你这种吝啬的家伙说了也不给分
但这里大多数人开发的东西是要卖的
并且要多次修改为了下一部开发
另外,IT人员流动也很大
不说了,同你这种吝啬的家伙说了也不给分
#37
对你真是无语!
#38
怎么又成了吵架帖,哎
lz的分太少,要是多的话,我给你写个例子,根据内容自动调整datagrid的列宽
思路:
其实可以实现自动调整的,因一个汉字的长度大小约120twip,循环判断datagrid或adodc的各字段的最大字符数 M(i),M是数组
DataGrid1.Columns(i).Width= M(i)*120
如还有问题,这里来找我
http://topic.csdn.net/u/20090917/13/2dccaaaa-6cfb-4a73-81a1-071ba4c53b3e.html?63719
lz的分太少,要是多的话,我给你写个例子,根据内容自动调整datagrid的列宽
思路:
其实可以实现自动调整的,因一个汉字的长度大小约120twip,循环判断datagrid或adodc的各字段的最大字符数 M(i),M是数组
DataGrid1.Columns(i).Width= M(i)*120
如还有问题,这里来找我
http://topic.csdn.net/u/20090917/13/2dccaaaa-6cfb-4a73-81a1-071ba4c53b3e.html?63719
#1
请LZ
参阅
#2
#3
这个图里所有属性都可以通过代码设置,朱总这个不能不知道吧?
#4
请给出设置的代码,供大家学习!
谢谢!
#5
我这里没装VB,但是我以前那么设置过
另外,所有ACTIVEX属性页中的设置都可以用代码实现
这一点无可争议
具体怎么设置可以参看MSDN
另外,所有ACTIVEX属性页中的设置都可以用代码实现
这一点无可争议
具体怎么设置可以参看MSDN
#6
LS:不要一句话没有VB,就可打发.
DATAGRID控件不能实现,它无Rows和Cols属性.
MSFLEXGRID控件可以实现.
附图说明:
DATAGRID控件不能实现,它无Rows和Cols属性.
MSFLEXGRID控件可以实现.
附图说明:
#7
机器没有VB,那你就装个VB,也好给出更佳的答复.
#8
#9
注意1楼可是获得了60分的满分,这个帖子是
2002-02-01 23:16:11 在 VB / 基础类 提问的
2002-02-01 23:16:11 在 VB / 基础类 提问的
#10
问题在于DATAGRID控件缺省是2列,你如何用代码扩展.
#11
代码设置列宽需要已将DataGrid控件绑定到数据控件,数据控件和相关数据表连接的基础上实施.即实施了检索字段这步.
#12
你怎么用手工扩展就怎么用代码扩展
#13
手工扩展不需要检索字段?
#14
按MSDN:
要在设计时实现一个 DataGrid 控件
为您希望访问的数据库创建一个 Microsoft 数据链接 (.UDL) 文件。请参阅“创建 Northwind OLE DB 数据链接”主题,以获得一个示例。
在窗体上放置一个 ADO Data 控件,并将其 ConnectionString 属性设置为在第 1 步中所创建的OLE DB 数据源。
在这个 Ado Data 控件的 RecordSource 属性中输入一条将返回一个记录集的 SQL 语句。例如,
Select * From MyTableName Where CustID = 12
在窗体上放置一个 DataGrid 控件,并将其 DataSource 属性设置为这个 ADO Data 控件。
右键单击该 DataGrid 控件,然后单击“检索字段”。
右键单击该 DataGrid 控件,然后单击“编辑”。
重新设置该网格的大小、删除、或添加网格的列。
右键单击该 DataGrid 控件,然后单击“属性”。
使用“属性页”对话框来设置该控件的适当的属性,将该网格配置为所需的外观和行为。
可以手工扩展DataGrid 控件列,但必须同时各列绑定字段,其扩展的列才能存在.
否则运行后, DataGrid 控件仍是缺省的2列.
或者采用搜索字段来绑定DataGrid 控件的各列与ADO数据控件连接的数据源所连接表的各字段.
#15
Ado Data 控件 很少有人使用了,你抱出个98年的MSDN当圣经啊
即使使用Ado Data 控件
Ado Data 控件的所有属性页中的属性设置,也都可以通过代码来实现
手工设置过几年就忘却了,可读性不强
代码设置可以加注释,修改方便,复制也方便,清晰
Ado Data 控件糊弄一下初学者还可以
教你不少了,想知道更多就开帖子给分吧
即使使用Ado Data 控件
Ado Data 控件的所有属性页中的属性设置,也都可以通过代码来实现
手工设置过几年就忘却了,可读性不强
代码设置可以加注释,修改方便,复制也方便,清晰
Ado Data 控件糊弄一下初学者还可以
教你不少了,想知道更多就开帖子给分吧
#16
博士!失敬!失敬!
请不要在技术贴的讨论中捣乱.
Private Sub Form_Load()
Dim cn As New ADODB.Connection '定义数据库的连接
sql = "select * from biao1"
Dim rs As New ADODB.Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ts.mdb;Persist Security Info=False"
cn.Open
rs.CursorLocation = adUseClient
rs.Open sql, cn, adOpenDynamic, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
Set DataGrid1.DataSource = rs
End Sub
#17
高工不愧是*锻炼出来的人,扣帽子一手熟,我的哪句话是捣乱的?
你说你这么一大把年纪了
错了就错了,还死要面子
技术的东西可不能误人子弟
科学技术来不得半点虚荣与骄傲
你说你这么一大把年纪了
错了就错了,还死要面子
技术的东西可不能误人子弟
科学技术来不得半点虚荣与骄傲
#18
你也拿出点儿代码来,不然,空口说白话,已经自输三分了,我看你没有说下去的必要了
#19
看来你也是不会
够可怜的
够可怜的
#20
Datagrid1.Columns(0).Width=1695.118
就相当于#2楼的手工设置
就相当于#2楼的手工设置
#21
#22
1.建议通过代码绑定到ADO对象上,而不是什么控件
2.数值可以不是整数
2.数值可以不是整数
#23
代码绑定到ADO对象上,那么DataGrid 控件的列数如何增加?或者说如何超过2列?
#24
没玩过吧?
我再说一遍:手工设置可以通过代码来实现.
你手工设置的能实现,代码设置的就能实现
你手工设置的检索带几列,代码设置就能检索带几列.
这么说该明白了吧?
我再说一遍:手工设置可以通过代码来实现.
你手工设置的能实现,代码设置的就能实现
你手工设置的检索带几列,代码设置就能检索带几列.
这么说该明白了吧?
#25
检索带=检索到
写错一字
写错一字
#26
没见你拿出代码来呀!
#27
你用Ado Data 控件自己开发自己用,那是发现不了问题的
别人都是开发了卖
这就牵扯到安装到客户机器上,ADO的设置数据库路径是死的
另一个问题就是出现一个新客户的时候
使用控件需要重新来设置
用代码就可以直接修改使用,复制也方便,阅读也清晰
别人都是开发了卖
这就牵扯到安装到客户机器上,ADO的设置数据库路径是死的
另一个问题就是出现一个新客户的时候
使用控件需要重新来设置
用代码就可以直接修改使用,复制也方便,阅读也清晰
#28
http://topic.csdn.net/u/20091018/18/53cf65d3-17de-40f3-9b08-c95d148280d6.html?91740
上面有ADO的代码,你自己不看
你让我拿什么拿
上面有ADO的代码,你自己不看
你让我拿什么拿
#29
给你点代码看看吧,我用记事本打开复制的
这里没装VB
Dim cn As New ADODB.Connection
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=123"
Dim rst As New ADODB.Recordset
Dim SqlStr As String
SqlStr = "Select * FROM 坯子类型清单"
rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText
Combo1.Clear
Do While rst.EOF = False
Combo1.AddItem rst.Fields("坯子类型").Value
rst.MoveNext
Loop
Set DataGrid1.DataSource = rst
DataGrid1.Caption = "坯子类型情况"
这里没装VB
Dim cn As New ADODB.Connection
cn.CursorLocation = adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=123"
Dim rst As New ADODB.Recordset
Dim SqlStr As String
SqlStr = "Select * FROM 坯子类型清单"
rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText
Combo1.Clear
Do While rst.EOF = False
Combo1.AddItem rst.Fields("坯子类型").Value
rst.MoveNext
Loop
Set DataGrid1.DataSource = rst
DataGrid1.Caption = "坯子类型情况"
#30
LS:受较了!
咋也没看到DataGrid1控件的列设置,只看到用代码设置了DataGrid1.Caption = "坯子类型情况"
DataGrid1控件绑定到rst记录集,能显示的是该记录集的所有字段.但此时如果添加句
Datagrid1.Columns(2).Width=1695.118
在
Set DataGrid1.DataSource = rst
DataGrid1.Caption = "坯子类型情况"
VB必然报错(下标越界)
如此写
不报错.
咋也没看到DataGrid1控件的列设置,只看到用代码设置了DataGrid1.Caption = "坯子类型情况"
DataGrid1控件绑定到rst记录集,能显示的是该记录集的所有字段.但此时如果添加句
Datagrid1.Columns(2).Width=1695.118
在
Set DataGrid1.DataSource = rst
DataGrid1.Caption = "坯子类型情况"
VB必然报错(下标越界)
如此写
Private Sub Form_Load()
Dim cn As New ADODB.Connection '定义数据库的连接
sql = "select * from biao1"
Dim rs As New ADODB.Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ts.mdb;Persist Security Info=False"
cn.Open
rs.CursorLocation = adUseClient
rs.Open sql, cn, adOpenDynamic, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
Set DataGrid1.DataSource = rs
DataGrid1.Columns(2).Width = 1695
End Sub
不报错.
#31
下标越界是因为你只有两列的时候去设置第三列
你用控件连起来也是这个错误
你可以去设置显示出来的列的宽度
你用控件连起来也是这个错误
你可以去设置显示出来的列的宽度
#32
你用控件连接也是先绑定后设置已有列的宽度
真是嘴硬,自己有1万多可用分在这里却利用别人的帖子问问题
怪不得最近老有人用ADODC控件,原来都是你教出来的,你该谢罪
真是嘴硬,自己有1万多可用分在这里却利用别人的帖子问问题
怪不得最近老有人用ADODC控件,原来都是你教出来的,你该谢罪
#33
真是莫名其妙,讨论问题成了谢罪对象.罢!罢!
#34
你想一走了之
到VBGOOD去忽悠你的ADODC控件吧
你的高级工程师不是计算机类的,别到处吓唬人
你做的程序跟别人做的程序不一样
别人是靠它混饭吃,卖给客户
你做了是为了捞取国家的课题经费
为了你的职称和论文
到VBGOOD去忽悠你的ADODC控件吧
你的高级工程师不是计算机类的,别到处吓唬人
你做的程序跟别人做的程序不一样
别人是靠它混饭吃,卖给客户
你做了是为了捞取国家的课题经费
为了你的职称和论文
#35
博士,请不要胡说八道,我做的VB程序是我供职的公司自己用的.是没有报酬的.也从无有课题经费来自国家.
#36
我说过了,ADODC控件开发的东西自己用没问题
但这里大多数人开发的东西是要卖的
并且要多次修改为了下一部开发
另外,IT人员流动也很大
不说了,同你这种吝啬的家伙说了也不给分
但这里大多数人开发的东西是要卖的
并且要多次修改为了下一部开发
另外,IT人员流动也很大
不说了,同你这种吝啬的家伙说了也不给分
#37
对你真是无语!
#38
怎么又成了吵架帖,哎
lz的分太少,要是多的话,我给你写个例子,根据内容自动调整datagrid的列宽
思路:
其实可以实现自动调整的,因一个汉字的长度大小约120twip,循环判断datagrid或adodc的各字段的最大字符数 M(i),M是数组
DataGrid1.Columns(i).Width= M(i)*120
如还有问题,这里来找我
http://topic.csdn.net/u/20090917/13/2dccaaaa-6cfb-4a73-81a1-071ba4c53b3e.html?63719
lz的分太少,要是多的话,我给你写个例子,根据内容自动调整datagrid的列宽
思路:
其实可以实现自动调整的,因一个汉字的长度大小约120twip,循环判断datagrid或adodc的各字段的最大字符数 M(i),M是数组
DataGrid1.Columns(i).Width= M(i)*120
如还有问题,这里来找我
http://topic.csdn.net/u/20090917/13/2dccaaaa-6cfb-4a73-81a1-071ba4c53b3e.html?63719