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

有關ACCESS裡的自動編號

答題得分者是:Jasonwong
tonyplus
初階會員


發表:22
回覆:97
積分:28
註冊:2002-04-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-04-18 18:45:37 IP:60.248.xxx.xxx 訂閱
小弟有幾筆資料是完全一樣的,只有自動編號是唯一有差異的地方,可是ACCESS的自動編號是什麼型態呢?
SELECT * FROM ABC WHERE ID = 'ADOQUERY1.FIELDBYNAME('FID').ASINTEGER'
這樣會出現錯誤,請問要如何調用ID這個自動編號呢?
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-18 19:53:33 IP:222.184.xxx.xxx 訂閱
我不是太精,但尽我的力探讨一下,用SELECT * FROM ABC WHERE ID = '+ADOQUERY1.FIELDBYNAME('FID').ASINTEGER   引号只有一个了,最后面的不要了。
------
我的编程起步于ktop,我将永远支持ktop
tonyplus
初階會員


發表:22
回覆:97
積分:28
註冊:2002-04-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-19 13:50:40 IP:60.248.xxx.xxx 訂閱
先謝謝 ntjrr 大大的回覆,不過您的方法,小弟試過了,不行!!現在小弟改成
ADOQuery1.SQL.ADD('UPDATE P1 Set Invoice_No = ''No Match!'' WHERE IDKey = ''' AQ2.FieldByName('IDKey').AsVariant ''');
會出現
'Invalid variant type conversion'
請問要如何改呢??
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-04-19 14:53:43 IP:211.75.xxx.xxx 未訂閱
ACCESS 裡的自動編號好像是長整數, 你是不是要用 Float 試試看, 或者用 LongInt 變數去接接看
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-04-25 12:05:41 IP:203.70.xxx.xxx 訂閱
AsVariant 轉換型態不明確喔,請用明確的asstring型態。
tonyplus
初階會員


發表:22
回覆:97
積分:28
註冊:2002-04-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-04-25 15:34:28 IP:60.248.xxx.xxx 訂閱
小弟試過了,他好像不是字串型態,所以還是不行~
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-04-25 15:44:07 IP:203.70.xxx.xxx 訂閱
對不起,我看錯了,自動編號欄位一定是數字型態的,所以你只有兩個選擇:asinteger,asfloat,要看您當初設定這個欄位是用哪一種型態。
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-04-25 18:33:36 IP:222.184.xxx.xxx 訂閱
因为我是慢慢从不断地问才会一些东西的,所以我了解一些初学者的心理。本贴中的问题其实不是错在用什么接,因为他一开始就是对的,用的asinteger,在这上面他本来就没有用错,而是他自己不断在试,试错了。问题的关键估计在于他不懂数字的字段用几个引号,几个 号,如何用,错在这上面。楼主你按我在上面说的那个仔细看懂了再试试,应该能成功。
------
我的编程起步于ktop,我将永远支持ktop
編輯記錄
ntjrr 重新編輯於 2007-04-25 18:35:00, 註解 無‧
ntjrr 重新編輯於 2007-04-25 18:37:25, 註解 無‧
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-04-25 20:54:57 IP:222.184.xxx.xxx 訂閱
楼主,我把我前些日子问来的答案贴在这里供你参考一下,你仔细地体会一下,估计有帮助:
在查询分析器中,如果字段A是字符型,应该写成:
select * from 表 where 字段A='1000'
如果字段A是数值型,应该写成:
select * from 表 where 字段A=1000
在 Delphi 中把 SQL 语句写在字符串中,单引号用连续两个单引号表示,所以
select * from 表 where 字段A='1000' 写成:
'select * from 表 where 字段A=''1000'''
如果用变量,就应该写成:
'select * from 表 where 字段A=''' edit1.Text ''''
而select * from 表 where 字段A=1000 写成
'select * from 表 where 字段A=1000'即可
如果用变量,就应该写成:
'select * from 表 where 字段A=' edit1.Text

------
我的编程起步于ktop,我将永远支持ktop
系統時間:2024-05-18 20:30:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!