
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文に書き直す というのが正解かもしれません。
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.1
- 回答日時:
具体的なソースがないと何とも言えませんが・・・
updateメソッドに戻り値はないと思います。
通常は失敗すればエラーになると思います。
・ On Error Resume Next としてませんか?
・ addnew を忘れてませんか?
お探しの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も見ています
-
accessでレコード更新直後の反映について
その他(データベース)
-
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
ADOのCursorLocationプロパティ
Visual Basic(VBA)
-
-
4
「RunSQL」と「Execute」の違い
Access(アクセス)
-
5
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
6
実行時エラー3001「引数が間違った型、許容範囲外、または競合しています。」
Visual Basic(VBA)
-
7
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
8
ADOでRecordsetオブジェクトをレコードソースに設定したい
その他(データベース)
-
9
Integer変数をカラにしたいのですが
Visual Basic(VBA)
-
10
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
-
11
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
12
Access2010 「演算子がありません」エラー
その他(データベース)
-
13
どこにもフォーカスを当てたくない
Access(アクセス)
-
14
[VBA] ADOの Clone と AddNew
その他(プログラミング・Web制作)
-
15
実行時エラー -2147217900 ADODBでレコードセットオープン時エラー
Access(アクセス)
-
16
access ADODB でテーブルを更新しない場合
その他(データベース)
-
17
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
18
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
19
ADODBのRecordset.Deleteのエラーについて誰か助けてください!!
その他(プログラミング・Web制作)
-
20
「#エラー」の回避
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracle 8i コンマ(,)を含むデ...
-
分散トランザクションを開始で...
-
ORA-1036??
-
XAMPPでのSQL文を使ったデータ...
-
エクセルのグループボックス枠...
-
クエリの存在チェック
-
InnoDBの利用
-
Yomi-Search PHPインストール
-
GROUP BYでエラーが発生
-
Access2000環境に対応するMid関...
-
PostgreSqlでFunctionの作成に...
-
SQLのエラー(~付近に不適切な...
-
SQLServer・ストアドプロシージ...
-
SQLServerが存在しないか、アク...
-
SQL Server 2008 0で除算ができ...
-
MySQLをインストール。MovableT...
-
SQLで同じDBに対し2つのコネク...
-
ホスティングサーバ上のMySQLへ...
-
Excel-VBAの「しばらくお待ちく...
-
ファイル上のパスワードの暗号化
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
Oracle 8i コンマ(,)を含むデ...
-
エクセルマクロで指定範囲内の...
-
バッチファイルからのBCP起動に...
-
PostgreSqlでFunctionの作成に...
-
ACCESS ADOでupdateが効かない
-
sqlで文字列を最後に追加したい
-
Access2000環境に対応するMid関...
-
ACCESS2000ディスクまたはネッ...
-
クエリの存在チェック
-
何も表示されない実行時エラー...
-
GROUP BYでエラーが発生
-
エクセルからSQLサーバー ...
-
ACCESSで作成したアプリケーシ...
-
SQLServer・ストアドプロシージ...
-
エクセルのグループボックス枠...
-
SQLServerのエラー1069について
-
SQLserverのIF文について
-
オブジェクト名 '<table>' が無...
-
oo4oのMovePreviousnメソッドに...
おすすめ情報