線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1336
推到 Plurk!
推到 Facebook!

from間呼叫的問題

缺席
jch
中階會員


發表:111
回覆:224
積分:66
註冊:2003-12-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-04 14:58:56 IP:163.17.xxx.xxx 未訂閱
請教一下各位前輩,現小弟有兩個from(frmA, frmB),今frmA開啟frmB 如下 newFrom := TfrmB.Create(nil); with newFrom do begin ...... ShowModal; end; 當frmB關閉前要將結果寫回frmA,第一行出現錯誤... if not(frmA.q1.State in [dsEdit, dsInsert]) then frmA.q1.Edit; frmA.q1.FieldByName('my_amt').AsFloat := Mathq1; frmA.q1.Post; 不知程式該如何改寫呢?? (應該是找不到frmA這個物件造成) ======================== 使用DELPHI7 MS SQL2000
meta
中階會員


發表:3
回覆:60
積分:57
註冊:2004-06-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-04 17:40:03 IP:202.39.xxx.xxx 未訂閱
小弟照您說的方法實做了一下(D5 Access)..沒有錯誤發生.. //還是您出現的錯誤是..? 以下請參考一下吧.. 1.在frmA.. .. implementation uses Unit2;//add frmB.free;//可在formA close時.. 2.在frmB .. .. uses DB;//add for [dsEdit..] implementation uses unit1;//add
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-04 17:41:46 IP:202.62.xxx.xxx 未訂閱
您好﹗    請問錯誤信息是什么﹖    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
T.J.K
中階會員


發表:3
回覆:35
積分:57
註冊:2005-06-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-04 17:48:16 IP:211.78.xxx.xxx 未訂閱
jch 你好: 你可否把你的錯誤訊息貼出來給大家看看,好協助你 再來就是if not(frmA.q1.State in [dsEdit, dsInsert]) then frmA.q1.Edit; 你再判斷看看State 是否在dsEdit or dsInsert, 也許是q1.Edit 沒執行到導致 q1.Post 出現的錯
jch
中階會員


發表:111
回覆:224
積分:66
註冊:2003-12-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-04 17:48:24 IP:163.17.xxx.xxx 未訂閱
多謝幫忙喔! ======================== 使用DELPHI7+MS SQL2000
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-04 17:56:42 IP:202.62.xxx.xxx 未訂閱
您好﹗    if not(frmA.q1.State in [dsEdit, dsInsert]) then frmA.q1.Edit; frmA.q1.FieldByName('my_amt').AsFloat := Mathq1; frmA.q1.Post; 檢查一下以上程式碼中﹐frmA.ql是否已經Open﹐如果沒有Open﹐會出錯﹒ 再檢查一下Mathql是否已有賦值﹐根据資料欄位的形態要求﹐有時如果沒有賦值(即Null值)時﹐也有可能出錯﹒    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
jch
中階會員


發表:111
回覆:224
積分:66
註冊:2003-12-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-04 20:55:35 IP:220.134.xxx.xxx 未訂閱
感謝各位大哥的幫忙,小弟開啟frmA的方法跟frmB的方法一樣, newFrom := TfrmA.Create(nil); with newFrom do begin ...... Show; end; 所以我認為是否是程式中 if not(frmA.q1.State in [dsEdit, dsInsert]) then frmA.q1.Edit; frmA.q1.FieldByName('my_amt').AsFloat := Mathq1; frmA.q1.Post; 找不到frmA這個物件呢? ======================== 使用DELPHI7 MS SQL2000
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-08-04 23:51:06 IP:61.64.xxx.xxx 未訂閱
改成
if not (State in [dsEdit, dsInsert]) then
 begin      frmA.q1.Open;
  frmA.q1.Edit;     end;    frmA.q1.FieldByName('my_amt').AsFloat := Mathq1;
frmA.q1.Post;
jch
中階會員


發表:111
回覆:224
積分:66
註冊:2003-12-01

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-08-05 09:21:52 IP:163.17.xxx.xxx 未訂閱
感謝各位大哥的幫忙,小弟將frmA的開啟方式改為以下的方式,問題就解決了,謝謝大家! Application.CreateForm(TfrmA, frmA); with frmA do begin Caption := '2E1.' '銷貨資料維護'; Show; MyCreate; end; ======================== 使用DELPHI7 MS SQL2000
系統時間:2024-04-25 17:43:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!