@katou

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Accessからsharepointリストへのデータ追加でエラー3349

解決したいこと

Office365を使用しています。
ローカルPCのAccessからsharepointリストにリンクを張り、追加・変更・削除のSQLを実行することで外部からデータを参照できるようにしています。
外部からもsharepointリストは変更可能です。
リンクテーブルにデータを追加(Insert)するときに
エラー№=3349
が出てしまいます。

解決方法を教えて下さい。

発生している問題・エラー

エラー№=3349
入力した値がこのテーブルまたはリストに対して定義されている設定に違反するため
(たとえば、値が最小値未満か、最大値より大きい)、変更を記録できません。エラーを
修正してやり直してください。

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

sharepointリストを依頼表としてリンクを張っています。

リンクテーブルの最終SEQを GW_NODN(0)とする
配車指定日の配車情報を取得して GW_TFとする(true/false)
配車指定日の最終№を GW_NOとする

    Set CRdb = CurrentDb
    
    SQL = " INSERT INTO 依頼表 ( SEQ, 着日, 曜日, 配車済, [No], 依頼No,・・・)"
    SQL = SQL & " VALUES ("
    SQL = SQL & "  " & GW_NODN(0) + 1                           'SEQ
    SQL = SQL & ",'" & Me![IRHI_CHAK] & "'"                     '着日
    SQL = SQL & ",'" & Format(Me![IRHI_CHAK], "aaa") & "'"      '曜日
    Select Case GW_TF
    Case True: SQL = SQL & ",'●'"                              '配車済
    Case Else: SQL = SQL & ",''"
    End Select
    SQL = SQL & ", " & GW_NO + 1                                '№
    SQL = SQL & ", " & Me![IRNOIR]                              '依頼No
    ・・・
    SQL = SQL & " );"
    CRdb.Execute SQL

自分で試したこと

リンクテーブルを張りなおす
手作業でリンクテーブルにデータを追加
既にあるデータをSQLで更新・削除してみる

どれも正常に処理されました。

0 likes

1Answer

入力した値がこのテーブルまたはリストに対して定義されている設定に違反するため
(たとえば、値が最小値未満か、最大値より大きい)、変更を記録できません。エラーを修正してやり直してください。

エラーメッセージが説明する通り、項目の設定に矛盾があるのだと思います。

  • default valueが設定されていない項目には、valueの設定が必須
  • SQLの組み立てで、項目の並びと、valueの並びが一致しているか
  • valueの属性が項目と矛盾がないか(数値型なら桁数や文字列型なら長さの制約とかも)
    など。

CRdb.Execute SQLの直前に、debug.print SQLを追加して、出力されたSQLを確認するのがよろしいかと思います。

依頼表テーブルのスキーマと、上のコードの省略の無い完全なコードがあれば、属性の矛盾以外はこちらでもチェックすることができます。属性の矛盾については、使用している変数の型が問題となるので、もっと広範囲のコードが開示されないとチェックできません。

0Like

Comments

  1. @katou

    Questioner

    返信ありがとうございます。
    SQLを再確認したところ
    時刻の項目欄(10文字)に"1900/01/01 9:00:00"というような
    値が入っていたのが原因でした。
    1900/01/01を除外してデータを落とすようにしたら
    エラーなく登録されました。

    ありがとうございました

Your answer might help someone💌