■レコード変更操作の基本フォーマットA
Dim db As Database
Dim tb As Recordset
Set db = CurrentDb
Set tb = db.OpenRecordset("at保健日誌備考設定")
Do Until tb.EOF
tb.Edit
tb!表示名 = ""
tb.Update
tb.MoveNext
Loop
tb.Close
※ tb.Edit ⇒ tb.AddNew で新規レコード追加
※ tb.Edit ⇒ tb.Delete でカレントレコード削除(tb.Update必要なし)
※ Set tb = Me.RecordsetClone フォームのソースレコードのクローン作成例
■レコードの全件数
件数 = DCount("*", "テーブル名") 又は、 tb.RecordCount
※項目名に"*"を使用することで全レコード件数
■条件にあったレコードの件数
件数 = DCount("項目名", "テーブル名","[年齢] > 25")
※第3パラメータにSQL文で、その条件にあったレコード件数
■検索パターンA
Dim db As Database
Dim tb As Recordset
Set db = CurrentDb
Set tb = db.OpenRecordset("at保健日誌備考設定")
If tb.Eof Then
レコードが0件の場合の処理
Else
tb.FindFirst "[性別] = '男' And [年齢] > 25"
If tb.NoMatch Then
検索できなかった場合の処理
Else
検索できたときの処理
End If
End If
tb.Close
※レコード0件でTb.FindFirstを行うとレコードへ移動できないエラーになるので、その前にtb.Eofチェックをしている
■検索パターンB
検索置 = DLookup("氏名", "生徒名簿", "[ID] = 1101)
※レコードオープンの必要なし。条件に一致する最初の1件だけを取り出したい場合など
※上記例では、「生徒名簿」テーブルの[ID]項目が1101のレコードの[氏名]項目を取り出し。
■全レコード高速削除 (削除クエリー実行による)
CurrentProject.Connection.Execute "Delete From tt編集月日"
※「tt編集月日」テーブルのレコードを全件高速削除
■関数、メソッド一覧
関数・メソッド | 動作説明 | 使用例 |
MoveFirst、MoveLast MoveNext、MovePrevious |
レコードの移動 最初、最後、次、前 |
tb.MoveNext tbのカレントレコードを次のレコードへ移動 |
Eof、Bof | レコードが終了マーク(開始マーク)かをチェック | If tb.Eof Then … もし、tbがレコードの終了マークなら… |
BookMark | レコードの位置 | tb.BookMark = tb2.BookMark |
IsNull、IsNumeric、IsDate IsEmpty |
値の形式チェック NULL,数値,日付,空 |
|
■フィールドの情報を取得する
記 述 | 説 明 |
tb.Fields(インデックス番号).Name tb.Fields(インデックス番号).Properties("name") |
フィールドの名前を取得 |
tb.Fields.Count | テーブル内のフィールド数を取得 |
tb.Fields(インデックス番号).Type | フィールドの種類を取得 10・・・テキスト 8・・・日付 3・・・整数 4・・・長整数 12・・・メモ 1・・・Yes/No 11・・・OLE |
tb.Fields(インデックス番号).Size | フィールドの長さを取得(テキスト型) |
tb.Fields(インデックス番号).DefaultValue | 既定値の取得 |
tb.Fields(インデックス番号).Properties("Description") | 説明の取得 |
※インデックス番号は、テーブル内のフィールドに0から順番に付けられた数値
■外部mdbファイルのデータを直接参照(リンクテーブルを使用しないで直接参照)
Dim Odb As DAO.Database
Dim tb As Recordset
Set Odb = OpenDatabase("C:\外部ファイル.mdb")
Set tb = Odb.OpenRecordset("外部テーブル名")
:
■外部mdbのテーブルを削除
On Error Resume Next
Dim obj As Object
Set obj = GetObject("C:\外部ファイル.mdb")
obj.Application.Visible = False
obj.DoCmd.DeleteObject acTable, "外部テーブル名"
obj.Application.Quit
Set obj = Nothing
■外部mdbのフィールドを削除
On Error Resume Next
Dim Odb As DAO.Database
Dim tbdef As TableDef
Set Odb = OpenDatabase("C:\外部ファイル.mdb")
Set tbdef = Odb.TableDefs("外部テーブル名")
tbdef.Indexes.Delete fedname
tbdef.Fields.Delete "フィールド名"
Odb.Close: Set Odb = Nothing