テーブル操作 – Linux Home Server http://www.now.mfnet.ne.jp/~ozachin/wordpress Long Road Linux Sat, 18 Jan 2020 05:31:53 +0000 ja hourly 1 https://wordpress.org/?v=5.9.3 Access VBA (3) http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=187 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=187#respond Fri, 03 Jan 2020 10:54:43 +0000 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=187 read more]]> 実際の使い勝手は抜きにしてある。コマンドボタンに1つの機能を持たせた場合の コード例である。実際には、ボタンが複数あれば押し間違えが起きたりするし、 操作が何段階にもなるのは面倒である。今回、それらは無視してある。
機能を実現するためだけのコードに限定してある。

今回は、データ削除である。
流れとしては、前回とほぼ同様、主キーを指定し呼び出し、確認後削除ボタンを クリックしてデータを削除する。
余計な機能は全く付け加えていない。
削除確認もエラー処理もない。
呼び出し(cmd_Edit)コードは前回と同じなので、
削除(cmd_Delete)のコードだけ示す。

Private Sub cmd_Delete_Click()

 Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tbl_Sample1")
    
    rs.Index = "PrimaryKey"
    rs.Seek "=", Me.txt_Id
    
    rs.Delete
    
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing

End Sub

基本的データ操作を確認したところで、次回からは実際の学校現場での使用方法を見ていくことにしたい。

成績処理第一回目へ

]]>
http://www.now.mfnet.ne.jp/~ozachin/wordpress/?feed=rss2&p=187 0
Access VBA (2) http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=179 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=179#respond Fri, 03 Jan 2020 05:40:36 +0000 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=179 read more]]> 今回の連載は自身の復習・確認のためでもあり、最終目標は学校現場で役に立つ内容を掲載しようと思う。Accessの基本的な操作については触れていない。また、Versionも2010と古い。
2回目は、データの変更である。
主キーを指定し呼び出し変更した内容を登録する。
コマンドボタンは、
呼び出し(cmd_Edit)と
変更登録(cmd_Update)の2つとする。

主キーを指定し、データを呼び出すことが重要なところ。
どのデータを画面に表示させるかは必要に応じて行う。今回の例では全てを表示している。

余分な機能は省いてある。実際の場面では、訂正の確認メッセージや完了のメッセージなどユーザーインターフェースを工夫する必要があることは当然だ。

Private Sub cmd_Edit_Click()
 
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tbl_Sample1")
 
    rs.Index = "PrimaryKey"
    rs.Seek "=", Me.txt_Id
    
    Me.txt_Name = rs!fld_Name
    Me.txt_Data1 = rs!fld_Data1
    Me.txt_Data2 = rs!fld_Data2
    Me.txt_Data3 = rs!fld_Data3

    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing

End Sub


Private Sub cmd_Update_Click()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tbl_Sample1")
    
    rs.Index = "PrimaryKey"
    rs.Seek "=", Me.txt_Id
    
    rs.Edit
    
    rs!fld_Name = txt_Name
    rs!fld_Data1 = txt_Data1
    rs!fld_Data2 = txt_Data2
    rs!fld_Data3 = txt_Data3

    rs.Update
    
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing

End Sub

3回目へ

]]>
http://www.now.mfnet.ne.jp/~ozachin/wordpress/?feed=rss2&p=179 0
Access VBA (1) http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=93 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=93#respond Fri, 03 Jan 2020 01:29:21 +0000 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=93 read more]]> 非連結フォームからデータ操作を行う。1回目は新規データ登録。
テーブル定義と非連結フォームの画面サンプルを示す。
(ただし、Access2010にて動作確認)

Private Sub cmd_Add_Click()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
        
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tbl_Sample1")
        
        rs.AddNew
        
        rs!fld_Id = txt_Id
        rs!fld_Name = txt_Name
        rs!fld_Data1 = txt_Data1
        rs!fld_Data2 = txt_Data2
        rs!fld_Data3 = txt_Data3
        
        rs.Update

'----見やすくするための処理----'
'---- 実際の処理には無関係-----'
        txt_Id = ""
        txt_Name = ""
        txt_Data1 = ""
        txt_Data2 = ""
        txt_Data3 = ""
 '------------ -----------------'
        
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing
    
End Sub

2回目へ

]]>
http://www.now.mfnet.ne.jp/~ozachin/wordpress/?feed=rss2&p=93 0