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

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とした浮動小数点型が返ります。

30,140 views

VBA DAOでレコード件数の取得

DAOでレコード件数を取得するには、一度MoveLastメソッドを実行しないといけないようです。
※DAO Object Libraryは参照なし

Dim rst As Object

Set rst = Me.Recordset

rst.MoveLast
MsgBox "レコード件数:" & rst.RecordCount

Set rst = Nothing
8,977 views

巡回冗長検査CRCエラー

フロッピーからデータをコピーしようとすると、巡回冗長検査CRCエラーというエラーが発生した。

修復するには、マイコンピュータで3.5インチFDを右クリックしプロパティを表示
ツールのエラーチェックで「ファイルシステムエラーを自動的に修復する」「不良セクタをスキャンし、回復する」の
両方にチェックを入れて実行

終了したらコピーできるようになりました。

原因としてはディスクの読み取り不良や誤り制御の失敗、
ディスクの傷や汚れによる読み取り不良、ファイルの焼き込みミスやコピープロテクト、空き領域の不足などがあるようです。

5,125 views

ACCESS VBA テーブルの削除

テーブルの一覧を取得し、削除します。
※DAO参照はなしで実行できるようにしています。

Dim tbls As Object 'DAO.TableDefs
Dim tbl  As Object 'DAO.TableDef

'テーブル一覧取得
Set tbls = CurrentDb.TableDefs

Dim DelTables As Collection

Set DelTables = New Collection

For Each tbl In tbls

	'「MSys」で始まるテーブルはシステムテーブルなので省きます
    If Not tbl.Name Like "MSys*" Then
        DelTables.Add tbl.Name
    End If

Next

For i = 1 To DelTables.Count
    'テーブル削除
    tbls.Delete (DelTables(i))
Next

MsgBox "削除件数=" & DelTables.Count
10,136 views

nslookup

nslookup [set [command option]] [ドメイン名(正引き)またはIPアドレス(逆引き)] [DNSサーバー名]

オプションなしで実行すると対話モードになります。

検索レコード種別を入力

set type=soa
set type=mx
set type=ns
set type=a

ドメインを入力

domain.jp

--[結果が出力されます]

対話モードを終了する

exit
2,899 views