出産前後の痔にはご注意!

コンボボックスでACCEESSのテーブルのデータを検索できるようにしたいのですが・・・。
一度プログラムを書いてみたのですが
うまく動かず画面の表示に失敗しましたとエラー表示が出ます。どこがどう悪いのか教えてください。お願いします。

Dim intloop As Integer

On Error GoTo ERR_ROUTIN
IERR_HANDLER.Push "fncSetDisplay"

For intloop = 0 To UBound(PUSRCUST)
If PwrkCUSTCD = PUSRCUST(intloop).intCustCD Then
Exit For
End If
Next
If intloop >= UBound(PUSRCUST) Or UBound(PUSRCUST) = 0 Then
cmbCUSTCD = ""
Else
cmbCUSTCD.ListIndex = intloop '
End If

fncSetDisplay = True

END_ROUTIN:
IERR_HANDLER.Pop
Exit Function

ERR_ROUTIN:
MsgBox "画面の表示に失敗しました", vbCritical, Me.Caption
fncSetDisplay = False
IERR_HANDLER.HandleError
GoTo END_ROUTIN

End Function

A 回答 (4件)

はじめましてmarumaru_a_wといいます。


エラートラップをはずしてしまうのはどうでしょう?
On Error GoTo ERR_ROUTIN
をコメントにしたら何処でエラーになったかわかるはずです。
ここからは憶測ですが
下のエラーメッセージから
「cmbCUSTCD = ""」の部分がエラーになっていると思われます。Listに""がないのではないでしょうか?
空白を指定したい場合は、「cmbCUSTCD.ListIndex = -1」でいいはずです。
それでも、落ちるとしたら「cmbCUSTCD.ListIndex = intloop」の部分の「intloop」の値が「cmbCUSTCD.ListCount」の値よりも大きい値が入っていると思われます。
違っていた場合は、すみませんです。
    • good
    • 0

VB6.0なのかVB.NETなのか、はたまたAccessBasicなのか不明ですが



1)PUSRCUSTは配列で、宣言済みですか?
2)cmbCUSTCD がコンボボックスとするなら
  cmbCUSTCD = "" は表示のクリアを意図してるのでしょうか?
  それともItemListのクリアを意図してますか?
    • good
    • 0

Resume 0


でどこにもどったか知りたかったのですが^^;

そのエラーを発する位置の手前に
me.show
を入れたら改善されませんか?
    • good
    • 0

正直同じ環境が無いと、エラーがどこで発生しているかがわかりません。


調査方法だけ書いておきます。


>MsgBox "画面の表示に失敗しました", vbCritical, Me.Caption
>fncSetDisplay = False

を拡張します

MsgBox "画面の表示に失敗しました" & vbCrLf & _
    vbCrLf & "エラー番号:" & Err.Number & Err.Description & _
    vbCrLf & "エラーメッセージ:" & Err.Description, _
    vbCritical, Me.Caption
Stop
Resume 0
fncSetDisplay = False


(1) エラーメッセージを、実際のエラー内容を表示させる
(2) メッセージを表示した後、デバッグしやすいように「Stop」を発行する
(3) (2)のあと、F8を数回押し、エラーの発生した場所に処理を飛ばす
(4) 発生した場所がわかったら、デバッグの中止ボタンを押す

(3)の処理を行うことにより、どこのコマンドでエラーが発生しているかがわかります。
どこで発生したかがわかっても、なぜそれが起きているのかがわからなければ、
・どこでエラーが発生していたか
・エラー番号とエラーメッセージ内容
を再度投稿してもらえれば、進展するかもしれません。


この拡張は、あくまでデバッグ用のコードですので、原因がわかったら元のコード状態に戻しておきましょう。

この回答への補足

試してみたところ エラー番号9 インデックスが有効範囲にありませんと出ました。
さっきのコードを削除すればエラーが出ません。

補足日時:2005/03/02 23:37
    • good
    • 0

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


人気Q&Aランキング