テーブルの操作 |
#1 レコードを読込む
使用例
'--------------------------------------------------------------------- '概要 レコードの読込み ' ここでは、レコード数が51件ある[tbl得意先]テーブルの ' レコードをDAO・ADOで読込む '--------------------------------------------------------------------- Sub レコードの読込みDAO() ' フィールド0〜フィールド2のレコードをすべて読込む ' フィールド0:得意先コード ' フィールド1:フリガナ ' フィールド2:得意先名 Const strTbl As String = "tbl得意先" Dim dbs As Database Dim rst As DAO.Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset(strTbl) With rst Do Until .EOF 'すべてのレコードを読み込むループ Debug.Print .Fields(0), .Fields(1), .Fields(2) 'フィールド名を使用した場合 !得意先コード,!フリガナ,!得意先名 .MoveNext Loop End With rst.Close: Set rst = Nothing dbs.Close: Set dbs = Nothing End Sub <実行結果> 1 キッサタイムマシン 喫茶たいむましん ・ (省略) ・ 50 コウゲンテイ 高原亭 51 カランコロン からんころん Sub レコードの読込みADO() ' 得意先コードが[50]のフィールド0〜フィールド2のレコードを読込む ' フィールド0:得意先コード ' フィールド1:フリガナ ' フィールド2:得意先名 Const strTbl As String = "tbl得意先" Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Set cnn = CurrentProject.Connection With rst .Open strTbl, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect Do Until .EOF 'すべてのレコードを読み込むループ If .Fields(0) = 50 Then '抽出条件を設定する Debug.Print .Fields(0), .Fields(1), .Fields(2) End If .MoveNext Loop End With rst.Close cnn.Close: Set cnn = Nothing End Sub <実行結果> 50 コウゲンテイ 高原亭
#1 レコードを追加する
使用例
'--------------------------------------------------------------------- '概要 レコードを追加する ' ここでは、レコード数が51件ある[tbl得意先]テーブルに ' 新規レコードをDAO・ADOで追加する '--------------------------------------------------------------------- Sub レコードを追加するDAO() ' フィールド0:得意先コード ' フィールド1:フリガナ ' フィールド2:得意先名 Const strTbl As String = "tbl得意先" Dim dbs As Database Dim rst As DAO.Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset(strTbl) With rst .AddNew .Fields(0) = 52 .Fields(1) = "ナンデモヤ" .Fields(2) = "なんでも屋" .Update End With rst.Close: Set rst = Nothing dbs.Close: Set dbs = Nothing End Sub Sub レコードを追加するADO() ' 得意先コードが[50]のフィールド0〜フィールド2のレコードを読込む ' フィールド0:得意先コード ' フィールド1:フリガナ ' フィールド2:得意先名 Const strTbl As String = "tbl得意先" Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Set cnn = CurrentProject.Connection With rst .Open strTbl, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect .AddNew !得意先コード = 52 !フリガナ = "ナンデモヤ" !得意先名 = "なんでも屋" .Update End With rst.Close cnn.Close: Set cnn = Nothing End Sub
#1 レコードを編集する
使用例
'--------------------------------------------------------------------- '概要 レコードを編集する ' ここでは、[tbl得意先]テーブルのレコードをDAO・ADOで編集する '--------------------------------------------------------------------- Sub レコードを編集するDAO() ' フィールド0:得意先コード ' フィールド1:フリガナ ' フィールド2:得意先名 Const strTbl As String = "tbl得意先" Dim dbs As Database Dim rst As DAO.Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset(strTbl) With rst Do Until .EOF .Edit 'フリガナをすべて半角にします !フリガナ = StrConv(!フリガナ, vbNarrow) .Update .MoveNext Loop End With rst.Close: Set rst = Nothing dbs.Close: Set dbs = Nothing End Sub Sub レコードを編集するADO() ' 得意先コードが[52]のフリガナと得意先名を編集する ' 「ナンデモヤ」→「ナンデモショウテン」 ' 「なんでも屋」→「なんでも商店」 ' フィールド0:得意先コード ' フィールド1:フリガナ ' フィールド2:得意先名 Const strTbl As String = "tbl得意先" Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Set cnn = CurrentProject.Connection With rst .Open strTbl, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect Do Until .EOF If .Fields(0) = 52 Then '条件を設定する .Fields(1) = "ナンデモショウテン" .Fields(2) = "なんでも商店" .Update End If .MoveNext Loop End With rst.Close cnn.Close: Set cnn = Nothing End Sub
#1 レコードを削除する
使用例
'--------------------------------------------------------------------- '概要 レコードを削除する ' ここでは、[tbl得意先]テーブルのレコードをDAO・ADOで削除する '--------------------------------------------------------------------- Sub レコードを削除するDAO() ' 得意先コードが[52]のレコードを削除する ' フィールド0:得意先コード Const strTbl As String = "tbl得意先" Dim dbs As Database Dim rst As DAO.Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset(strTbl) With rst Do Until .EOF If .Fields(0) = 52 Then '条件を設定する .Delete End If .MoveNext Loop End With rst.Close: Set rst = Nothing dbs.Close: Set dbs = Nothing End Sub Sub レコードを削除するADO() ' 得意先コードが[52]のレコードを削除する ' フィールド0:得意先コード Const strTbl As String = "tbl得意先" Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Set cnn = CurrentProject.Connection With rst .Open strTbl, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect Do Until .EOF If .Fields(0) = 52 Then '条件を設定する .Delete End If .MoveNext Loop End With rst.Close cnn.Close: Set cnn = Nothing End Sub