ado 与msflexgrid问题.

xinzhanwei 2002-02-22 06:40:52
学vb开发数据库,听说现在ado and msflexgrid用的人最多,我在一个窗体中装入一个ado和一个msflexgrid,ado连到一个access的数据库中的一个表,然后把msflexgrid的datasource确定为adodc1,但是不行系统提示没有固定的数据源控件这是为什么不可能ado与msflexgrid不能绑定吧换一个dbflexgrid与这个同样的ado连接这个数据绑定控件可以显示数据,请问如何让msflexgrid and ado进行绑定是不是需要一些别的属性设定.
...全文
51 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lanman 2002-02-25
用command如何实现,有没有例子,说一下吧。我一直都是用recordset
回复
大帮手软件 2002-02-25
这是用recordset实现的,现在该部分已改为使用贮存过程(command)完成,因为那样更容易更改显示数据。
回复
大帮手软件 2002-02-25
同是自学人,才觉自学难。以下代码示范程序中数据库应用。
ado与mshflexgrid应用:

Dim RsBOMChild As New ADODB.Recordset
Private Sub Form_Load()
 RsBOM.CursorType = adOpenForwardOnly
RsBOM.LockType = adLockReadOnly
RsBOM.CursorLocation = adUseClient
Fmodiflag = PmodiFlag
IniInoutModel Pmodel
If Fmodiflag = True Then
Ffinterid = Pfinterid
IniModiBOM '修改单据时赋值
Else
IniAddBOM '新增单据
End If
End Sub

Private Sub IniModiBOM() '浏览\修改单据
Dim SqlStr As String
Me.Caption = "编辑" + L方式.Caption + "单"
Fmodiflag = True
SqlStr = "select 单号,原单号,FINTERID,供应商ID,送货单号,仓库,结账,过账,审核,发货,领料,"
SqlStr = SqlStr + "制单 from icstockbill WHERE finterid=" & Ffinterid
If RsBOM.State = adStateOpen Then RsBOM.Close
RsBOM.Open SqlStr, Conn
If RsBOM.RecordCount < 1 Then
MsgBox "没选择单据或该单据已被删除,请刷新数据后再试!"
IniAddBOM
Exit Sub
ElseIf RsBOM.RecordCount > 1 Then
MsgBox "非常抱歉,本程序出现设计上的缺陷,请联系系统管理员!", vbInformation, Ds
IniAddBOM
Exit Sub
End If
L结账.Visible = RsBOM!结账
SqlStr = "SELECT s.物料id,s.顺序,s.订单号,物料代码 = m.fnumber, 物料名称 = m.fname, 物料型号 = m.fmodel, 单位 = CASE s.单位标志 when 1 then m.funit when 0 then m.fassunit end ,货位=m.fplace, "
If L正负.Tag = "" Then
SqlStr = SqlStr + "s.申请数 , 实发数 = s.数量,基本申请数=s.基本申请数,基本实际数=s.基本数量,"
Else
SqlStr = SqlStr + "-s.申请数 , 实发数 = -s.数量,基本申请数=-s.基本申请数,基本实际数=-s.基本数量,"
End If
SqlStr = SqlStr + "s.备注,单位标志,单位转换率=m.funitrate FROM IcStock S, icmaterial M Where m.fitemid = s.物料id"
SqlStr = SqlStr + " and 单据id=" & Ffinterid + " order by s.顺序 asc"

If RsBOMChild.State = adStateOpen Then RsBOMChild.Close
RsBOMChild.Open SqlStr, Conn
If RsBOMChild.RecordCount = 0 Then
InsertBlank
Else
Set MsBOMChild.DataSource = RsBOMChild
End If
IniDataControl
'*********************填充BOM数据至文本框中*****************
T单号 = RsBOM!单号 + ""
T原单号 = RsBOM!原单号 + ""
LFinterid.Caption = CStr(RsBOM!Finterid) + ""
T送货单号 = RsBOM!送货单号 + ""
End Sub
回复
xinzhanwei 2002-02-24
我很想动态加载?但我不会,能不能举个实例:用ado如何加载,如何绑定。我太想提高但每前进一步都感到困难我学vb二个月,现已看到数据库开发网络高程api,但我感到在这儿时,每前进一步就感到比较困难不像从前那么轻松。
回复
feiying_bao 2002-02-23
也可以绑定控件,
将msflexgrid的datasource确定为adodc1
然后动态为dao加载数据库和表
回复
dxj221 2002-02-22
同意楼上的,
一个优秀的数据库软件是不用绑定的。

回复
Bardo 2002-02-22
一个优秀的数据库软件是不用绑定的。
所以建议你不动态加载而不用绑定。
错误原因如上所述。
回复
pengnick 2002-02-22
MSFlexGrid不能绑定数据源。用MSHFlexGrid吗。
回复
Fanks 2002-02-22
msflexgrid需要DAO控件
回复
相关推荐
发帖
非技术类
创建于2007-09-28

723

社区成员

VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
申请成为版主
帖子事件
创建了帖子
2002-02-22 06:40
社区公告
暂无公告