- 締切済み
VB6+ADO(EXCEL)についてお教えください。Excelが更新されません。
お知恵をお貸しください。 VB6 SP5 WIN XP SP2 ADO 2.8 Library Excel 2003 SP2 現在、以上の環境で開発を行っております。 対象Excelのシート1の名前をある機械の「部品入出庫管理」とし、シート2の名前を「部品表」としています。 「部品表」にある[在庫数]フィールドは 「部品入出庫管理」にある[入庫]フィールド、あるいは[出庫]フィールドに値が入力されれば計算される仕組みになっております。 [入庫]フィールドに値Xが入力されれば、「部品表」の[在庫数]フィールドはXプラスされ、 [出庫]フィールドに値yが入力されれば、「部品表」の[在庫数]フィールドはyマイナスされます。 アプリケーションの流れは、 (1)「部品表」の[部品番号]フィールドを検索 (2)入・出庫の数量を入力 (3)「部品入出庫管理」の[入庫]、あるいは[出庫]フィールドにADO接続で数量が入力される (4)この数量を「部品表」の[在庫数]フィールドがExcel内で自動的に計算して値を更新しておく です。 しかし、 (4)の動作ができていません。Excelのアプリケーションそのものを開くと、更新されているのですが・・・ .addnewと.updateを使っております。 何か他の命令なりがあるのでしょうか? ちょっと解りづらいかもしれませんが、お知恵をお貸しください。 大変恐縮ですが宜しくお願い申し上げます。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- fortranxp
- ベストアンサー率26% (181/684)
失礼しました。 CommandButton_Clickでした。 ちょっとExcelとVB6の連携が良くないかも。 VB6のADODC1コントロールを使用して VB6のDataGridにExcelの情報を表示させる。 DataGrid1_Changedにコードを書いて ここで制御させたらどうかなぁ。
- fortranxp
- ベストアンサー率26% (181/684)
例えば VB6にCommandButtonをつくって Private Sub CommandButton_Changed に コード書いたらどうですか?
補足
お答え頂きありがとうございます。 私の見落としかもしれませんが、CommandButtonにChangedはないのですが・・・ また、そのChangedはどのような場合に使用するとよろしいのでしょうか? 何かと解りづらい説明で申し訳ございません。 .AddNew~.Updateでレコード追加していきます。 "入庫"フィールドが書き込まれた時に、Excelの別シートのセルで"入庫"フィールドの値を含んだ関数が組まれていて、"入庫"フィールドに書き込まれる度にそのセルは自動的に計算するようになっています。 しかし、ExcelはどうやらExcelそのものを開かないとその計算をしてくれないようで、ADOで接続すると、関数が組まれているセルは前回と比べて変化しない状態になってしまうのです。 .AddNew ・ ・ ![入庫] = TxtIn.Text ・ ・ .Update
補足
度々のご回答、感謝いたします。 今週一杯出張なので週明けに試してみます。 一応今の所セコい手ですが、レコード追加毎にExcelの実体を開いて→上書き保存→すぐに閉じるみたいなことをウラでやらせています。 DataGridを使うなんて客(注文が多すぎる上司)にばれたら、あれもできるだろ、これも・・・なんていうふうに面倒なことになりそうですが、成功したら設計書の片隅にでも書き加えておきます。