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

Access 資料庫新增的資料出問題

答題得分者是:pillar62
syene
一般會員


發表:17
回覆:12
積分:5
註冊:2003-01-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-02-26 14:53:03 IP:220.130.xxx.xxx 訂閱

在Access資料庫中有年度資料表,
每一年度又有每一年度的資料,
利用一個DbLookupCombobox列出不同年份的資料,
奇怪的是,之前年份都沒問題,
但是新增的年份在DbLookupCombobox欄位中就只能秀出第一筆資料?

在附加檔案中有完整的資料庫檔及程式碼。
謝謝!
瘋狂火星人
一般會員


發表:1
回覆:29
積分:6
註冊:2005-06-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-02-26 18:38:53 IP:220.133.xxx.xxx 訂閱
不懂....
能不能抓幾張圖來對照看看??

===================引 用 syene 文 章===================

在Access資料庫中有年度資料表,
每一年度又有每一年度的資料,
利用一個DbLookupCombobox列出不同年份的資料,
奇怪的是,之前年份都沒問題,
但是新增的年份在DbLookupCombobox欄位中就只能秀出第一筆資料?

在附加檔案中有完整的資料庫檔及程式碼。
謝謝!
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-02-26 21:13:28 IP:122.127.xxx.xxx 訂閱
您的
ADODataSet2
內的
CommandText
內容如下:
select * from study_year
where '951'
order by yearid desc
因有加文字型態,不知為何可用來比大小?
------
努力會更接近成功
syene
一般會員


發表:17
回覆:12
積分:5
註冊:2003-01-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-02-26 22:02:01 IP:61.231.xxx.xxx 訂閱
裡面有一執行檔,
執行以後,在DblookupCombobox下拉,
當年代是952,961時,DblookupCombobox中點選哪一個項目,
該項目就會顯示在DblookupCombobox中,
但是後來增加的962後,
雖然DblookupCombobox中也顯示該年度所有項目,
但是一經點選,無論點哪一項目,
都只有第一個項目顯示在DblookupCombobox,
不之問題出在哪邊?
syene
一般會員


發表:17
回覆:12
積分:5
註冊:2003-01-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-02-26 22:04:24 IP:61.231.xxx.xxx 訂閱
因為那個yearid其實在Access的schema是字元型態,
字元型態是可以大小比較的.
===================引 用 pceyes 文 章===================
您的
ADODataSet2
內的
CommandText
內容如下:
select * from study_year
where '951'
order by yearid desc
因有加文字型態,不知為何可用來比大小?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-02-27 10:30:14 IP:61.67.xxx.xxx 未訂閱
敬告各位網友, 不要太懶, 把有問題的部份貼一下圖出來, 因為我們想幫各位解決, 但大家都有工作要做, 所以實在沒有那麼多時間看大家的全文去解析, 那自然會得到答案的機會就變少了, 謝謝大家!
syene
一般會員


發表:17
回覆:12
積分:5
註冊:2003-01-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-02-27 13:37:31 IP:203.72.xxx.xxx 訂閱
  1. 以下兩圖是附件中所使用的Access資料庫兩個Table的schema及content

  2. 下圖是該應用程式執行yearid 是961以前的資料視窗,
    右邊的DbLookupComboBox可以順利點選任一筆資料,
    該筆資料也會顯示在DbLookupComboBox上。
  3. 當換到962年度時,不管在DbLookupComboBox中點選哪一筆資料,
    都無法正確顯示在DbLookupComboBox上面,只會秀出202這筆資料。
  4. 我的疑問是這資料庫已經用了很多年了(至少有三個年度),
    為何到962這年度出現以上問題,想請問站上的高手,
    看是否程式哪邊出狀況?亦或者我的資料庫出現問題?
  5. 環境是Windows 2000 Access2000 Delphi 7 Prof
    or WindowsXP Access2003 Delphi 7 Prof
程式碼如下

[code delphi]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBCtrls, ADODB, Grids, DBGrids;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
DBLookupComboBox1: TDBLookupComboBox;
DataSource1: TDataSource;
ADODataSet2: TADODataSet;
DataSource2: TDataSource;
DBGrid1: TDBGrid;
ADODataSet2yearid: TWideStringField;
procedure ADOConnection1AfterConnect(Sender: TObject);
procedure ADOConnection1BeforeConnect(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ADOConnection1AfterConnect(Sender: TObject);
begin
ADODataSet1.Close;
ADODataSet1.Open;
ADODataSet2.Close;
ADODataSet2.Open;
end;
procedure TForm1.ADOConnection1BeforeConnect(Sender: TObject);
begin
with ADOConnection1 do
begin
//ShowMessage(ExtractFilePath(Application.ExeName));
ConnectionString:=StringReplace(ConnectionString,'C:\config962\',ExtractFilePath(Application.ExeName),[]);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.Connected:=False;
ADOConnection1.Connected:=True;
end;
end.

[/code]
編輯記錄
syene 重新編輯於 2008-02-27 13:38:20, 註解 無‧
syene 重新編輯於 2008-02-27 13:41:59, 註解 無‧
syene 重新編輯於 2008-02-27 13:42:58, 註解 無‧
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-02-27 16:17:09 IP:219.87.xxx.xxx 訂閱
您好
測試過您的程式,發現應該是DBLookupComboBox1裡面設定的問題,請將KEY Field設定成ctitleid
然後將ListField設定成classid,然後在試試看,應該就可以了!
------
Pillar Wang
syene
一般會員


發表:17
回覆:12
積分:5
註冊:2003-01-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-02-27 18:31:40 IP:218.168.xxx.xxx 訂閱
謝謝!
真的是這樣,
只是為何之前都不會有問題?
===================引 用 pillar62 文 章===================
您好
測試過您的程式,發現應該是DBLookupComboBox1裡面設定的問題,請將KEY Field設定成ctitleid
然後將ListField設定成classid,然後在試試看,應該就可以了!
系統時間:2024-05-16 18:57:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!