VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

記錄是否存在

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
sunbird



註冊時間: 2007-10-10
文章: 21


第 1 樓

發表發表於: 星期三 十月 10, 2007 6:46 pm    文章主題: 記錄是否存在 引言回覆

Question
通過一命令按鈕檢查 text 所輸入的值是否已在表中存在?
表 table1.dbf
使用以下代碼:
LOCATE while alltrim(table1.F1)=alltrim(thisform.text1.Value)
If found()=.t.
Messagebox(“記錄已存在,請重新輸入”)
endif

問題是:
當 text1.value與 table1.F1 中某記錄的前幾碼相同時,found() 卻為 .t.
請各位指教指教。
回頂端
檢視會員個人資料 發送私人訊息
mooy



註冊時間: 2003-09-29
文章: 22


第 2 樓

發表發表於: 星期三 十月 10, 2007 8:54 pm    文章主題: Re: 記錄是否存在 引言回覆

sunbird 寫到:
Question
通過一命令按鈕檢查 text 所輸入的值是否已在表中存在?
表 table1.dbf
使用以下代碼:
LOCATE while alltrim(table1.F1)=alltrim(thisform.text1.Value)
If found()=.t.
Messagebox(“記錄已存在,請重新輸入”)
endif

問題是:
當 text1.value與 table1.F1 中某記錄的前幾碼相同時,found() 卻為 .t.
請各位指教指教。


SET EXACT ON
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2160


第 3 樓

發表發表於: 星期三 十月 10, 2007 9:17 pm    文章主題: 引言回覆

也可以用
LOCATE for table1.F1=padr(thisform.text1.Value,len(table1.F1) )

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
KKKLYNN



註冊時間: 2004-09-17
文章: 357


第 4 樓

發表發表於: 星期四 十月 11, 2007 9:42 am    文章主題: 引言回覆

您好
建議您
以seek的方式還處理查詢資料(index要設定)會比較有效率
若用 set exact on也要注意使用場合,有時適用有時不適用
valid event如何使用也是此類問題的重點
以上謝謝
回頂端
檢視會員個人資料 發送私人訊息
sunbird



註冊時間: 2007-10-10
文章: 21


第 5 樓

發表發表於: 星期四 十月 11, 2007 4:02 pm    文章主題: 引言回覆

謝謝各位 !

用seek 是否可按如下代碼寫?

select table1 (f1 表中設為主索引)
seek alltrim(thisform.text1.value)
if found()=.t.
找到
else
未找到
endif
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 6 樓

發表發表於: 星期四 十月 11, 2007 6:33 pm    文章主題: 引言回覆

代碼:

select table1 (f1 表中?#93;為主索引)
seek padr(ALLTRIM(thisform.text1.Value),len(table1.F1) )
if found()=.t.
找到
else
未找到
endif


用 PAD() 才會補足長度,
否則用 ALLTRIM() 其實也是 PartialKey 的搜尋

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
sunbird



註冊時間: 2007-10-10
文章: 21


第 7 樓

發表發表於: 星期四 十月 11, 2007 7:34 pm    文章主題: 引言回覆

謝謝樓上朋友

另外,還想請教
seek padr(ALLTRIM(thisform.text1.Value),len(table1.F1) )
此代碼是否為 text1.value 與 table1.f1 完全相同時, found() 才為 .t.

如果我要 text1.value 與 table1.f1 前幾碼相同時, found() =.t. ,以下代碼好像可以
seek alltrim(thisform.text1.value)

請指教!
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 8 樓

發表發表於: 星期五 十月 12, 2007 10:22 am    文章主題: 引言回覆

yes,

就是這個樣子.

完全相符 指的是 長度及內容 都必須一樣.
部分相符 則只要由左至右有數個字元相符就可以.

set exact on / off 也是相同的道理.
其他相關的還有
set near on/off

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
sunbird



註冊時間: 2007-10-10
文章: 21


第 9 樓

發表發表於: 星期五 十月 12, 2007 8:51 pm    文章主題: 引言回覆

謝謝各位!
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作