Excel VBA + ADO 複数のクエリーの結果をレコードセットに取得

Dim Cn As ADODB.Connection

Sub Test()

    Dim rst As New ADODb.Recordset
    Dim cmd As ADODb.Command
    Set cmd = New ADODb.Command
    cmd.ActiveConnection = Cn
    cmd.CommandTimeout = 30

    ‘複数のSELECT文
    cmd.CommandText = “SELECT * FROM TableA; SELECT * FROM TableB
    cmd.CommandType = adCmdText

    ‘実行
    rst.Open cmd, , adOpenForwardOnly, adLockReadOnly
    Set cmd = Nothing

    ‘最初のSELECT文の結果
    Sheet1.Cells(1, 1).CopyFromRecordset rst

    ‘次のレコードセットへ
    Set rst = rst.NextRecordset()

     ‘2番目のSELECT文の結果
    Sheet2.Cells(1, 1).CopyFromRecordset rst

    rst.Close
    Set rst = Nothing

End Sub

VB2005 IPアドレス取得

IPアドレスは今まで,
System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList(0)
で取得できていたが最近のPCはいろいろなIPアドレスが取れてしまうので
これではダメだ.
リストの中からIP4のアドレスを選択して取らなければいけない.

例:

    Private Sub GetIPAddreess()

        ‘ホスト名を取得
        Dim HostName As String = System.Net.Dns.GetHostName

        ‘IPアドレス等の情報を取得
        Dim HostInfo As Net.IPHostEntry = System.Net.Dns.GetHostEntry(HostName)

        ‘複数取れるのでループして表示
        For i As Integer = 0 To HostInfo.AddressList.Length – 1

            Dim str1 As String = i.ToString + vbCrLf

            ‘IPアドレス
            Dim Address As Net.IPAddress = HostInfo.AddressList(i)

            ‘AddressFamilyで区別
            Select Case Address.AddressFamily
                Case Net.Sockets.AddressFamily.InterNetwork
                    ‘IP4 (環境によってIP4のアドレスが複数取れる場合があるので注意)
                    str1 += Address.ToString
                    MessageBox.Show(str1, “IPアドレス(IP4)”, MessageBoxButtons.OK)
                Case Net.Sockets.AddressFamily.InterNetworkV6
                    ‘IP6
                    str1 += “ScopeId = ” + Address.ScopeId.ToString
                    str1 += “, ” + Address.ToString
                    MessageBox.Show(str1, “IPアドレス(IP6)”, MessageBoxButtons.OK)
                Case Else
                    ‘その他
                    str1 += “AddressFamily = ” + Address.AddressFamily.ToString
                    str1 += “, ” + Address.ToString
                    MessageBox.Show(str1, “アドレス”, MessageBoxButtons.OK)
            End Select

        Next

    End Sub

VB2005 DataTableのコピー

    Sub dtコピー()

        Dim dt As New DataTable
        dt.Columns.Add(“ID”, GetType(Integer))
        dt.Columns.Add(“名称”, GetType(String))

        dt.Rows.Add(0, “A”)
        dt.Rows.Add(1, “B”)
        dt.Rows.Add(2, “C”)

        ‘DataTable全体(構造と中身のデーター)をコピー
        Dim dt1 As DataTable
        dt1 = dt.Copy

       ‘DataTableの構造のみコピー
        Dim dt2 As DataTable
        dt2 = dt.Clone
        ‘1行ずつデーターをコピー
        For i As Integer = 0 To dt.Rows.Count – 1
            dt2.ImportRow(dt.Rows(i))
        Next

    End Sub

参考:
DataTable.Copy メソッド (MSDN)
DataTable.Clone メソッド (MSDN)
Visual Basic .NET を使用して DataTable 間で DataRow をコピーする方法 (MSDN)