在兩個Form的窗體中調用數據出現異常 |
答題得分者是:pedro
|
books
一般會員 ![]() ![]() 發表:9 回覆:27 積分:7 註冊:2006-10-27 發送簡訊給我 |
unit erp_search; //查詢窗體
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls; type Tsearch = class(TForm) BtOK: TButton; Label2: TLabel; DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; Label3: TLabel; Label4: TLabel; sc_prno: TComboBox; BTall: TButton; BTsearch: TButton; Label6: TLabel; DateTimePicker3: TDateTimePicker; DateTimePicker4: TDateTimePicker; Label7: TLabel; Label9: TLabel; Label10: TLabel; DateTimePicker5: TDateTimePicker; DateTimePicker6: TDateTimePicker; BT_GD: TButton; sc_list: TComboBox; BT_TJ: TButton; Label11: TLabel; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; TabSheet4: TTabSheet; Button1: TButton; procedure BtOKClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BTallClick(Sender: TObject); procedure BTsearchClick(Sender: TObject); procedure BT_GDClick(Sender: TObject); procedure BT_TJClick(Sender: TObject); procedure Button1Click(Sender: TObject); private // function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString; { Private declarations } public { Public declarations } end; var search: Tsearch; implementation uses procrate_list; //調用list {$R *.dfm} //function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString; //begin // Result:=Copy(AText,1,ACount); //end; procedure Tsearch.BtOKClick(Sender: TObject); var mydate1,mydate2:tdatetime; str:string; begin list.ADOQuery1.close; list.ADOQuery1.sql.clear; list.ADOQuery1.sql.add('select iesc00h.sc_prdat as 投產日期, iesc00h.sc_odno as 工令單號,'); list.ADOQuery1.sql.add('iesc00h.el_no as 料號,iesc00h.ie_sure as 工單確認,iesc00h.ie_ymd as 工令單建立日期,iesc00h.sc_prno as 生產線,'); list.ADOQuery1.sql.add('iesc29d1.sc_list as 工單涷結註記,iesc21h.sc_rcno as 途程單,iesc24d1.sc_list as 制造通知單號, '); list.ADOQuery1.sql.add('iemt14d1.mt_list as 領料申請單號, iemt14d1.mt_mlist as 生產領料單號, '); list.ADOQuery1.sql.add('iesc00h.sc_dlqty1 as 完成數量 from iemis.iesc00h '); list.ADOQuery1.sql.add('left outer join iemis.iesc21h on ( iemis.iesc00h.sc_odno = iemis.iesc21h.sc_odno) '); list.ADOQuery1.sql.add('left outer join iemis.iesc24d1 on ( iemis.iesc00h.sc_odno = iemis.iesc24d1.sc_odno) '); list.ADOQuery1.sql.add('left outer join iemis.iemt14d1 on ( iemis.iesc00h.sc_odno = iemis.iemt14d1.sc_odno) '); list.ADOQuery1.sql.add('left outer join iemis.iesc29d1 on ( iemis.iesc00h.sc_odno = iemis.iesc29d1.sc_odno) '); list.ADOQuery1.sql.add('where iesc00h.sc_prdat>=:AA and iesc00h.sc_prdat<=:BB '); list.ADOQuery1.sql.add('and iesc00h.sc_prno like :CC ' ); list.ADOQuery1.sql.add(' order by iesc00h.sc_prdat'); mydate1:= DateTimePicker1.date; list.ADOQuery1.parameters.ParamByName('AA').value:=formatdatetime('yyyy/mm/dd',mydate1); mydate2:= DateTimePicker2.date; list.ADOQuery1.parameters.ParamByName('BB').value:=formatdatetime('yyyy/mm/dd',mydate2); str:=copy(sc_prno.text,1,4); list.ADOQuery1.parameters.ParamByName('CC').value:=trim(str); list.ADOQuery1.Active:=True; list.ADOQuery1.open; list.Label1.Caption:='投產明細查詢條件:'; List.show; close; end; procedure Tsearch.FormCreate(Sender: TObject); var iYear,iMonth,iDay:Word; begin DecodeDate(Now,iYear,iMonth,iDay); DateTimePicker1.Date:=EncodeDate(iYear,iMonth,iDay); DateTimePicker2.Date:=EncodeDate(iYear,iMonth,iDay); DateTimePicker3.Date:=EncodeDate(iYear,iMonth,iDay); DateTimePicker4.Date:=EncodeDate(iYear,iMonth,iDay); DateTimePicker5.Date:=EncodeDate(iYear,iMonth,iDay); DateTimePicker6.Date:=EncodeDate(iYear,iMonth,iDay); end; procedure Tsearch.BTallClick(Sender: TObject); var mydate1,mydate2:tdatetime; begin list.ADOQuery1.close; list.ADOQuery1.sql.clear; list.ADOQuery1.sql.add('select iesc00h.sc_prdat as 投產日期, iesc00h.sc_odno as 工令單號,'); list.ADOQuery1.sql.add('iesc00h.el_no as 料號,iesc00h.ie_sure as 工單確認,iesc00h.ie_ymd as 工令單建立日期,iesc00h.sc_prno as 生產線,iesc29d1.sc_list as 工單涷結註記,'); list.ADOQuery1.sql.add('sc_qty as 排產數量,iesc00h.sc_dlqty1 as 完成數量 from iemis.iesc00h '); list.ADOQuery1.sql.add('left outer join iemis.iesc29d1 on ( iemis.iesc00h.sc_odno = iemis.iesc29d1.sc_odno) '); list.ADOQuery1.sql.add('where iesc00h.sc_prdat>=:AA and iesc00h.sc_prdat<=:BB '); list.ADOQuery1.sql.add(' order by sc_prdat'); mydate1:= DateTimePicker1.date; list.ADOQuery1.parameters.ParamByName('AA').value:=formatdatetime('yyyy/mm/dd',mydate1); mydate2:= DateTimePicker2.date; list.ADOQuery1.parameters.ParamByName('BB').value:=formatdatetime('yyyy/mm/dd',mydate2); list.ADOQuery1.Active:=True; list.ADOQuery1.open; list.Label1.Caption:='投產明細查詢條件:'; List.show; close; end; unit procrate_list; //查詢結果顯示窗體 interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, ADODB, OleServer, Excel2000; type TList = class(TForm) DBGrid1: TDBGrid; Label1: TLabel; Label2: TLabel; Label3: TLabel; BTExcel: TButton; ADOQuery1: TADOQuery; DataSource1: TDataSource; procedure Label2Click(Sender: TObject); procedure Label3Click(Sender: TObject); procedure BTExcelClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var List: TList; implementation uses erp_search, erp_logo,DBGrid2Excel; //search窗體中進行查詢,list窗體中顯示結果,以前都可以正常顯示,但是最近老是報錯,我檢查所有與數據庫的連結,都沒有問題,但是就是報錯,不管哪個查詢按鈕,只要點擊查詢按鈕,都會在與之對應的那個按鈕下報錯,比如說上面程式,我點擊procedure Tsearch.BTallClick(Sender: TObject); 他就會在這個按鈕下的帶有list字樣的地方報錯。程式的其他地方皆是如此類似。所以煩請高手指點迷津~! |
pedro
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
books
一般會員 ![]() ![]() 發表:9 回覆:27 積分:7 註冊:2006-10-27 發送簡訊給我 |
===================引 用 文 章=================== 您的錯誤訊息是什麼? 我在猜想應是TList這個Form,應該沒有Create,所以你用list.XXXX去引用裡面的物件,就會報錯 錯誤訊息如下: project ERP.exe raised exception class EAccess Violation with message 'Access violation at address 004E6115 in module' ERP.exe '. Read of address 0000030C'. Process stopped . use step or run to continue. // 且程式中也會指到帶有list的行中。 你的猜想不無道理,但是之前怎麼就可以呢?如果不行,之前就會調不出數據,所以我有時想不通,如依你的想法去,是否在list中create裡面讓他獲取某個控件的焦點,但是程式怎樣調動得到list.ADOQuery1呢?或者還有其他因素呢? |
pedro
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
books
一般會員 ![]() ![]() 發表:9 回覆:27 積分:7 註冊:2006-10-27 發送簡訊給我 |
|
books
一般會員 ![]() ![]() 發表:9 回覆:27 積分:7 註冊:2006-10-27 發送簡訊給我 |
|
books
一般會員 ![]() ![]() 發表:9 回覆:27 積分:7 註冊:2006-10-27 發送簡訊給我 |
|
Coffee
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:878 積分:561 註冊:2006-11-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |