![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ExcelVBAよりAccessデータの追記は、AddNewを使用してできたのですが、単純な更新ができません。
strWhere = "Select * From 集計テーブル Where [フィールド1]='001'"
Set dbWS = DBEngine.Workspaces(0)
Set dbWB = dbWS.OpenDatabase("C:\対象MDB.mdb) 'データベースを呼び出す
Set dbRes = dbWB.OpenRecordset(strWhere, dbOpenDynaset)
上記はそもそも更新ステートメントがありません。どのように書けばよいのでしょうか?どうかアドバイスお願いします。
No.2ベストアンサー
- 回答日時:
>Editメソッドとは、何でしょうか?
Editメソッドはレコードを編集可能な状態にするメソッドです。
>単に「dbRes.Edit」を書けばよいのでしょうか?
'以降は説明として見てください。と言う事で
dbRes.Edit
で良いです。
>更新させる処理とは、SQL文を書くのでしょうか
ここはフィールドをセットします。
補足から参照すればフィールド2='aaa'であれば
dbRes.Edit
dbRes!フィールド2 = "aaa"
dbRes.Update
となります。
strWhereでセットしたSQLで複数のレコードが抽出される場合はEOFプロパティを使って先頭レコードから最後のレコードを対象としてLoopさせます。
Do Until rs.EOF
dbRes.Edit
dbRes!フィールド2 = "aaa"
dbRes.Update
dbRes.MoveNext
Loop
No.3
- 回答日時:
DAO Edit UpdateでWEB照会してみてください。
沢山例も出てきます。(16万?)
http://msdn.microsoft.com/library/ja/default.asp …
「DAO では Edit メソッドを使って Recordset オブジェクトを編集可能に する必要があったのに対し、ADO では編集モードを明示的に指定する必要がないことです。」
No.1
- 回答日時:
最近はADOを使ってるのでDAOは書かなくなりましたが・・
下記ではどうでしょうか。
Dim dbWS As DAO.Workspace
Dim dbWB As DAO.Database
Dim dbRes As DAO.Recordset
Dim strWhere As String
strWhere = "Select * From 集計テーブル Where [フィールド1]='001'"
Set dbWB = dbWB.OpenDatabase("C:\対象MDB.mdb)
Set dbRes = dbWB.OpenRecordset(strWhere, dbOpenDynaset)
dbRes.Edit 'Editメソッドを記述し編集可能な状態に設定
'更新させる処理
dbRes.Update 'Updateメソッドを記述して編集内容を更新
dbRes.Close: Set dbRes = Nothing '後処理
dbWB.Close: Set dbWB = Nothing
記述間違ってたらゴメンなさい。
この回答への補足
早速の回答ありがとうございます。
Editメソッドとは、何でしょうか?
単に「dbRes.Edit」を書けばよいのでしょうか?
また、更新させる処理とは、SQL文を書くのでしょうか?
具体的には、「UPDATE 集計テーブル SET フィールド2='aaa'」など?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Oracle SQL update方法 2 2022/06/22 14:07
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
Range クラスのAutoFitプロパテ...
-
Refreshメソッドの使い方
-
メソッドの英単語の意味について
-
java mainメソッドの正常・異常...
-
配列のメソッド
-
InetAddress#getHostNameについ...
-
javaで、引数が文字列型、戻り...
-
ImageMagickの説明書
-
DataGridViewの再描画。
-
FEM解析の読み方は?
-
Java print()とprintf()について
-
ExcelVBA Findメソッドで検索の...
-
for文(拡張)内の変数(ローカ...
-
mainメソッドのthrows節で設定...
-
C#.net Define文
-
マインスイーパの作り方
-
順番はある?
-
MVCモデルでのサーブレットのや...
-
DataGridViewでセルクリックイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
onClickで関数呼出し後に、結果...
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
コマンドプロンプト実行後に画...
-
Refreshメソッドの使い方
-
エクセルVBAにおけるON TIMEメ...
-
boolean型のフィールドとゲッタ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
配列のメソッド
-
【sendkeysメソッドが動かずに...
-
Excel VBA でExcelを終了したい...
-
VB.netで、シリアル通信のタイ...
-
worksheets & rows メソッドは...
-
Application.Wait の参照設定
-
(String args[])というメッソ...
おすすめ情報