史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   VB6.0資料庫存取的問題 (http://forum.slime.com.tw/thread251723.html)

chung1206 2009-08-19 04:42 PM

VB6.0資料庫存取的問題
 
各位先進們好,我今天自己練習做了一個資料庫存取的題目,但發生問題,如下圖,不知如何解決?若有需要附上原檔,再跟我說,謝謝。

http://farm3.static.flickr.com/2627/...1b7f63808f.jpg
http://farm3.static.flickr.com/2519/...f9a8e1c52a.jpg

上列的問題已解決,不過現在的問題出在儲存的部份,當我新增一筆資料後,其實它就已經儲存了,
但不知道為何題目還要我做一個儲存鈕,我按下後它說在UPDATE之前要先有AddNew或Edit。

mini 2009-08-21 02:36 PM

那就設計一個 "暫存" 的作為

新增時是存到一個 暫時 的資料庫檔上
當按下存檔時
再把資料從 該資料庫檔 中讀出
最後再 "增到" 到正確的 資料庫檔 裡

這麼做雖然有點多此一舉
不過可因此有 反悔的機制
有點像是 Undo

chung1206 2009-08-22 09:41 AM

引用:

作者: mini (文章 2184495)
那就設計一個 "暫存" 的作為

新增時是存到一個 暫時 的資料庫檔上
當按下存檔時
再把資料從 該資料庫檔 中讀出
最後再 "增到" 到正確的 資料庫檔 裡

這麼做雖然有點多此一舉
不過可因此有 反悔的機制
有點像是 Undo

版大我想請教一下,我看別人做的資料庫都是一開始欄位沒有任何資料
輸入完後按新增才將資料寫入資料庫裡,但我的剛好相反,我一執行程
式就會自動秀出第一筆資料來,我要按新增才可以key資料,而且key完
後它自己就存了,我什麼都不用按,就連修改也一樣,我直接在上面改
一筆資料它竟然自動就Update了,有什麼方式可以改正?謝謝。

mini 2009-08-22 03:12 PM

引用:

作者: chung1206 (文章 2184621)
版大我想請教一下,我看別人做的資料庫都是一開始欄位沒有任何資料
輸入完後按新增才將資料寫入資料庫裡,但我的剛好相反,我一執行程
式就會自動秀出第一筆資料來,我要按新增才可以key資料,而且key完
後它自己就存了,我什麼都不用按,就連修改也一樣,我直接在上面改
一筆資料它竟然自動就Update了,有什麼方式可以改正?謝謝。

不怎麼玩資料庫的說
你可以試試
在 Data1.Recordset.AddNew 前加一句
Data1.EOFAction = adDoAddNew

因為一開始你的資料庫是空的
所以與 EOF之處理 有關

P.S.
AdDoMoveLast 0 移動到最後一條記錄
AdStayEOF 1 保持在文件的結尾位置
AdDoAddNew 2 添加一條新記錄

不過如此就要多個錯誤處理
"如果您沒有輸入新資料錄的資料,而將移出資料錄,您會收到錯誤訊息"
http://support.microsoft.com/kb/190642/zh-tw

chung1206 2009-08-24 10:00 AM

引用:

作者: mini (文章 2184685)
不怎麼玩資料庫的說
你可以試試
在 Data1.Recordset.AddNew 前加一句
Data1.EOFAction = adDoAddNew

因為一開始你的資料庫是空的
所以與 EOF之處理 有關

P.S.
AdDoMoveLast 0 移動到最後一條記錄
AdStayEOF 1 保持在文件的結尾位置
AdDoAddNew 2 添加一條新記錄

不過如此就要多個錯誤處理
"如果您沒有輸入新資料錄的資料,而將移出資料錄,您會收到錯誤訊息"
http://support.microsoft.com/kb/190642/zh-tw


感謝版大,前面有加了Data1.EOFAction = adDoAddNew
但還是一樣,我再查查資料,謝謝。

cwvdavid 2009-08-25 05:00 PM

你的問題是因為,你的畫面
直接跟資料庫連在一起了,
(那個上一筆下一筆的元件【|←      →|】
你應該是用精靈直接設定的,而其他欄位也是直接指定資料來源)

也就是說,你並不是實際寫程式去讀取資料後,再把資料顯示在畫面上
因此當你打完資料,就已經是新增了.....

(我最早在學資料庫的時候也都是用你這種做法...直到後期才換)

chung1206 2009-09-14 10:09 AM

引用:

作者: cwvdavid (文章 2185447)
你的問題是因為,你的畫面
直接跟資料庫連在一起了,
(那個上一筆下一筆的元件【|←      →|】
你應該是用精靈直接設定的,而其他欄位也是直接指定資料來源)

也就是說,你並不是實際寫程式去讀取資料後,再把資料顯示在畫面上
因此當你打完資料,就已經是新增了.....

(我最早在學資料庫的時候也都是用你這種做法...直到後期才換)

我也是照書上學的,看來VB6可變動的空間似乎很小,該換VB.net的了,謝謝。


所有時間均為台北時間。現在的時間是 06:50 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1