カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

テーブルの不一致データ参照

テーブルAにあってテーブルBにないデータを見つけたいとき、
ACCESSでいうところの「不一致クエリ」を使います。

select TABLE_A.* from TABLE_A 
left join TABLE_B on TABLE_A.ID = TABLE_B.ID 
where (TABLE_B.ID Is Null);
4,780 views

FileSystemObjectを利用してファイルをコピー

Scripting.FileSystemObjectを利用してファイルをコピーする方法

Dim fso As Object

Set fso = CreateObject("Scripting.FileSystemObject")

'ファイルをコピー
fso.CopyFile [コピー元ファイル], _
    [コピー先ファイル], _
    [上書きフラグ(Trueで上書き:省略可)]

'フォルダーをコピー
fso.CopyFolder [コピー元フォルダー], _
    [コピー先フォルダー], _
    [上書きフラグ(Trueで上書き:省略可)]

Set fso = Nothing
3,491 views

Excelオブジェクトを使用してフリガナ入力

ACCESSからVBAでフリガナを自動入力します。

Dim xlObj As Object

Set xlObj = CreateObject("Excel.Application")

Hurigana = xlObj.GetPhonetic("文字列")

Set xlObj = Nothing

ちなみにExcelだと、

Phonetic("文字列")

だけでできるようです。

2,681 views

ACCESSからExcelファイルが開いているか調べる

ACCESSからオートメーションでExcelを開き、WorkbooksReadOnlyプロパティを取得して現在開かれているかどうかを判別します。

まずは変数を宣言

Dim xlApp  As Object
Dim xlBook As Object
Dim FileName As String

ファイルを指定します。
Environ("USERPROFILE")はWindowsの環境変数でC:\Users\ユーザー名というパスを返します。

FileName = Environ("USERPROFILE") & "\デスクトップ\sample.xls"

Excelのオートメーションオブジェクトを作成します。

Set xlApp   = CreateObject("Excel.Application")
Set xlBook  = xlApp.Workbooks.Open(FileName)

開かれたワークブックのReadOnlyプロパティがtrueなら誰かがそのファイルを開いている、ということになります。

If xlBook.ReadOnly Then
    MsgBox "開いています。"
Else
    MsgBox "開いていません。"
End If

ワークブックを閉じてExcelを終了します。

xlBook.Close
xlApp.Application.Quit

最後にオブジェクトの破棄も忘れずに

Set xlBook = Nothing
Set xlApp = Nothing
36,973 views

VBA DAOでカレントレコードの位置を取得・設定する

帳票フォームでカレントレコードの位置を取得・設定できます。
レコードを削除してその位置に戻りたい場合などに便利。

Dim rst As Object
Dim i As Integer

Set rst = Me.Recordset

'カレントレコードの位置を変数に代入(返り値:長整数型)
i = rst.AbsolutePosition

'カレントレコードを1つ先に移動させる
rst.AbsolutePosition = i + 1

Set rst = Nothing

相対位置を取得するPercentPositionというプロパティもあります。
この場合、全体を100とした浮動小数点型が返ります。

29,889 views