No.1
- 回答日時:
具体的なソースがないと何とも言えませんが・・・
updateメソッドに戻り値はないと思います。
通常は失敗すればエラーになると思います。
・ On Error Resume Next としてませんか?
・ addnew を忘れてませんか?
No.2
- 回答日時:
私も、No1 さんの回答通りにエラーが発生すると思います。
ただ、その場合、Access のエラーが発生するだけかもしれません。
いわゆる ADO エラー情報を取得するには仕掛けが必要です。
質問は、この後段の手法に関してでしょうか?
であれば、次の関数を参考にされて下さい。
カレントプロジェクトであろうが外部アクセスであろうが同じことかと思います。
Public Sub ErrMessage(ByVal CnnErrors As ADODB.Error, ByVal strSQL As String)
MsgBox "ADOエラーが発生しましたので処理をキャンセルします。" & Chr$(13) & Chr$(13) & _
"・Err.Description=" & CnnErrors.Description & Chr$(13) & _
"・Err.Number=" & CnnErrors.Number & Chr$(13) & _
"・SQL State=" & CnnErrors.SQLState & Chr$(13) & _
"・SQL Text=" & strSQL, _
vbExclamation, " ADO関数エラーメッセージ"
End Sub
Public Function CnnExecute(ByVal strSQL As String) As Boolean
On Error GoTo Err_CnnExecute
Dim isOK As Boolean
Dim cnn As ADODB.Connection
isOK = True
Set cnn = CurrentProject.Connection
With cnn
.Errors.Clear
.BeginTrans
.Execute strSQL
.CommitTrans
End With
Exit_CnnExecute:
On Error Resume Next
cnn.Close
Set cnn = Nothing
CnnExecute = isOK
Exit Function
Err_CnnExecute:
isOK = False
If cnn.Errors.Count > 0 Then
ErrMessage cnn.Errors(0), strSQL
cnn.RollbackTrans
Else
MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute)", _
vbExclamation, " 関数エラーメッセージ"
End If
Resume Exit_CnnExecute
End Function
No.3ベストアンサー
- 回答日時:
前回の回答を訂正します。
<ある環境下ではエラーが起きないこともあります!>
さて、本日、Execute での UPDATE 文が実行されないという不具合に遭遇しました。
エラーもなく表面上は「実行しました!」とのメッセージ。
「ウーン!」と考えて、UPDATE 文の発行による更新を断念。
SELECT文で読み込み1レコードづつ更新するようにコードを訂正しました。
結果、この不具合は解消されました。
多分、実行したPCが某社のCAD。
「Windows、Office の更新は誤動作の原因となるのでしていない」とのこと。
こういう場合、非手続き的なコードよりも手続き的なコードの方が信頼が高いと感じました。
質問者も、シコシコと更新手続きを書いてみると解決するかもしれません。
「エラーが出ると思う!」との下りは、このような事情で撤回します。
No.4
- 回答日時:
>レコードを追加する処理を行っている
>この場合、updateコマンドが実行された後
質問の内容より、Recordset オブジェクトのaddnew & updateで手続き的なコードを書かれていると思いますが(^^;>#3さん
Execute メソッドの場合は、第2引数に影響の有ったレコード数が返ってきますので、これをチェックすれば正常に追加されたか判断出来るかも。
Dim RecordsAffected As Long
Connection.Execute SQL, RecordsAffected
Debug.Print RecordsAffected
お答え下さった皆さん、回答ありがとうございます。
他の方へもここでまとめてお礼します。
まだ解決していませんが、皆さんの意見を参考にやってみます。
SQL文に書き直す というのが正解かもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- ドメイン・サーバー・クラウドサービス 独自ドメインでのNSレコード設定 1 2023/07/12 18:36
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- MySQL UPDATE my_items SET item_name '赤い,甘い,ケーキ' WHERE id 1 2023/01/03 09:52
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
accessでレコード更新直後の反映について
その他(データベース)
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
-
4
Access サブフォームでの選択行の取得
その他(データベース)
-
5
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
6
実行時エラー -2147217900 ADODBでレコードセットオープン時エラー
Access(アクセス)
-
7
ADOのCursorLocationプロパティ
Visual Basic(VBA)
-
8
「RunSQL」と「Execute」の違い
Access(アクセス)
-
9
【ADO】「Execute」を使うときは「Update」は不要?
Visual Basic(VBA)
-
10
[VBA] ADOの Clone と AddNew
その他(プログラミング・Web制作)
-
11
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
12
Accessを開くと「排他モードじゃないので変更しても保存できない」との旨の表示が出てしまう。
Access(アクセス)
-
13
SQLの速度をあげるには・・・
Visual Basic(VBA)
-
14
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
15
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
16
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
-
17
VBでSQL文のUPDATE構文を使った時のエラーについて
Visual Basic(VBA)
-
18
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
19
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
20
ACCESSでデータ読み取り専用を解除する方法
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracle 8i コンマ(,)を含むデ...
-
SQLのエラー(~付近に不適切な...
-
PostgreSqlでFunctionの作成に...
-
Duplicate entry '21474836
-
エクセルからSQLサーバー ...
-
バッチファイルからのBCP起動に...
-
GROUP BYでエラーが発生
-
ACCESS ADOでupdateが効かない
-
ExcelからADOでCSVに接続してい...
-
ファイアホースモードエラーに...
-
DB2でselectは出来るが、update...
-
レポートが開けない。
-
複数の表の外部結合について
-
ノートンの解約(「ライセンス...
-
既定のインスタンスと名前付き...
-
Access2010 accdbのエラー「ODB...
-
Access から SQLserver に接続...
-
ノートパソコンのHDDを同機種へ...
-
クライアントは要求された特権...
-
T-SQLのデバッグ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracle 8i コンマ(,)を含むデ...
-
SQLのエラー(~付近に不適切な...
-
GROUP BYでエラーが発生
-
エクセルマクロで指定範囲内の...
-
PostgreSqlでFunctionの作成に...
-
バッチファイルからのBCP起動に...
-
ACCESS ADOでupdateが効かない
-
ACCESSで作成したアプリケーシ...
-
sqlで文字列を最後に追加したい
-
オブジェクト名 '<table>' が無...
-
SQLserverのIF文について
-
エクセルのグループボックス枠...
-
ストアドの戻り値(配列)について
-
Access2000環境に対応するMid関...
-
エクセルからSQLサーバー ...
-
レポートが開けない。
-
ACCESS2000ディスクまたはネッ...
-
oo4oのMovePreviousnメソッドに...
-
分散トランザクションを開始で...
-
SQLServerが存在しないか、アク...
おすすめ情報