アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になります。

現在ExcelのVBAを使用し、データベースより情報を取得しようと考えています。

データベースから情報の取得はできているのですが、
ボックスを開くたびにデータが下に追加されてしまいます。

ミスは理解できるのですが、どのようにすれば何度開いても同じ情報が
表示されるのか分かりません。

ご存知の方がいればご教授ください。


以下 コード

Private Sub CbBox_sample_Change()

mySQL = "select * from 情報 order by 日付 desc"
Set rec = cnn.Execute(mySQL)

Do While Not rec.EOF
Form_main.CbBox_kaisei.AddItem (rec(2).Value)
rec.MoveNext
Loop

End Sub

・これだとChangeするたびに増えていくんですよね。きっと。

Excel2002+WindowsXP+Oracle

A 回答 (2件)

お世話になります。



>これだとChangeするたびに増えていくんですよね。きっと。

そこまで解っていらっしゃるのでしたら,
AddItemするタイミングを変更すればよいのでは。

例えば,Workbook_Openとか。
    • good
    • 0

現状の Change イベントで対応するなら、AddItem する前に(イベントの入り口で)コンボボックスをクリアすればいいです。



CbBox_keisei.Clear

ただしこれは良くない対処法です。
一度で良い処理を何度もやることになります。
ですのでこの手の処理はフォームの初期化処理である Initialize イベントでやるのが良いでしょう。
現在の処理をそのまま Initialize イベント内に移動すればOKです。
もしフォームではなくワークシート上にコンボボックスを作成しているのであれば、ワークブックのオープンイエベント(Workbook_Open)で処理するのが良いかと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!