過去ログ

                                Page     659
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼外部からDBを更新  レッサーパンダ 04/6/9(水) 13:32
   ┣Re:外部からDBを更新  MJ 04/6/9(水) 15:03
   ┣Re:外部からDBを更新...参考までに  クロ 04/6/9(水) 15:23
   ┗Re:外部からDBを更新  レッサーパンダ 04/6/9(水) 15:28

 ───────────────────────────────────────
 ■題名 : 外部からDBを更新
 ■名前 : レッサーパンダ
 ■日付 : 04/6/9(水) 13:32
 -------------------------------------------------------------------------
   DB名、テーブル名、項目(更新対象のキーを含む)がわかっている場合で、
その内容をDBを開かずに簡単に更新する方法はありますか?
(BATファイルでクエリを実行する感じで・・。)
実行するクエリは更新したいDBの中にはありません。

例)
 更新対象DB :D:\TEST\データ.mdb
 更新対象TBL:名簿
 キー:出席番号
 更新内容:そのレコードのキー以外(名前、性別)

 更新前
  出席番号 名前 性別
   1   AAA 男
   2   ABB 男
   3   ACC 女
   4   ADD 女

 「出席番号2番の名前をAABに、性別を女に変更する」

 更新後
  出席番号 名前 性別
   1   AAA 男
   2   AAB 女
   3   ACC 女
   4   ADD 女


できるのでしたら、この場合のBATの記述とクエリの記述を教えてください。
よろしくお願い致します。

 ───────────────────────────────────────  ■題名 : Re:外部からDBを更新  ■名前 : MJ  ■日付 : 04/6/9(水) 15:03  -------------------------------------------------------------------------
   こんにちは。

空のMDBを用意して、新規モジュールにて、
下記のようなプロシージャを記述します。
次に、AutoExecマクロのプロシージャの実行で
記述したプロシージャを指定しておき、
あとは、BATファイルにて、
このMDBを起動させるようにしては如何でしょう。

Public Function 名簿更新()

  Dim DB As DAO.Database
  
  Set DB = OpenDatabase("D:\TEST\データ.mdb")
  
  DB.Execute "UPDATE 名簿 SET 名前 = 'AAB', 性別 = '女' WHERE 出席番号 = 2", dbFailOnError
  
  DB.Close
  
  Set DB = Nothing
  
  Application.Quit
  
End Function

 ───────────────────────────────────────  ■題名 : Re:外部からDBを更新...参考までに  ■名前 : クロ  ■日付 : 04/6/9(水) 15:23  -------------------------------------------------------------------------
   WSHファイルでの処理(ADO)

テキストエディタ(メモ帳可)で以下を書いてテキストファイル名を
XXXX.vbsして下さい。

****ここから****
Dim ct,rs

Set ct = CreateObject("ADODB.Connection")
ct.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\TEST\データ.mdb"
Set rs = ct.Execute ("UPDATE 名簿 SET 名簿.名前 = '" & InputBox("変更後の名前を入力") & "', 名簿.性別 = '" & InputBox("変更後の性別を入力") & "' WHERE 出席番号=" & InputBox("出席番号を入力") & ";")

MsgBox "更新しました"

ct.close
Set ct=nothing
****ここまで****

ご参考までに

 ───────────────────────────────────────  ■題名 : Re:外部からDBを更新  ■名前 : レッサーパンダ  ■日付 : 04/6/9(水) 15:28  -------------------------------------------------------------------------
   MJさん、クロさん

ありがとうございました。
参考にさせていただきます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 659