以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]遍历如何做? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50520) |
-- 作者:lesliecheung912 -- 发布时间:2014/5/8 10:33:00 -- [求助]遍历如何做? [此贴子已经被作者于2014-5-28 18:00:02编辑过]
|
-- 作者:lesliecheung912 -- 发布时间:2014/5/8 10:34:00 -- [此贴子已经被作者于2014-5-28 18:00:13编辑过]
|
-- 作者:Bin -- 发布时间:2014/5/8 10:38:00 -- for each r as row in Tables("档案管理总表.档案管理明细").rows r.Locked = True next DataTables("档案管理明细").Save() |
-- 作者:有点甜 -- 发布时间:2014/5/8 10:39:00 -- 改一下
With Tables("档案管理总表") .Rows(i).Save [此贴子已经被作者于2014-5-8 10:57:48编辑过]
|
-- 作者:lesliecheung912 -- 发布时间:2014/5/8 10:52:00 -- 谢谢甜姐,有时候这些问题你做出来看着就很简单,但是我自己想的时候就是想不到,底子太差了 |
-- 作者:lesliecheung912 -- 发布时间:2014/5/8 11:05:00 -- 还有一个问题甜姐: 这样保存档案以后,按钮上一条的代码是:
Dim hasSave As Boolean = True For Each r As Row In Tables("档案管理总表.档案管理明细").Rows If r.DataRow.RowState <> DataRowState.Unchanged Then hasSave = False End If Next If hasSave Then With Tables("档案管理总表") If .Current IsNot Nothing AndAlso .Current.DataRow.RowState = DataRowState.Unchanged Then \'如果当前行未曾修改 .Position = .Position - 1 End If End With \'上一条 End If 这样的话只能在点击保存按钮两次以后才能操作上一条,我用messagebox.show试了一下,第一次保存后点按钮上一条hasSave为False,第二次保存后点按钮上一条hasSave就变成了True,这是怎么回事呢? |
-- 作者:有点甜 -- 发布时间:2014/5/8 11:06:00 -- 呵呵,写错了,你把4楼的代码再复制一次。
For i As Integer = 0 To .Rows.count - 1 .Rows(i).Save [此贴子已经被作者于2014-5-8 11:06:53编辑过]
|
-- 作者:Bin -- 发布时间:2014/5/8 11:07:00 -- 第一次保存,有未保存的行,所以进入这个代码段 If r.DataRow.RowState <> DataRowState.Unchanged Then hasSave = False End If 保存过之后,就没有未保存的行,没有进入上面的代码段,自然就没有为它赋值为Flase.
|
-- 作者:lesliecheung912 -- 发布时间:2014/5/8 11:10:00 -- 果然如此,看来代码的顺序还是至关重要的,多谢甜姐! |