• ベストアンサー

AccessVBAで「このフィールドに入力した値が正しくありません」というエラー

以下のようなコードを書いて実行しているのですが、 下から5行目のところで 「このフィールドに入力した値が正しくありません」というエラーが出てしまいます。 いろいろと調べたのですが、原因が全く分かりません。 どこを直せばいいのか、 又は、どんなところを調べるべきか、知識のある方、教えていただけないでしょうか。 Private Sub cboF_新規契約登録_ヘッダ管理番号選択_Change() Dim cn As ADODB.Connection Dim rs1 As ADODB.Recordset Dim rs2 As ADODB.Recordset Dim MySQL As String '接続 Set cn = CurrentProject.Connection '定期取引ヘッダ レコードセット取得 Set rs1 = New ADODB.Recordset ' '画面上にデータをフィル 'SQL作成 MySQL = "select * from Q_F_新規契約登録_定期取引ヘッダ内容抽出" MySQL = MySQL & " where 会社コード = '" & [Forms]![F_TOP]![会社選択] & "'" MySQL = MySQL & " and ヘッダ管理番号 = " & Me!txtF_新規契約登録_ヘッダ管理番号 MySQL = MySQL & " and LOCAL_補助科目マスタ.科目コード = '3311'" 'Open rs1.Open MySQL, cn, adOpenStatic, adLockReadOnly rs1.Find "ヘッダ管理番号 = " & Val(txtF_新規契約登録_ヘッダ管理番号) 'フィル Me!txtF_新規契約登録_引落額 = rs1!引落額 '<=ここでエラー rs1.Close: Set rs1 = Nothing 'コネクションクローズ cn.Close: Set cn = Nothing End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • PrintScree
  • ベストアンサー率25% (538/2091)
回答No.1

エラーが発生した時「rs1!引落額」の値がNullになっていませんか? エラーで一時停止したときに、イミディトウィンドウで「? rs1!引落額」したときの値を確認してください。 = IIf(IsNull(rs1!引落額),"",rs1!引落額) s とすれば、エラーはでないかもしれません。

その他の回答 (2)

noname#60992
noname#60992
回答No.3

エラーに直接関係ないと思いますが、 rs1.Find "ヘッダ管理番号 = " & Val(txtF_新規契約登録_ヘッダ管理番号) はSQLに含まれているので、不要だと思います。

noname#60992
noname#60992
回答No.2

end of file をチェックしましょう if not rs1.eof Me!txtF_新規契約登録_引落額 = rs1!引落額 else msgbox "検索データがありません" end if

関連するQ&A

専門家に質問してみよう