我的一段代馬,添加時把rowdata設置為1,保存后复員 If Rs1.State = 1 Then Rs1.Close Rs1.Open "select top 1 CompanyName,Customer_NO ,ContactName,ContactSex ,ContactTitle,Phone1,Phone2,Fax,E_Mail, Other,Address,PostalCode,City,Country,Re from tbl_customers", CN1, adOpenStatic, adLockOptimistic For X = 1 To mg1.Rows - 1 if mg1.RowData(x) = 1 then Rs1.AddNew For Y = 0 To mg1.cols - 1 Rs1.Fields(Y).Value = mg1.TextMatrix(X, Y) Next Rs1.Update mg1.RowData(X) = 0 end if
Next
如果是修改的話在設置一個變量比如用 2 ,确認后在打開紀錄集和if if mg1.RowData(x) > 0 then if mg1.RowData(x)=1 then Rs1.AddNew '判斷是增加還是修改 For Y = 0 To mg1.cols - 1 Rs1.Fields(Y).Value = mg1.TextMatrix(X, Y) Next Rs1.Update mg1.RowData(X) = 0 end if
看你應該是會寫代碼,給你個思路(如果還不會就只能怪你基礎差了). 如果你數據庫為SQL,且想保證數據完整性,在代碼開頭加上BEGIN TRANS,結尾加上COMMIT TRANS用到MSFlexGrid,我想你應該是主檔明細表關系吧: 主檔即是更新 明細表(即MSFlexGrid中的數據),先刪除(Delete * From 表 Where *) 再逐行增加(Insert *,不要逐個字段是賦值,一是代碼太長,二是執行速度相對慢些),最好用SQL語句直接操作 去跟蹤是否更新或又增加了新行或刪除了某行太麻煩了.
按照樓上的方法在SQL數据同步時間會遇上更新行太多麻煩,我以前也是那樣做的,後來還是不得不麻煩一點
eRUGUO如果妳做過sql的數据同步的話妳就會明白我的痛苦了.........
to Frank_Xu:你的思路我曾经考虑过,但这样做是否是最好的方法呢?
to hnlzh:你提供的代码是否真的可以处理SQL的数据同步?请指教应该还要注意什么问题,多谢!
to hnlzh:我想知道在MSFlexGrid中如何使某列的标题居中,而其他内容按默认的方式排列?
.RowData(r)=gRs("id")
加入循环中。
If Rs1.State = 1 Then Rs1.Close
Rs1.Open "select top 1 CompanyName,Customer_NO ,ContactName,ContactSex ,ContactTitle,Phone1,Phone2,Fax,E_Mail, Other,Address,PostalCode,City,Country,Re from tbl_customers", CN1, adOpenStatic, adLockOptimistic
For X = 1 To mg1.Rows - 1
if mg1.RowData(x) = 1 then
Rs1.AddNew
For Y = 0 To mg1.cols - 1
Rs1.Fields(Y).Value = mg1.TextMatrix(X, Y)
Next
Rs1.Update
mg1.RowData(X) = 0
end if
Next
if mg1.RowData(x)=1 then Rs1.AddNew '判斷是增加還是修改
For Y = 0 To mg1.cols - 1
Rs1.Fields(Y).Value = mg1.TextMatrix(X, Y)
Next
Rs1.Update
mg1.RowData(X) = 0
end if
如果你數據庫為SQL,且想保證數據完整性,在代碼開頭加上BEGIN TRANS,結尾加上COMMIT TRANS用到MSFlexGrid,我想你應該是主檔明細表關系吧:
主檔即是更新
明細表(即MSFlexGrid中的數據),先刪除(Delete * From 表 Where *) 再逐行增加(Insert *,不要逐個字段是賦值,一是代碼太長,二是執行速度相對慢些),最好用SQL語句直接操作
去跟蹤是否更新或又增加了新行或刪除了某行太麻煩了.
Mg1.FixedAlignment(COL) = 4