VBAで複数のSQLite内DBを連結させたいお年頃

VBAからSQLiteにアクセスしたいお年頃から3年経ってますけど、未だにVBAとSQLiteいじっています。
いじっている中で、SQLiteファイルを用途ごとに幾つかのファイルに別けているんですが、仕様変更とかすると、このファイルを別けてしまったTableを連結させたくなりました。
「設計が悪いんじゃ」っていうツッコミはいらぬ。
当たり前に出来るわけないと先入観を持ってたんですが、調べたら結構あっさりできてやんの。
ちなみに2ファイル、どちらも同じパスワードで暗号化してあります。

Sub test()
    Dim objConn As New vbRichClient5.cConnection
    Dim objRecSet As vbRichClient5.cRecordset
    Dim result As String: result = "とれたデータ" & vbCrLf
    Dim i As Long

    If Not objConn.OpenDB("dbパス", "必要ならパスワード") Then
        Err.Raise 1, "", "objConn OpenDB Err"
    End If
    
    Call objConn.Execute("ATTACH DATABASE '連結したいdbパス' AS ATTACHDB")
    Set objRecSet = objConn.OpenRecordset("SELECT ORG.NAME, AT.KEY " _
        & "FROM OpenしたDBのテーブル名 ORG " _
        & "INNER JOIN ATTACHDB.ATTACHしたいTable名 AT " _
        & "WHERE ORG.ID = AT.ID;")
    Do While Not objRecSet.EOF
        For i = 0 To objRecSet.Fields.count - 1
            If i <> 0 Then
                result = result & " / "
            End If
            result = result & objRecSet.Fields(i).Name _
                        & "=" & objRecSet.Fields(i).value
        Next i
        result = result & vbCrLf
        objRecSet.MoveNext
    Loop

    Debug.Print result
    GoTo ExitFunc
ErrFunc:
    MsgBox Err.Description

ExitFunc:
    Set objConn = Nothing
    Set objRecSet = Nothing
End Sub

ただパフォーマンスはどうなのってのはまだ未調査…。


他にもニッチなIT関連要素をまとめていますので、よければ一覧記事もご覧ください。

返信を残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)