Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7 Professional : Access 2010)
他のmdbファイルを開かずにデータを書き換える方法
投稿日時: 17/09/13 21:41:09
投稿者: tomachan

よろしくお願いいたします。
 
他のmdbファイルを開かずにそのファイル内のデータを書き換える方法はありますか?
やりたいことは
・他mdbファイル内のテーブルA(1レコードしかない)のなかの特定の1フィールドの内容を書き換える
・他mdbファイル内にあるリンクテーブルのリンクのPATHを書き換える
 
以上の2点になります。
「開かずに」についての補足ですが、
実際は開いていたとしても開いたように見えないのであればそれでもOKです。

回答
投稿日時: 17/09/14 09:54:38
投稿者: sk

引用:
他mdbファイル内のテーブルA(1レコードしかない)のなかの
 特定の1フィールドの内容を書き換える

(標準モジュール)
--------------------------------------------------------------------
Public Sub subTest1()
On Error GoTo Err_subTest1
 
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
     
    Dim strFilePath As String
    Dim strTableName As String
    Dim strSQL As String
     
    strFilePath = "C:\FolderName\FileName.mdb"
    strTableName = "テーブル名"
     
    Set db = OpenDatabase(strFilePath)
         
    strSQL = "SELECT * FROM [" & strTableName & "]"
     
    Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
         
    With rs
        If .EOF = True Then
            MsgBox """" & strFilePath & """ のテーブル[" & strTableName & "]にはレコードがありません。", _
                   vbExclamation, _
                   "エラー"
        Else
            .Edit
            '[フィールド名]のデータ型が日付/時刻型である場合
            ![フィールド名] = Now()
            .Update
        End If
    End With
      
Exit_subTest1:
On Error Resume Next
      
    rs.Close
    Set rs = Nothing
    db.Close
    Set db = Nothing
     
    Exit Sub
     
Err_subTest1:
 
    MsgBox Err.Number & ": " & Err.Description, _
           vbCritical, _
           "実行時エラー"
 
    Resume Exit_subTest1
End Sub
--------------------------------------------------------------------
 
引用:
他mdbファイル内にあるリンクテーブルの
 リンクのPATHを書き換える

これについてはリンクテーブルの接続先である
データベース/ファイル形式によって手順が変わります。
 
他の mdb ファイルへの参照については、
上記のコードをそのまま応用なさればよろしいでしょう。

トピックに返信