tag:crieit.net,2005:https://crieit.net/tags/Access/feed 「Access」の記事 - Crieit Crieitでタグ「Access」に投稿された最近の記事 2021-12-08T15:47:41+09:00 https://crieit.net/tags/Access/feed tag:crieit.net,2005:PublicArticle/17837 2021-12-08T15:36:31+09:00 2021-12-08T15:47:41+09:00 https://crieit.net/posts/Access-VBA Access基本操作の次は、模擬問題(総合演習)とVBAが待っている。 <p><a href="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461b05012c09b2.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461b05012c09b2.jpg?mw=700" alt="image" /></a></p> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4865103236/ref=cm_sw_em_r_mt_dp_YGXF681H83ZKYNYKZCT8">Microsoft Office Specialist Microsoft Accsess 2016 対策テキスト&問題集 (よくわかるマスター)</a></p> <p>という本を「2020年5月」にAmazonで購入していたので、進めている。</p> <p>12月4日から8日までかけて(1日1時間程度、8日だけ2時間ちょっと)ほぼ終わった。</p> <p>時間は今日以外は測っていたわけではなくて<br /> Accessファイルは開くと上書き保存されるのでそれで見て、<br /> せっかくだからとスマホアプリ(Studyplus)に記録をつけで判明した。合計6時間。</p> <p>ほぼ終わったっていうか最後に大きな模擬問題が待ち構えていて、<br /> その手前までほぼ終わった。</p> <p>しばらく前に模擬問題をやろうとしたら、全然時間も足りなくて、<br /> 頭がハテナマークでいっぱいになったけど。</p> <p>5日間で駆け抜けたはずなので、基本操作はあまり忘れていないはず。。。</p> <p>なのだけど。</p> <p>そもそも。</p> <p>別に、Accessの操作ができるようになることがゴールではなくて。</p> <p>もう次にこの本が待っている。↓ 5日に届いてやっとさっき開封した。</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4297107007/ref=cm_sw_r_tw_dp_MFXX0YJ99PKEWJP2YPG1?_encoding=UTF8&psc=1">Access VBA 実践マスターガイド~仕事の現場で即使える 今村 ゆうこ </a></p> <p>楽しみ楽しみ。</p> <p>٩(ˊᗜˋ*)</p> Hata tag:crieit.net,2005:PublicArticle/17825 2021-12-06T07:35:52+09:00 2021-12-06T07:38:02+09:00 https://crieit.net/posts/Access-SQL-JOIN AccessをやりながらSQLもやる。「JOIN」 <p><a href="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461ad3eb65a82f.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461ad3eb65a82f.jpg?mw=700" alt="image" /></a><br /> 今の仕事がいやだというモチベーションによって、<br /> いまだかつてない熱量でAccessとSQLに本気で取り組んでいる。(大袈裟)</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4865103236/ref=cm_sw_em_r_mt_dp_YGXF681H83ZKYNYKZCT8">Microsoft Office Specialist Microsoft Accsess 2016 対策テキスト&問題集 (よくわかるマスター)</a></p> <p>という本を「2020年5月」にAmazonで購入していたらしい。</p> <p>途中まで進めていたのだけど、最近、最初からせっせとやり直ししている。</p> <p>前に作ったテンプレートを発見したが、日付は1年半前(2020年6月)だった。</p> <p>テーブルの章が終わってクエリに突入した。</p> <p>それで、この前紹介したYouTubeのおかげで、<br /> AccessでのSQLの表示の仕方がわかったので、表示してみたら、「INNER JOIN」と書いてある。</p> <p><a href="https://crieit.now.sh/upload_images/0aef939e06a11cf7d6151d4356db135961ad3b7e8dcde.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0aef939e06a11cf7d6151d4356db135961ad3b7e8dcde.png?mw=700" alt="image" /></a></p> <p>知ってるけど知らない。(見たことあるけど覚えてない)</p> <p>調べる。</p> <p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/ngron/items/db4947fb0551f21321c0">【INNER JOIN, LEFT JOIN , RIGHT JOIN】テーブル結合の挙動をまとめてみた【SQL】</a></p> <p>両方ともの表にないと表示されないのがINNER JOIN。</p> <p>他のもまとめて覚えよう。</p> <p>Access本の次の課題のSQL文を見たら「INNER JOIN」が何個もあって、気が遠くなった。<br /> 自動生成されているからこうなっているのか、それともこんな見た目が複雑な結合を書くのかな。<br /> (どこが区切りなのか分かりづらい)</p> <p>本の課題自体は、すでに出来上がっているものに一部の操作を加える手順が書いてあるので、<br /> 課題だけをやるならなんの支障もないのだが。</p> <p>まあ(Accessは)クエリが山場だ・・・。</p> <p>でもさらっとやって、あとで見直そう。<br /> 繰り返した方が記憶に定着するだろうし、進んでる気分になれるし。</p> <p>それにこんなところでてこずっている場合ではない。<br /> 総合演習問題が解けないと意味がない。</p> <p>パソコンを開けない時は本を開いている。<br /> <a target="_blank" rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4295005096/ref=cm_sw_r_tw_dp_RR2VJ8KZCNX93YGSEEFC?_encoding=UTF8&psc=1">スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリわかる入門シリーズ) 中山清喬 </a></p> <p>6章の「集計とグループ化」まで読んだ。JOINは8章に出てくるらしい。</p> <p>この本も前に見ているはずだけど、すっきりさっぱり記憶にない。</p> <p>がんばる。</p> Hata tag:crieit.net,2005:PublicArticle/17811 2021-12-03T08:41:57+09:00 2021-12-18T06:53:51+09:00 https://crieit.net/posts/Access-61a959c5dd610 Accessをやるぉ「メンサ会員 本気のACCESS入門講座!」 <p>以前、</p> <p>Excel VBAの話を書いていました</p> <p><a href="https://crieit.net/users/33hata33">私の記事一覧</a></p> <p>が、</p> <p>諸事情により(別で記載)</p> <p><strong>Access もっとがっつりやったるで!</strong></p> <p><strong>SQL もやったるで!!</strong></p> <p>と思い立ったので、がっつりしっかり勉強始めます(宣言)。</p> <hr /> <p><del>ちなみに「やるぉ」は「やるぞ」の入力に失敗しただけでs</del></p> <p><a href="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461a956680fdd8.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3a8a3aeb635ac4a18450abf585db9fb461a956680fdd8.jpg?mw=700" alt="image" /></a></p> <p>手始めに、</p> <p>1:25:29 もある動画を見ました。これとても良い動画です。<br /> 話しているのは女性です。聞きやすいです。</p> <p><a target="_blank" rel="nofollow noopener" href="https://youtu.be/8oyNsiqwCZ8">【Excel中級者向け】メンサ会員 本気のACCESS入門講座!理解してアクセスを使う データベースから学ぼう・Accessとは・テーブル設計・主キー・SQL・クエリ・リレーションシップ・フォーム</a></p> <div class="iframe-wrapper"><iframe width="560" height="315" src="https://www.youtube.com/embed/8oyNsiqwCZ8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> <p>試しに見てみましたが、<br /> YouTube、想像以上に良いですねー。<br /> 概要を掴んで流れを把握するにはとても。</p> <p>というか前半は、知ってるよーという内容もあるので気を抜いて見つつ、<br /> しっかり見て学ぶ部分もありました。</p> <p>前に変な表示になって直せなかったのは、<br /> この設定直せばよかったのかとか、そういうことも知れました。<br /> (タブ表示じゃなくなって、直せなくなってた。なんだこの変な枠は?と思ってた。)</p> <p>この動画を見るまで、<br /> AccessのSQL文ってどこに書くのかも知らなかったのですが、</p> <p>さらに知りたいのはAccess VBAってどこからどう使うの?という点なので、<br /> さらに勉強していこうと思います(宣言)。</p> <hr /> <hr /> <p>Markdown、いまだに慣れません。いつもテキトーにやってるからですね...<br /> 見辛くてスミマセン...m(._.)m</p> <hr /> <p>ところで(広告に表示されていた)「中高年・・・」といえば彦摩呂を思い出すのですが彦摩呂じゃなくて、きみまろか、、</p> Hata tag:crieit.net,2005:PublicArticle/15376 2019-09-04T09:46:55+09:00 2019-09-04T09:46:55+09:00 https://crieit.net/posts/C-Access 【C#】Accessデータベースでデータを追加・更新・削除してみる <p>先日、データの取得までやったので<br /> さくっと追加・更新・削除もついでにやってみました。<br /> (だいぶ簡単にですが)</p> <p>プログラムは前回のものを流用しています。</p> <p><a target="_blank" rel="nofollow noopener" href="https://www.doraxdora.com/blog/2018/09/08/post-5965/" target="_blank" rel="noopener" data-blogcard="1">【C#】Microsoft Access Driver でAccessデータベースからデータを取得</a></p> <h2 id="画面の修正"><a href="#%E7%94%BB%E9%9D%A2%E3%81%AE%E4%BF%AE%E6%AD%A3">画面の修正</a></h2> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess2_000.jpg" alt="画面の修正" /></p> <p>画面に追加・更新・削除ボタンを新設します。</p> <h2 id="プログラム"><a href="#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0">プログラム</a></h2> <p>Form1.cs</p> <pre><code>using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.Odbc; namespace SampleAccessDatabase { public partial class Form1 : Form { /// <summary> /// 接続文字列 /// </summary> private static string CONNECTION_STRING = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:\Sample.accdb; Uid=; Pwd =; "; /// <summary> /// 起動時の処理. /// </summary> public Form1() { InitializeComponent(); // DataGridViewの設定 dataGridView1.AutoGenerateColumns = false; dataGridView1.Columns.Add("No", "No"); dataGridView1.Columns.Add("Name", "名前"); dataGridView1.Columns.Add("Sex", "性別"); dataGridView1.Columns.Add("Age", "年齢"); dataGridView1.Columns.Add("KbnCd", "種別"); dataGridView1.Columns.Add("Favorite", "好物"); dataGridView1.Columns[0].DataPropertyName = "No"; dataGridView1.Columns[1].DataPropertyName = "Name"; dataGridView1.Columns[2].DataPropertyName = "Sex"; dataGridView1.Columns[3].DataPropertyName = "Age"; dataGridView1.Columns[4].DataPropertyName = "KbnCd"; dataGridView1.Columns[5].DataPropertyName = "Favorite"; dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.Automatic; // データ検索 search(); } /// <summary> /// データを検索、表示します. /// </summary> private void search() { // データ取得 DataTable dt = new DataTable(); using (OdbcConnection con = new OdbcConnection(CONNECTION_STRING)) { con.Open(); string sql = "SELECT * FROM TBLCAT"; using (OdbcCommand cmd = new OdbcCommand(sql, con)) { using (OdbcDataAdapter adapter = new OdbcDataAdapter(cmd)) { adapter.Fill(dt); } } } dataGridView1.DataSource = dt; dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending); } /// <summary> /// 追加ボタンクリックイベント. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_add_Click(object sender, EventArgs e) { using (OdbcConnection con = new OdbcConnection(CONNECTION_STRING)) { con.Open(); string sql = "INSERT INTO TBLCAT VALUES(10, '5', 'こなつ', '&#x2640;', '6', '03', '布団')"; using (OdbcCommand cmd = new OdbcCommand(sql, con)) { int ret = cmd.ExecuteNonQuery(); if (ret != 1) { MessageBox.Show("登録に失敗しました。"); } } } // 再検索 search(); } /// <summary> /// 更新ボタンクリックイベント. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_upd_Click(object sender, EventArgs e) { using (OdbcConnection con = new OdbcConnection(CONNECTION_STRING)) { con.Open(); string sql = "UPDATE TBLCAT SET FAVORITE = 'CIAOちゅ0る' WHERE NAME = 'りく'"; using (OdbcCommand cmd = new OdbcCommand(sql, con)) { int ret = cmd.ExecuteNonQuery(); if (ret != 1) { MessageBox.Show("更新に失敗しました。"); } } } // 再検索 search(); } /// <summary> /// 削除ボタンクリックイベント. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_del_Click(object sender, EventArgs e) { using (OdbcConnection con = new OdbcConnection(CONNECTION_STRING)) { con.Open(); string sql = "DELETE FROM TBLCAT WHERE NAME = 'こなつ'"; using (OdbcCommand cmd = new OdbcCommand(sql, con)) { int ret = cmd.ExecuteNonQuery(); if (ret != 1) { MessageBox.Show("削除に失敗しました。"); } } } // 再検索 search(); } } } </code></pre> <p>データ操作後、再検索できるように検索メソッドに処理を分離し、<br /> 新設したボタンそれぞれのクリックイベントにてデータ操作を実行します。</p> <h2 id="起動してみる"><a href="#%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B">起動してみる</a></h2> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess2_001.jpg" alt="初期表示" /></p> <p>追加ボタンをクリックします。</p> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess2_002.jpg" alt="レコード追加" /></p> <p>こなつが追加されました。</p> <p>続いて更新ボタンをクリックします。</p> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess2_003.jpg" alt="データ更新" /></p> <p>りくの好物が更新されました。</p> <p>続いて削除ボタンをクリックします。</p> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess2_004.jpg" alt="データ削除" /></p> <p>こなつが削除されました。</p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>Access編はこのあたりで終了しそうです。<br /> 次回はまだ特に決めていませんが、また何か新しいことを試してみたいですね。</p> <p>ではでは。</p> doraxdora tag:crieit.net,2005:PublicArticle/15372 2019-09-03T09:55:41+09:00 2019-09-03T09:55:41+09:00 https://crieit.net/posts/C-Microsoft-Access-Driver-Access 【C#】Microsoft Access Driver でAccessデータベースからデータを取得 <p>昨日に引き続き?C#の話し。</p> <p>未だに、Accessを使ったツールやシステムがあって、個人的にはもうやめようよと思いながら、データを取得するサンプルをやってみました。<br /> (今では他にも素晴らしいDBがありますからね。)</p> <h2 id="ダウンロード"><a href="#%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">ダウンロード</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.microsoft.com/ja-jp/download/details.aspx?id=13255" target="_blank" rel="noopener">ダウンロードサイト</a></p> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess1_000.jpg" alt="ダウンロードサイト" /></p> <p>ダウンロードボタンをクリックします。</p> <h2 id="インストール"><a href="#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">インストール</a></h2> <p>ダウンロードした「AccessDatabaseEngine.exe」または「AccessDatabaseEngine_X64.exe」を実行します。</p> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess1_001.jpg" alt="インストールウィザード" /></p> <p>インストールウィザード画面が表示されるので「次へ」ボタンをクリックします。</p> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess1_002.jpg" alt="使用許諾契約同意画面" /></p> <p>使用許諾契約同意画面が表示されるので、「同意します」にチェックをして「次へ」ボタンをクリックします。</p> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess1_003.jpg" alt="インストール先指定画面" /></p> <p>インストール先指定画面が表示されるので、特に指定がなければそのまま「インストール」ボタンをクリックします。</p> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess1_004.jpg" alt="インストール画面" /></p> <p>インストール中。しばしお待ちを。</p> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess1_005.jpg" alt="完了画面" /></p> <p>完了画面が表示されるので「OK」ボタンをクリックします。</p> <h2 id="プロジェクトの作成"><a href="#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90">プロジェクトの作成</a></h2> <p>VisualStudio2017で新しく WindowsForm プロジェクトを作成します。<br /> 今回は「SampleAccessDatabase」としました。</p> <h2 id="データベースの作成"><a href="#%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E4%BD%9C%E6%88%90">データベースの作成</a></h2> <p>いつもサンプルで使っている、猫のデータをサンプルで使用します。<br /> Access Database は、Windows画面上で右クリック>「新規作成」>「Microsoft Access Database」より、手動で作成してください。</p> <h3 id="テーブル"><a href="#%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB">テーブル</a></h3> <p>列の定義は次の通り。</p> <p>MSTKIND</p> <pre><code>区分コード 区分名 </code></pre> <p>TBLCAT</p> <pre><code>番号 名前 性別 年齢 種別 好物 </code></pre> <h3 id="データ"><a href="#%E3%83%87%E3%83%BC%E3%82%BF">データ</a></h3> <p>MSTKIND</p> <p>区分コード<br /> 区分名</p> <p>01<br /> キジトラ</p> <p>02<br /> 長毛種(不明</p> <p>03<br /> ミケ(っぽい</p> <p>04<br /> サビ</p> <p>09<br /> その他</p> <p>TBLCAT</p> <p>No<br /> 名前<br /> 性別<br /> 年齢<br /> 区分コード<br /> 好物</p> <p>1<br /> そら<br /> ♂<br /> 6<br /> 01<br /> 犬の人形</p> <p>2<br /> りく<br /> ♂<br /> 5<br /> 02<br /> 人間</p> <p>3<br /> うみ<br /> ♀<br /> 4<br /> 03<br /> 高級ウェットフード</p> <p>4<br /> こうめ<br /> ♀<br /> 2<br /> 04<br /> 横取りフード</p> <h2 id="画面の作成"><a href="#%E7%94%BB%E9%9D%A2%E3%81%AE%E4%BD%9C%E6%88%90">画面の作成</a></h2> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess1_006.jpg" alt="画面" /></p> <p>フォームにデータグリッドビューのみを配置したシンプルな画面を作成します。</p> <h2 id="プログラム"><a href="#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0">プログラム</a></h2> <p>起動時にデータを取得して表示するようにします。</p> <p>Form1.cs</p> <pre><code>using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.Odbc; namespace SampleAccessDatabase { public partial class Form1 : Form { public Form1() { InitializeComponent(); // DataGridViewの設定 dataGridView1.AutoGenerateColumns = false; dataGridView1.Columns.Add("No", "No"); dataGridView1.Columns.Add("Name", "名前"); dataGridView1.Columns.Add("Sex", "性別"); dataGridView1.Columns.Add("Age", "年齢"); dataGridView1.Columns.Add("KbnCd", "種別"); dataGridView1.Columns.Add("Favorite", "好物"); dataGridView1.Columns[0].DataPropertyName = "No"; dataGridView1.Columns[1].DataPropertyName = "Name"; dataGridView1.Columns[2].DataPropertyName = "Sex"; dataGridView1.Columns[3].DataPropertyName = "Age"; dataGridView1.Columns[4].DataPropertyName = "KbnCd"; dataGridView1.Columns[5].DataPropertyName = "Favorite"; dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.Automatic; // データ取得 DataTable dt = new DataTable(); string connectionString = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:\Sample.accdb; Uid=; Pwd =; "; using (OdbcConnection con = new OdbcConnection(connectionString)) { con.Open(); string sql = "SELECT * FROM TBLCAT"; using (OdbcCommand cmd = new OdbcCommand(sql, con)) { using (OdbcDataAdapter adapter = new OdbcDataAdapter(cmd)) { adapter.Fill(dt); } } } dataGridView1.DataSource = dt; } } } </code></pre> <p> </p> <h2 id="起動してみる"><a href="#%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B">起動してみる</a></h2> <p><img src="https://www.doraxdora.com/wp-content/uploads/2018/09/CSharpAccess1_007.jpg" alt="初期表示" /></p> <p>無事にデータが表示されました。</p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>データベースへの接続をいくつか記事に書いてきましたが、<br /> Accessはバージョンや32bit、64bitと気を付けなければならないことが多く、<br /> ちょっと面倒な感じです。</p> <p>とはいえ、(ひと)昔前のシステムや、簡単なツールなんかでよく利用されているため<br /> それなりに需要はあるんだろうなとは思いつつ、何かのお役に立てれば。</p> <p>ではでは。</p> doraxdora