プロが教える店舗&オフィスのセキュリティ対策術

access vb の criteria を使用してデータ検索をする命令の箇所でエラーが出る
(テスト用データではエラーが出ない)

  テストを終え本番切り替え時にエラーが出る。
  動作環境はWinxp,winvista、win7 access2003とaccessvbで構築したdb
  
  実行時エラー’3265’もどこを見て原因があるかも不明です


    (Accessデータベースを検索するためAccessのフォームにある
Access vbの、(1)ロジックと、(2)エラー表示の内容)
(1)ロジック
     rs2.Open "講座開始日時テーブル",cx,adOpenKeyset,adLockOptimistic
 criteria = "講座コード ='”& 講座コード & "'"   ’講座コードの属性は string
     rs2.moveFist
     rs2.find critera, 0    ’<- この命令のところでテスト用プログラムでは
                   ’エラーがでないのに、本番用プログラムでは
                   ’以下のエラーが出て原因が把握できない状態です 
     Do Until rs2.EoF                
If rs2.EOF Then
講座番号確認区分 = "エラー"  ’エラー表示
GoTo enda
Else
講座コード = rs2!講座番号    ’データ検索OK
         GoTo XXX
 Endif
     Loop

(2)エラー表示
 |ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
 |Microsoft Visual Basic
 | 実行時エラー’3265’
 | 要求された名前、または序数に対応する項目がコレクションで見つかりません。
 | 
 | 
 | 継続  終了(E)  デバッグ(D)  ヘルプ(H)
 |ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

A 回答 (2件)

> 講座コード = rs2!講座番号    ’データ検索OK


講座開始日時テーブル に 講座コード が無くて 講座番号 があるように見える。
この時点でテーブルの項目名の統一が出来ていない不具合満載プログラム臭くて
私は関わりたくないですね。

> 要求された名前、または序数に対応する項目がコレクションで見つかりません。
まずはエラーメッセージ通りの不具合が起こったと思って確認すべきでしょう?
コレクション(rs2)の中身を検証するようなテストコードを書いて確認するのが普通。
フィールドインデックス指定でカラム名を出力して、単純なスペルミスなどが無いか
確認したの?
    • good
    • 0
この回答へのお礼

詳細な解説有難うございました。
 原因は criteria = "講座コード4 ='" & 講座コード4 & "'"
  をコーディングしてテストを繰り返していましたが
エラーが出てテストをしている間にフィールド名称が何故か
  講座コード(講座名) ⇒ 講座コード4 に自動的に変換
  されてしまい テストではうまく作動するようになっていました。 
 正しくはフィールド名称が カッコ付きで次のように
  criteria = "講座コード(講座名)='" & 講座コード(講座名) "'"
 とすべきですがではうまく作動しないようです。 

 原因が分かりましたのであとは何とか対処できると思います。
本当にありがとうございました。

お礼日時:2012/03/03 08:08

> テストを終え本番切り替え時にエラーが出る。


テスト環境と本番環境をどう区分け・切り替えされているのか、非常に気になりますね。

テスト環境と本番環境のテーブル[講座開始日時テーブル]の内容を
比較・確認できないのですか?
    • good
    • 0
この回答へのお礼

ありがとうございました。
 
 「テスト環境と本番環境のテーブルの内容を比較・確認できないのですか」 

と言っていただき、本番のDBとテストのDBの問題の個所の項目名(フィールド名)
を比較したところテストの項目名が変更されていました。
 本番のソフト・データを全てコピーしてテストを開始していましたが、
何回も問題の個所で止まってしまい原因がわからないまま思考錯誤をして
いる間に、変更されていました。
 criteria で使用する名称に()付の名称がつけてありましたがcriteriaでは
使用できないことが判明し()付の名称を修正し全て解決できました。
 適切なアドバイス本当にありがとうございました。

お礼日時:2012/03/08 22:25

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