none
VB6.0 程式的遲疑問題 RRS feed

  • 問題

  • 例如一個 table list 的第一欄連接住一個 textbox1,

    if textbox1.text change then textbox2.text =Int(textbox2.text) +1 (只是具體的意思)

    當我轉換 table list 的位置按其他 record 時, 雖然 textbox1.text 的內容會跟 table list 同步, 但 change 這個指令就不是同步了, 往往要再按一下其他 record 時, 上一次的 change 指令才會執行加一, 而不是我轉 table list 的時候同步加一, 為什麼呢?

    由於不在 vb 面前, 希望大家能明白我的問題, thanks.


    Leo
    2009年1月30日 上午 08:59

解答

  • LonghairPan 表示:

    我用 adodc 做沒這問題....
    設好 connectionstring, recordsoure, 然後 textbox 設好 datasource, datafield,
    程式一起來, 就會先引發一次 text1_change , 改變 text2.text,
    之後每次按前一筆, 後一筆, text2.text 都會累加,
    會不會是你有連續的紀錄, 那個 field 內容是一樣的, 所以沒引發 change 事件?



    不會, 因為用 access, 第一欄設定了不能有相同資料的 , 而且類似情況也有過, 好像是用 form load, data1.recordset FindFirst s, 是用不了的, 我唯有用 Timer1 等 form 開啟完一秒才自動行 FindFirst 才可以
    Leo
    2009年2月6日 上午 04:13

所有回覆

  • VB6很久沒用了,如果你是每次RecordSet的position變更就要去加一的話,印象中有事件可以去處理,你可以改處理資料變更的部分,而不是處理Textbox的TextChange事件。
    態度決定一切 ! - blog : http://bauann-makeit.blogspot.com/
    2009年2月1日 上午 09:09
    版主
  • bauann 表示:

    VB6很久沒用了,如果你是每次RecordSet的position變更就要去加一的話,印象中有事件可以去處理,你可以改處理資料變更的部分,而不是處理Textbox的TextChange事件。


    態度決定一切 ! - blog : http://bauann-makeit.blogspot.com/



     其實我要的就是一個 event, 通過 table select 來發動 textchange 事件, 只是不知道為什麼 vb6 就是不懂做二次程序
    Leo
    2009年2月2日 上午 09:52
  • 可否解釋一下什麼是 table select 發動 textchange 事件?

    如果是用程式碼去改變 text1.text 屬性, 就會引發 text1 的 change 事件,
    我直接去改變 text1.text 的值, 然後在 text1_chage 中讓 text2.text = val(text2.text) + 1 結果是 ok 的,
    我測試的時候, 把改變 text1.text 的值寫在一個 commandbutton 的 click 事件裡, 裡頭去讓 recordset movenext,
    然後讓 text1.text = rs.field(0).value, 結果一樣可以順利改變 text2.text 的值,
    不知道您是用何種方式來改變 text1.text ?
    2009年2月2日 上午 11:19
  • LonghairPan 表示:

    可否解釋一下什麼是 table select 發動 textchange 事件?

    如果是用程式碼去改變 text1.text 屬性, 就會引發 text1 的 change 事件,
    我直接去改變 text1.text 的值, 然後在 text1_chage 中讓 text2.text = val(text2.text) + 1 結果是 ok 的,
    我測試的時候, 把改變 text1.text 的值寫在一個 commandbutton 的 click 事件裡, 裡頭去讓 recordset movenext,
    然後讓 text1.text = rs.field(0).value, 結果一樣可以順利改變 text2.text 的值,
    不知道您是用何種方式來改變 text1.text ?



    我是用 vbgrid 去做一個 table 出來, 然後用 data1 來 control text1 指向 data1 其中的一個 field, 當我在 vbgrid 裡選擇 record 時, text1 裡的資料自然會改變, 我就是用這個改變去引發 text1 change 來執行程式 , 但就是發現當我選第一次 vbgrid table 裡的資料後, text1 change 沒有反應, 要我 click vbgrid 的其他資料, 才做 text1 change 的第一個動作, 當我選 vbgrid table 的第三筆資料時, text1 change 就做第二次 click 的動作...就是如此
    Leo
    2009年2月4日 上午 03:21
  • 我用 adodc 做沒這問題....
    設好 connectionstring, recordsoure, 然後 textbox 設好 datasource, datafield,
    程式一起來, 就會先引發一次 text1_change , 改變 text2.text,
    之後每次按前一筆, 後一筆, text2.text 都會累加,
    會不會是你有連續的紀錄, 那個 field 內容是一樣的, 所以沒引發 change 事件?

    2009年2月6日 上午 03:57
  • LonghairPan 表示:

    我用 adodc 做沒這問題....
    設好 connectionstring, recordsoure, 然後 textbox 設好 datasource, datafield,
    程式一起來, 就會先引發一次 text1_change , 改變 text2.text,
    之後每次按前一筆, 後一筆, text2.text 都會累加,
    會不會是你有連續的紀錄, 那個 field 內容是一樣的, 所以沒引發 change 事件?



    不會, 因為用 access, 第一欄設定了不能有相同資料的 , 而且類似情況也有過, 好像是用 form load, data1.recordset FindFirst s, 是用不了的, 我唯有用 Timer1 等 form 開啟完一秒才自動行 FindFirst 才可以
    Leo
    2009年2月6日 上午 04:13