<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Access アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<atom:link href="https://nyanblog2222.com/category/office/access/feed/" rel="self" type="application/rss+xml" />
	<link>https://nyanblog2222.com/category/office/access/</link>
	<description>ちょっとしたことを調べているよ</description>
	<lastBuildDate>Fri, 15 Jul 2022 09:09:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://nyanblog2222.com/wp-content/uploads/2021/09/cropped-favicon-32x32.png</url>
	<title>Access アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<link>https://nyanblog2222.com/category/office/access/</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>【Access】クエリのデザインビューでフィールド幅を一括で拡げる方法</title>
		<link>https://nyanblog2222.com/office/4317/</link>
					<comments>https://nyanblog2222.com/office/4317/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Wed, 08 Dec 2021 13:50:39 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[クエリ]]></category>
		<category><![CDATA[デザインビュー]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4317</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/47.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/47.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/47-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/47-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/47-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />今回は、Accessのクエリのデザインビューで、各フィールド（項目）の幅を一括で拡げる方法を紹介します。 フィールド内容が長くて隠れている際に有用ですよ♪ 目次 項目の幅を一括で拡げる方法蛇足：フィールド名が複雑な場合は [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/4317/">【Access】クエリのデザインビューでフィールド幅を一括で拡げる方法</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/47.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/47.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/47-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/47-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/47-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回は、Accessのクエリのデザインビューで、<span class="marker-under">各フィールド（項目）の幅を一括で拡げる</span>方法を紹介します。</p>



<p>フィールド内容が長くて隠れている際に有用ですよ♪ </p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">項目の幅を一括で拡げる方法</a></li><li><a href="#toc2" tabindex="0">蛇足：フィールド名が複雑な場合は１つ１つズームがおすすめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">項目の幅を一括で拡げる方法</span></h2>



<p>例として、こちらのクエリを一括で広げます。<br>現状は、郵便番号表示用や、お名前の後ろが隠れてしまっています。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="585" height="400" src="https://nyanblog2222.com/wp-content/uploads/2021/12/1cbb43a5c1215fb90e69c47b5c3c5d61.png" alt="" class="wp-image-4318" srcset="https://nyanblog2222.com/wp-content/uploads/2021/12/1cbb43a5c1215fb90e69c47b5c3c5d61.png 585w, https://nyanblog2222.com/wp-content/uploads/2021/12/1cbb43a5c1215fb90e69c47b5c3c5d61-300x205.png 300w" sizes="(max-width: 585px) 100vw, 585px" /></figure>



<p><span class="bold-red">１．フィールドをすべてドラッグし、フィールド名の間に（赤枠部分）カーソルを持っていく</span></p>



<figure class="wp-block-image size-full"><img decoding="async" width="597" height="313" src="https://nyanblog2222.com/wp-content/uploads/2021/12/23e6e4f507422feb93141c3f19946cdb.png" alt="" class="wp-image-4319" srcset="https://nyanblog2222.com/wp-content/uploads/2021/12/23e6e4f507422feb93141c3f19946cdb.png 597w, https://nyanblog2222.com/wp-content/uploads/2021/12/23e6e4f507422feb93141c3f19946cdb-300x157.png 300w" sizes="(max-width: 597px) 100vw, 597px" /></figure>



<p><span class="bold-red">２．＋マークが出てきたらダブルクリックする</span></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="702" height="298" src="https://nyanblog2222.com/wp-content/uploads/2021/12/fcf7dc3965a3d1517877e68fd9890d0f.png" alt="" class="wp-image-4320" srcset="https://nyanblog2222.com/wp-content/uploads/2021/12/fcf7dc3965a3d1517877e68fd9890d0f.png 702w, https://nyanblog2222.com/wp-content/uploads/2021/12/fcf7dc3965a3d1517877e68fd9890d0f-300x127.png 300w" sizes="auto, (max-width: 702px) 100vw, 702px" /></figure>



<p>これで、すべてのフィールドを一括で広げることができました♪</p>



<h2 class="wp-block-heading"><span id="toc2">蛇足：フィールド名が複雑な場合は１つ１つズームがおすすめ</span></h2>



<p>前項でフィールド幅を一括で拡げるする方法はお伝えしましたが、<br><span class="marker-under">フィールド名が複雑な場合は、フィールドの幅を広げるよりは１つ１つズームがおすすめ</span>です。</p>



<p>ズームは、フィールド名で右クリック→「ズーム」で使えます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="307" height="320" src="https://nyanblog2222.com/wp-content/uploads/2021/12/209fd394997e75ca84b7dd59364dd8c4-1.png" alt="" class="wp-image-4324" srcset="https://nyanblog2222.com/wp-content/uploads/2021/12/209fd394997e75ca84b7dd59364dd8c4-1.png 307w, https://nyanblog2222.com/wp-content/uploads/2021/12/209fd394997e75ca84b7dd59364dd8c4-1-288x300.png 288w" sizes="auto, (max-width: 307px) 100vw, 307px" /></figure>



<p>このようにズーム画面で全体が表示されます。<br>もちろん画面上で編集も可能です。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="677" height="332" src="https://nyanblog2222.com/wp-content/uploads/2021/12/fe0d94e221be72862b27965cb629e927-1.png" alt="" class="wp-image-4325" srcset="https://nyanblog2222.com/wp-content/uploads/2021/12/fe0d94e221be72862b27965cb629e927-1.png 677w, https://nyanblog2222.com/wp-content/uploads/2021/12/fe0d94e221be72862b27965cb629e927-1-300x147.png 300w" sizes="auto, (max-width: 677px) 100vw, 677px" /></figure>



<p>便利なところは、見やすい以外に、<br><span class="marker-under">Ctrl＋Enterで改行ができてミスに気付きやすい</span>ところです♪</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="677" height="332" src="https://nyanblog2222.com/wp-content/uploads/2021/12/414c8330237ff9cab417895a50033169-1.png" alt="" class="wp-image-4326" srcset="https://nyanblog2222.com/wp-content/uploads/2021/12/414c8330237ff9cab417895a50033169-1.png 677w, https://nyanblog2222.com/wp-content/uploads/2021/12/414c8330237ff9cab417895a50033169-1-300x147.png 300w" sizes="auto, (max-width: 677px) 100vw, 677px" /></figure>



<p>式が複雑な場合はおすすめですよ。</p>



<p>以上です。<br>今回の記事が何かの参考になれば幸いです。ありがとうございました♪</p>
<p>投稿 <a href="https://nyanblog2222.com/office/4317/">【Access】クエリのデザインビューでフィールド幅を一括で拡げる方法</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/4317/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access】Dcount「クエリ パラメーターとして指定した式でエラー &#8216;xxx&#8217; が発生しました。」対処方法</title>
		<link>https://nyanblog2222.com/office/4300/</link>
					<comments>https://nyanblog2222.com/office/4300/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Tue, 23 Nov 2021 13:34:57 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Dcount]]></category>
		<category><![CDATA[エラー]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4300</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/46.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/46.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/46-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/46-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/46-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回はAccessVBAでDcount関数を使用したときに、 「実行時エラー &#8216;2471&#8217;: クエリ パラメーターとして指定した式でエラー &#8216;xxx&#8217; が発生しました。」  [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/4300/">【Access】Dcount「クエリ パラメーターとして指定した式でエラー &#8216;xxx&#8217; が発生しました。」対処方法</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/46.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/46.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/46-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/46-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/46-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p> 今回はAccessVBAでDcount関数を使用したときに、 <br><span class="marker-under-red"><span class="marker-under-red">「実行時エラー &#8216;2471&#8217;: クエリ パラメーターとして指定した式でエラー<span class="marker-under-red"> &#8216;xxx&#8217; が発生しました。</span>」</span></span> とエラーコードがでてしまった場合の対処方法を紹介します。 </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="488" height="236" src="https://nyanblog2222.com/wp-content/uploads/2021/11/2021112301.png" alt="" class="wp-image-4308" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/2021112301.png 488w, https://nyanblog2222.com/wp-content/uploads/2021/11/2021112301-300x145.png 300w" sizes="auto, (max-width: 488px) 100vw, 488px" /></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">DCount関数の使い方</a></li><li><a href="#toc2" tabindex="0">エラーの原因は？どんな状況で発生する？</a></li><li><a href="#toc3" tabindex="0">対処方法</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">DCount関数の使い方</span></h2>



<p>対処方法を紹介する前に、簡単に使い方を紹介します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p id="block-17ea28f9-618d-416b-9b70-0ecef29269f3"><span class="bold-red">DCount ( expr , domain [, criteria] )</span></p>



<p id="block-e7817aa2-83b0-4993-a141-dc49e5a3c1ee">・expr：必須。 レコード数をカウントするフィールド。「*」可<br>　　　　（テーブル内のフィールド、フォームのコントロール、定数、関数）<br>・domain：必須。テーブル名やクエリ名<br>・criteria：省略可能。 DCount関数が実行されるデータの範囲を制限するために使用される文字列式。</p>



<p><a href="https://support.microsoft.com/ja-jp/office/dcount-%E9%96%A2%E6%95%B0-f6b5d78b-ad0b-4e42-be7a-11a64acbf3d3">（Microsoft Doc：DCount 関数より）</a></p>
</div>



<p>Dcount関数は、<br>テーブル等（domain）のフィールド（expr）で値があるレコード、かつ条件（criteria）に合致するレコード数を取得します。</p>



<p>例えば、以下の「社員情報」テーブルで「氏名」フィールドをカウントし、<br>11000以上の社員NOを取得するときは、このように指定します。</p>



<p>・社員情報</p>



<figure class="wp-block-table"><table><thead><tr><th>社員NO</th><th>氏名</th></tr></thead><tbody><tr><td>10001</td><td>山田</td></tr><tr><td>15000</td><td>今村</td></tr><tr><td></td><td>花輪</td></tr><tr><td>14720</td><td></td></tr><tr><td>93745</td><td>船井</td></tr></tbody></table></figure>



<p>・コード</p>



<pre class="wp-block-code plaintext"><code>Sub DCount_OK()

    Dim Tmp As Long
    
    Tmp = DCount("氏名", "社員情報", "社員NO &gt; 11000")
    
    Debug.Print Tmp

End Sub</code></pre>



<p>結果は「2」です。</p>



<p>ここで、例では各要素がダブルコーテーション（&#8221;）でくくられていることがわかると思いますが、<br><span class="marker-under">Dcount関数を記述する際に一癖あるのが、各要素が文字列であることです。</span></p>



<h2 class="wp-block-heading"><span id="toc2">エラーの原因は？どんな状況で発生する？</span></h2>



<p>私の場合、<span class="marker-under">変数を使って条件を可変にしようとした際にエラー</span>がでました。</p>



<p>前述のDcount関数の使い方にも記述しましたが、<br>Dcount関数は各要素に文字列を入れる必要があります。</p>



<p>そこで、条件の文字列の中に変数名を入れてしまうと、<br>「’変数名’という値と比較できないよ！」とエラーが出てしまいます。<br>なんとなく、「&#8221;A &gt; 999&#8243;」という書き方ができるため、変数でもいけるのでは？と思ったのが間違いでした。</p>



<p>・コード（誤った例）</p>



<pre class="wp-block-code"><code>Sub DCount_Err()

    Dim Tmp As Long
    
    Dim TestErr As Long
    TestErr = 11000
    
    Tmp = DCount("氏名", "社員情報", "社員NO &gt; TestErr")
    
    Debug.Print Tmp

End Sub</code></pre>



<p>・エラーメッセージ</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="488" height="236" src="https://nyanblog2222.com/wp-content/uploads/2021/11/2021112301.png" alt="" class="wp-image-4308" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/2021112301.png 488w, https://nyanblog2222.com/wp-content/uploads/2021/11/2021112301-300x145.png 300w" sizes="auto, (max-width: 488px) 100vw, 488px" /></figure>



<h2 class="wp-block-heading"><span id="toc3">対処方法</span></h2>



<p>対処方法ですが、<br>以下のように<span class="marker-under">変数部分を文字列と「＆」で結合させる</span>と正しく出力されます。</p>



<pre class="wp-block-code"><code>Sub DCount_Err()

    Dim Tmp As Long
    
    Dim TestErr As Long
    TestErr = 11000
    
    Tmp = DCount("氏名", "社員情報", "社員NO &gt; " &amp; TestErr)
    
    Debug.Print Tmp

End Sub
</code></pre>



<p>これで、繰り返し処理などで可変の値が入っても対応することができます。</p>
<p>投稿 <a href="https://nyanblog2222.com/office/4300/">【Access】Dcount「クエリ パラメーターとして指定した式でエラー &#8216;xxx&#8217; が発生しました。」対処方法</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/4300/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access】すべてのアクセスオブジェクトを非表示（ナビゲーションウィンドウ非表示）</title>
		<link>https://nyanblog2222.com/office/4277/</link>
					<comments>https://nyanblog2222.com/office/4277/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 06 Nov 2021 08:46:15 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[すべてのアクセスオブジェクト]]></category>
		<category><![CDATA[ナビゲーションウィンドウ]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4277</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/45.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/45.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/45-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/45-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/45-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回は、Accessで「すべてのアクセスオブジェクト （ナビゲーションウィンドウ）」を非表示にする方法を紹介します♪ 本設定で、全てのオブジェクト（テーブル・クエリ・フォーム・レポート・マクロ・モジュール）を隠すことがで [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/4277/">【Access】すべてのアクセスオブジェクトを非表示（ナビゲーションウィンドウ非表示）</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/45.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/45.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/45-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/45-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/45-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回は、<span class="bold-red">Accessで「すべてのアクセスオブジェクト （ナビゲーションウィンドウ）」を非表示</span>にする方法を紹介します♪</p>



<p>本設定で、<span class="marker-under">全てのオブジェクト（テーブル・クエリ・フォーム・レポート・マクロ・モジュール）を隠す</span>ことができます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="282" height="656" src="https://nyanblog2222.com/wp-content/uploads/2021/11/a3c87f5c51d52e95f4bd5699ea3e1340.png" alt="" class="wp-image-4280" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/a3c87f5c51d52e95f4bd5699ea3e1340.png 282w, https://nyanblog2222.com/wp-content/uploads/2021/11/a3c87f5c51d52e95f4bd5699ea3e1340-129x300.png 129w" sizes="auto, (max-width: 282px) 100vw, 282px" /></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">非表示方法１（オプション変更）</a></li><li><a href="#toc2" tabindex="0">表示方法１ー１（オプション変更）</a></li><li><a href="#toc3" tabindex="0">表示方法１－２（Shift押下）</a></li><li><a href="#toc4" tabindex="0">番外編：非表示方法（Access Runtime（ランタイム版）使用） </a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">非表示方法１（オプション変更）</span></h2>



<p>「すべてのアクセスオブジェクト （ナビゲーションウィンドウ）」を非表示にすることで、<br><span class="marker-under">Access利用者に触らせたくない・見せたくないオブジェクトを隠すことができる</span>ようになります。</p>



<p>手順としては以下となります。</p>



<p>１ ．ファイルタブ→オプション→カレントデータベース→「ナビゲーション ウィンドウを表示する」のチェックを外す</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="580" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-002.png" alt="" class="wp-image-4278" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-002.png 800w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-002-300x217.png 300w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-002-768x557.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>２．OKを押すとAccessの再起動を求められるので、指示通り開きなおす</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="457" height="88" src="https://nyanblog2222.com/wp-content/uploads/2021/11/acbc728616cd003fbfe0c1c86c1e4334.png" alt="" class="wp-image-4281" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/acbc728616cd003fbfe0c1c86c1e4334.png 457w, https://nyanblog2222.com/wp-content/uploads/2021/11/acbc728616cd003fbfe0c1c86c1e4334-300x58.png 300w" sizes="auto, (max-width: 457px) 100vw, 457px" /></figure>



<p>これだけで以下のように、「すべてのアクセスオブジェクト （ナビゲーションウィンドウ）」を非表示にすることができます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="295" height="653" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-31-14_No-00.png" alt="" class="wp-image-4279" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-31-14_No-00.png 295w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-31-14_No-00-136x300.png 136w" sizes="auto, (max-width: 295px) 100vw, 295px" /></figure>



<h2 class="wp-block-heading"><span id="toc2">表示方法１ー１（オプション変更）</span></h2>



<p>逆に「すべてのアクセスオブジェクト （ナビゲーションウィンドウ）」が非表示になっていた場合の表示方法を紹介します。</p>



<p>まず、先ほどの逆設定をする方法です。</p>



<p>１ ．ファイルタブ→オプション→カレントデータベース→「ナビゲーション ウィンドウを表示する」のチェックを入れる</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="580" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-002.png" alt="" class="wp-image-4278" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-002.png 800w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-002-300x217.png 300w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-002-768x557.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>２．OKを押すとAccessの再起動を求められるので、指示通り開きなおす</p>



<p>以上です。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc3">表示方法１－２（Shift押下）</span></h2>



<p>オプションを変えずに開く方法もあります。</p>



<p>１．「Shift」を押しながら、Accessファイルをダブルクリックして開く。</p>



<p>これで 「すべてのアクセスオブジェクト （ナビゲーションウィンドウ）」 が表示した状態で開けます。</p>



<h2 class="wp-block-heading"><span id="toc4">番外編：非表示方法（Access Runtime（ランタイム版）使用） </span></h2>



<p>次に、Access利用者にAccess Runtime（ランタイム版）を使ってもらう方法があります。</p>



<p>Access Runtime（ランタイム版）は無償のAccessで、有償版とは違い<br>そもそも「すべてのアクセスオブジェクト （ナビゲーションウィンドウ）」を見る機能が搭載されていません。</p>





<a rel="noopener" href="https://www.microsoft.com/ja-jp/download/details.aspx?id=50040" title="Download Microsoft Access 2016 Runtime from Official Microsoft Download Center" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.microsoft.com%2Fja-jp%2Fdownload%2Fdetails.aspx%3Fid%3D50040?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Download Microsoft Access 2016 Runtime from Official Microsoft Download Center</div><div class="blogcard-snippet external-blogcard-snippet">Microsoft Access 2016 Runtime を使用すると、コンピュータに Access 2016 を完全インストールしていないユーザーに対しても、Access 2016 アプリケーションを配布することができます。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.microsoft.com/ja-jp/download/details.aspx?id=50040" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.microsoft.com</div></div></div></div></a>




<p>「すべてのアクセスオブジェクト （ナビゲーションウィンドウ）」を見る機能がないだけで、<br>Accessファイル自体は普通に使用できるので、<br>無償で対応できるAccess Runtime（ランタイム版）もおすすめです。 </p>



<p>今回の記事は以上です。</p>



<p>また、オブジェクト単位の隠しオブジェクト機能を使った非表示設定については<br>こちらで紹介していますので良かったらどうぞ！</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/office/4261/" title="【Access】非表示のテーブル等を表示する【隠しオブジェクト】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/44-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/44-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/44-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/44-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/44-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Access】非表示のテーブル等を表示する【隠しオブジェクト】</div><div class="blogcard-snippet internal-blogcard-snippet">Accessで隠しオブジェクトとなっている非表示のオブジェクト（テーブル・クエリ・フォーム・レポート・マクロ・モジュール）を表示する方法について紹介します♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.11.06</div></div></div></div></a>
</div></figure>



<p>何かの参考になれば幸いです。それでは♪</p>
<p>投稿 <a href="https://nyanblog2222.com/office/4277/">【Access】すべてのアクセスオブジェクトを非表示（ナビゲーションウィンドウ非表示）</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/4277/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access】非表示のテーブル等を表示する【隠しオブジェクト】</title>
		<link>https://nyanblog2222.com/office/4261/</link>
					<comments>https://nyanblog2222.com/office/4261/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 06 Nov 2021 05:49:25 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[隠しオブジェクト]]></category>
		<category><![CDATA[非表示]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=4261</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/44.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/44.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/44-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/44-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/44-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回は、Accessで隠しオブジェクトとなっている非表示のオブジェクト（テーブル・クエリ・フォーム・レポート・マクロ・モジュール）を表示する方法を紹介します。 以下のように、存在するはずのオブジェクトが非表示になっている [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/4261/">【Access】非表示のテーブル等を表示する【隠しオブジェクト】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/44.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/44.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/44-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/44-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/44-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回は、<span class="bold-red">Accessで隠しオブジェクトとなっている非表示のオブジェクト</span><br><span class="bold-red">（テーブル・クエリ・フォーム・レポート・マクロ・モジュール）を表示する方法</span>を紹介します。</p>



<p>以下のように、<span class="marker-under">存在するはずのオブジェクトが非表示になっている</span>状態を表示させます♪</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="445" height="318" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-39-38_No-00.png" alt="" class="wp-image-4262" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-39-38_No-00.png 445w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-39-38_No-00-300x214.png 300w" sizes="auto, (max-width: 445px) 100vw, 445px" /></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">オブジェクトの非表示設定</a></li><li><a href="#toc2" tabindex="0">オブジェクトの表示設定</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">オブジェクトの非表示設定</span></h2>



<p>まず、どうやってテーブルなどを非表示にしているかですが、<br>オブジェクトに、<span class="marker-under">隠しオブジェクトという属性を付与</span>することによって非表示にしています。</p>



<p>手順としては以下となります。</p>



<p>１．オブジェクトを右クリックし、テーブルプロパティ→隠しオブジェクトのチェックを入れる</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="460" height="455" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-55-32_No-00.png" alt="" class="wp-image-4270" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-55-32_No-00.png 460w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-55-32_No-00-300x297.png 300w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-55-32_No-00-100x100.png 100w" sizes="auto, (max-width: 460px) 100vw, 460px" /></figure>



<p>↓</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="457" height="376" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-55-7_No-00.png" alt="" class="wp-image-4269" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-55-7_No-00.png 457w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-55-7_No-00-300x247.png 300w" sizes="auto, (max-width: 457px) 100vw, 457px" /></figure>



<p>これで、このように非表示になります。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="445" height="318" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-39-38_No-00.png" alt="" class="wp-image-4262" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-39-38_No-00.png 445w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-39-38_No-00-300x214.png 300w" sizes="auto, (max-width: 445px) 100vw, 445px" /></figure>



<p>非表示にすることで、<span class="marker-under">Access利用者に触らせたくない・見せたくないオブジェクトを隠すことができる</span>ようになります。</p>



<h2 class="wp-block-heading"><span id="toc2">オブジェクトの表示設定</span></h2>



<p>それでは本題の表示方法です。</p>



<p>１．ファイルタブ→オプション→カレントデータベース→ナビゲーションオプション</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="580" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-00.png" alt="" class="wp-image-4264" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-00.png 800w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-00-300x217.png 300w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-20_No-00-768x557.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>２．隠しオブジェクトの表示のチェックに入れる→OK</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="689" height="480" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-35_No-00.png" alt="" class="wp-image-4263" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-35_No-00.png 689w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-35_No-00-300x209.png 300w" sizes="auto, (max-width: 689px) 100vw, 689px" /></figure>



<p>これで、以下のように薄っすらとオブジェクトが表示されるようになります。<br>中身の確認だけしたい場合は、これだけでもOKです。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="219" height="343" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-43_No-00.png" alt="" class="wp-image-4265" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-43_No-00.png 219w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_11-57-43_No-00-192x300.png 192w" sizes="auto, (max-width: 219px) 100vw, 219px" /></figure>



<p>４．薄っすらと表示されるオブジェクトを右クリックし、テーブルプロパティ→隠しオブジェクトのチェックを外す</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="340" height="444" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-55-0_No-00.png" alt="" class="wp-image-4267" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-55-0_No-00.png 340w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-55-0_No-00-230x300.png 230w" sizes="auto, (max-width: 340px) 100vw, 340px" /></figure>



<p>↓</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="450" height="376" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-55-5_No-00.png" alt="" class="wp-image-4266" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-55-5_No-00.png 450w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-55-5_No-00-300x251.png 300w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure>



<p>これで隠しオブジェクトではなくなり、通常通り表示されます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="214" height="342" src="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-58-39_No-00.png" alt="" class="wp-image-4275" srcset="https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-58-39_No-00.png 214w, https://nyanblog2222.com/wp-content/uploads/2021/11/SnapCrab_NoName_2021-11-6_13-58-39_No-00-188x300.png 188w" sizes="auto, (max-width: 214px) 100vw, 214px" /></figure>



<p>今回の記事は以上です。</p>



<p>また、「すべてのアクセスオブジェクト （ナビゲーションウィンドウ）」自体の非表示設定については<br>こちらで紹介していますので良かったらどうぞ！</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/office/4277/" title="【Access】すべてのアクセスオブジェクトを非表示（ナビゲーションウィンドウ非表示）" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/45-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/45-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/45-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/45-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/45-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Access】すべてのアクセスオブジェクトを非表示（ナビゲーションウィンドウ非表示）</div><div class="blogcard-snippet internal-blogcard-snippet">今回は、Accessで「すべてのアクセスオブジェクト （ナビゲーションウィンドウ）」を非表示にする方法を紹介します♪ 本設定で、全てのオブジェクト（テーブル・クエリ・フォーム・レポート・マクロ・モジュール）を隠すことができます。 非表示方法...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.11.06</div></div></div></div></a>
</div></figure>



<p>何かの参考になれば幸いです。それでは♪</p>
<p>投稿 <a href="https://nyanblog2222.com/office/4261/">【Access】非表示のテーブル等を表示する【隠しオブジェクト】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/4261/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access】ユニオンクエリで結合テーブル作成【UNION】</title>
		<link>https://nyanblog2222.com/office/access/3679/</link>
					<comments>https://nyanblog2222.com/office/access/3679/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Mon, 23 Aug 2021 13:17:32 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[ユニオンクエリ]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=3679</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/30.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/30.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/30-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/30-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/30-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回は、テーブルやクエリを結合するユニオンクエリの使い方を紹介します。 SQLが苦手な方は、「小技）SQLが分からなくても大丈夫！ミスなく簡単にユニオンクエリを作成する方法」も合わせてご覧になってください。 目次 ユニオ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/3679/">【Access】ユニオンクエリで結合テーブル作成【UNION】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/30.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/30.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/30-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/30-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/30-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回は、<span class="bold-red">テーブルやクエリを結合するユニオンクエリの使い方</span>を紹介します。</p>



<p>SQLが苦手な方は、<br><span class="marker-under">「小技）SQLが分からなくても大丈夫！ミスなく簡単にユニオンクエリを作成する方法」</span><br>も合わせてご覧になってください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ユニオンクエリとは</a></li><li><a href="#toc2" tabindex="0">基本の使い方（UNION）</a><ol><li><a href="#toc3" tabindex="0">ユニオン画面の開き方</a></li><li><a href="#toc4" tabindex="0">２つのテーブルを結合</a></li><li><a href="#toc5" tabindex="0"> ３つ以上のテーブルを結合</a></li></ol></li><li><a href="#toc6" tabindex="0">基本＋α</a><ol><li><a href="#toc7" tabindex="0">重複レコードの扱い（UNIONとUNION ALL）</a></li><li><a href="#toc8" tabindex="0">絞り込み（Where）</a></li><li><a href="#toc9" tabindex="0">並び替え（ORDER BY）</a></li></ol></li><li><a href="#toc10" tabindex="0">注意：結合するテーブルのフィールドが異なったらどうなるか</a><ol><li><a href="#toc11" tabindex="0">データ型が異なる場合</a></li><li><a href="#toc12" tabindex="0">項目数が異なる場合</a></li><li><a href="#toc13" tabindex="0">項目名が異なる場合</a></li></ol></li><li><a href="#toc14" tabindex="0">小技）SQLが分からなくても大丈夫！ミスなく簡単にユニオンクエリを使う方法</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ユニオンクエリとは</span></h2>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/08/image.png" alt="" class="wp-image-3831" width="393" height="193" srcset="https://nyanblog2222.com/wp-content/uploads/2021/08/image.png 786w, https://nyanblog2222.com/wp-content/uploads/2021/08/image-300x147.png 300w, https://nyanblog2222.com/wp-content/uploads/2021/08/image-768x377.png 768w" sizes="auto, (max-width: 393px) 100vw, 393px" /></figure>



<p>ユニオンクエリは、<span class="marker-under-red">テーブルやクエリを結合することができるクエリ</span>です。<br>それ以上でもそれ以下でもありませんが、 使えると非常に便利なクエリです。</p>



<p>例えば、実際の業務では<br>AというテーブルとBというテーブルがあった際に、<br><span class="marker-under-red">途中の処理は違うけど最終的に同じデータの構造にして結合させる</span>とき等に使ったりします。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/08/image-1.png" alt="" class="wp-image-3832" width="356" height="169" srcset="https://nyanblog2222.com/wp-content/uploads/2021/08/image-1.png 712w, https://nyanblog2222.com/wp-content/uploads/2021/08/image-1-300x142.png 300w" sizes="auto, (max-width: 356px) 100vw, 356px" /></figure>



<p>テーブルの結合自体は追加クエリ等でも実現できますが、<br>新しくテーブルを作る、もしくは結合元のテーブルに追加して更新してしまう必要があったりと<br><span class="marker-under">テーブルを結合させるだけならユニオンクエリがスマート</span>かと思います。</p>



<h2 class="wp-block-heading"><span id="toc2">基本の使い方（UNION）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">ユニオン画面の開き方</span></h3>



<p>クエリデザイン→ユニオンで、ユニオン画面が開けますので、<br>そこにコードを入れることで使用できます。</p>



<p><span class="bold-red">１．クエリデザインをクリックし、デザインビューを開く</span></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="400" height="97" src="https://nyanblog2222.com/wp-content/uploads/2021/08/s-SnapCrab_NoName_2021-8-22_16-1-29_No-00.jpg" alt="" class="wp-image-3873" srcset="https://nyanblog2222.com/wp-content/uploads/2021/08/s-SnapCrab_NoName_2021-8-22_16-1-29_No-00.jpg 400w, https://nyanblog2222.com/wp-content/uploads/2021/08/s-SnapCrab_NoName_2021-8-22_16-1-29_No-00-300x73.jpg 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure>



<p><span class="bold-red">２．ユニオンをクリック</span></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="509" height="145" src="https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-22_16-2-18_No-00.jpg" alt="" class="wp-image-3874" srcset="https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-22_16-2-18_No-00.jpg 509w, https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-22_16-2-18_No-00-300x85.jpg 300w" sizes="auto, (max-width: 509px) 100vw, 509px" /></figure>



<p><span class="bold-red">３．コード画面が開くので、記述して保存したら使用できるようになる</span></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="400" height="260" src="https://nyanblog2222.com/wp-content/uploads/2021/08/s-SnapCrab_NoName_2021-8-22_17-43-40_No-00.jpg" alt="" class="wp-image-3875" srcset="https://nyanblog2222.com/wp-content/uploads/2021/08/s-SnapCrab_NoName_2021-8-22_17-43-40_No-00.jpg 400w, https://nyanblog2222.com/wp-content/uploads/2021/08/s-SnapCrab_NoName_2021-8-22_17-43-40_No-00-300x195.jpg 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure>



<h3 class="wp-block-heading"><span id="toc4">２つのテーブルを結合</span></h3>



<p>基本的にユニオンクエリでは、<br><span class="marker-under">SELECT句で繋げたいテーブルを呼び出し、UNIONで結合</span>させます。</p>



<p>例えば、テーブル1・2を結合させる場合は以下のように記述します。</p>



<pre class="wp-block-code sql"><code>SELECT * FROM テーブル1
UNION SELECT * FROM テーブル2;</code></pre>



<p><span class="bold-red">◆実際のデータ例</span></p>



<p>・結合データ</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr></tbody></table><figcaption>テーブル1</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table><figcaption>テーブル2</figcaption></figure>



<p>・ ユニオンクエリ出力結果 </p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table></figure>



<p>このように結合されます。<br>重複している 社員NO「100001」 は1件になって出力されます。<br>重複も出したい場合については後述します。</p>



<h3 class="wp-block-heading"><span id="toc5"> ３つ以上のテーブルを結合</span></h3>



<p>単純にUNIONを追加していくだけで、3つ以上結合することもできます。</p>



<pre class="wp-block-code sql"><code>SELECT * FROM テーブル1
UNION SELECT * FROM テーブル2
UNION SELECT * FROM テーブル3;</code></pre>



<p> <span class="bold-red">◆実際のデータ例</span> </p>



<p>・結合データ</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr></tbody></table><figcaption>テーブル1</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table><figcaption>テーブル2</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>300001</td><td>乾　修</td><td>2001/08/21</td><td>人事課</td></tr></tbody></table><figcaption>テーブル3</figcaption></figure>



<p>・ユニオンクエリ出力結果</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>1</td><td>300001</td><td>乾　修</td><td>2001/08/21</td><td>人事課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc6">基本＋α</span></h2>



<h3 class="wp-block-heading"><span id="toc7">重複レコードの扱い（UNIONとUNION ALL）</span></h3>



<p>先ほど<span class="marker-under">UNIONでは重複レコードは除去される</span>とお伝えしましたが、<br>逆に<span class="marker-under">重複レコードも表示したい場合は、UNION ALL</span>を使います。</p>



<p>使い方は、UNIONをUNION ALLに置き換えるだけです。</p>



<pre class="wp-block-code"><code>SELECT * FROM テーブル1
UNION ALL SELECT * FROM テーブル2;</code></pre>



<p> <span class="bold-red">◆実際のデータ例</span> </p>



<p>・結合データ</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr></tbody></table><figcaption>テーブル1</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table><figcaption>テーブル2</figcaption></figure>



<p>・ユニオンクエリ出力結果</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc8">絞り込み（Where）</span></h3>



<p>ユニオンクエリは、通常の選択クエリと同様に絞り込みができます。<br>注意点として、<span class="marker-under">絞り込む際はそれぞれのSELECT～に対してWhere句をつける</span>ことです。</p>



<p><span class="bold-blue">★OK例（それぞれにWhere句）</span><br>　例えば、テーブル1から社員NO「100001」、テーブル2から社員NO「200001」を抜き出し結合する場合</p>



<pre class="wp-block-code"><code>SELECT * FROM テーブル1
where 社員NO = 100001
UNION SELECT * FROM テーブル2
where 社員NO = 200001;
</code></pre>



<p> <span class="bold-red">◆実際のデータ例</span> </p>



<p>・結合データ</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr></tbody></table><figcaption>テーブル1</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table><figcaption>テーブル2</figcaption></figure>



<p>・ユニオンクエリ出力結果</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table></figure>



<p><span class="bold-blue">★NG例（最後にWhere句）</span><br>　例えば、本当は社員NO「100001」「200001」だけを抜き出したい場合</p>



<pre class="wp-block-code"><code>SELECT * FROM テーブル1
UNION SELECT * FROM テーブル2
where 社員NO = 100001 OR 社員NO = 200001;</code></pre>



<p> <span class="bold-red">◆実際のデータ例</span> </p>



<p>・結合データ</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr></tbody></table><figcaption>テーブル1</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table><figcaption>テーブル2</figcaption></figure>



<p>・ユニオンクエリ出力結果</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table></figure>



<p>この場合、Where句はテーブル2に適用されるため、テーブル1は全て出力されます。</p>



<h3 class="wp-block-heading"><span id="toc9">並び替え（ORDER BY）</span></h3>



<p>ユニオンクエリは、通常の選択クエリと同様に並び替えができます。<br>注意点として、Where句とは異なり<span class="marker-under">最後にORDER BY句をつけて全体を並び替える</span>ことです。<br>（途中につけてもエラーにはなりませんが並び替えされません）</p>



<pre class="wp-block-code"><code>SELECT * FROM テーブル1
UNION SELECT * FROM テーブル2
ORDER BY 生年月日</code></pre>



<p> <span class="bold-red">◆実際のデータ例</span> </p>



<p>・結合データ</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr></tbody></table><figcaption>テーブル1</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table><figcaption>テーブル2</figcaption></figure>



<p>・ユニオンクエリ出力結果</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc10">注意：結合するテーブルのフィールドが異なったらどうなるか</span></h2>



<p>問題なく実行できる場合もありますが、基本的には合わせるのが無難です。</p>



<h3 class="wp-block-heading"><span id="toc11">データ型が異なる場合</span></h3>



<p>項目のデータ型が異なっている場合でも、テキスト型として結合されます。</p>



<p>例えば、テーブル1のある項目が日付型、テーブル2のある項目がテキスト型だった場合</p>



<pre class="wp-block-code"><code>SELECT * FROM テーブル1
UNION SELECT * FROM テーブル2;</code></pre>



<p> <span class="bold-red">◆実際のデータ例</span> </p>



<p>・結合データ</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr></tbody></table><figcaption>テーブル1</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>あいうえお</td><td>庶務課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>かきくけこ</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>さしすせそ</td><td>経理課</td></tr></tbody></table><figcaption>テーブル2</figcaption></figure>



<p>・ユニオンクエリ出力結果</p>



<p>異なるフィールド（データ型が異なる）</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>1</td><td>100001</td><td>山田　花子</td><td>あいうえお</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>かきくけこ</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>さしすせそ</td><td>経理課</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc12">項目数が異なる場合</span></h3>



<p>項目数が異なる場合はエラーがでます。</p>



<pre class="wp-block-code"><code>SELECT * FROM テーブル1
UNION SELECT * FROM テーブル2;</code></pre>



<p> <span class="bold-red">◆実際のデータ例</span> </p>



<p>・結合データ</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr></tbody></table><figcaption>テーブル1</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th><th>性別</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td><td>女</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td><td>男</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td><td>男</td></tr></tbody></table><figcaption>テーブル2</figcaption></figure>



<p>・ユニオンクエリ出力結果</p>



<p>「ユニオン クエリで選択した 2つのテーブルまたはクエリの列数が一致しません。」</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="435" height="112" src="https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_Microsoft-Access_2021-8-23_21-35-48_No-00.jpg" alt="" class="wp-image-3881" srcset="https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_Microsoft-Access_2021-8-23_21-35-48_No-00.jpg 435w, https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_Microsoft-Access_2021-8-23_21-35-48_No-00-300x77.jpg 300w" sizes="auto, (max-width: 435px) 100vw, 435px" /></figure>



<h3 class="wp-block-heading"><span id="toc13">項目名が異なる場合</span></h3>



<p>ユニオンクエリは項目名を見ていないため、問題なく処理できます。</p>



<pre class="wp-block-code"><code>SELECT * FROM テーブル1
UNION SELECT * FROM テーブル2;</code></pre>



<p> <span class="bold-red">◆実際のデータ例</span> </p>



<p>・結合データ</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr></tbody></table><figcaption>テーブル1</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>あ</th><th>い</th><th>う</th><th>え</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table><figcaption>テーブル2</figcaption></figure>



<p>・ユニオンクエリ出力結果</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc14">小技）SQLが分からなくても大丈夫！ミスなく簡単にユニオンクエリを使う方法</span></h2>



<p>ここまで読んで、SQLを学んだことがない方は、</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-5 sbs-flat sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/themes/cocoon-master/images/ojisan.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>Accessの知識だけで出来ないのはややこしいな……。ユニオンクエリって難しいな……</p>
</div></div>



<p>と思う方もいらっしゃるかもしれません。<br>確かに基本レベルのテーブル結合ならともかく、Where句等を使った少し難しいユニオンクエリをやろうとするとSQLの基本知識が必要です。</p>



<p>ただ、次に紹介する方法であれば特にSQLの知識がなくとも使うことができます。</p>



<div class="wp-block-sbd-list"><ol class="sbd-list sbd-list-border"><li>クエリを作成してSQLビューで開き、メモ帳にコピー（;は削除）</li><li>改行してUNION　or UNION ALLを入れる</li><li>クエリを作成してSQLビューで開き、メモ帳にコピー<br>（必要であれば並び替えをする）</li><li>並び替えをする場合は、ORDER BY句の前にあるテーブル名を消す</li><li>メモ帳からユニオンクエリ上にコピーして完成</li></ol></div>



<p>具体的には以下のように作成します。</p>



<p><span class="bold-red">１．クエリを作成してSQLビューで開き、メモ帳にコピー（;は削除）</span></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="640" height="273" src="https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-23_21-52-7_No-00.jpg" alt="" class="wp-image-3882" srcset="https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-23_21-52-7_No-00.jpg 640w, https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-23_21-52-7_No-00-300x128.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>



<p>↓SQLビューで開く</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="212" height="347" src="https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-23_21-53-7_No-00.jpg" alt="" class="wp-image-3883" srcset="https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-23_21-53-7_No-00.jpg 212w, https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-23_21-53-7_No-00-183x300.jpg 183w" sizes="auto, (max-width: 212px) 100vw, 212px" /></figure>



<p>↓</p>



<pre class="wp-block-code"><code>SELECT &#91;テーブル1].ID, &#91;テーブル1].社員NO, &#91;テーブル1].氏名, &#91;テーブル1].生年月日, &#91;テーブル1].所属
FROM テーブル1
WHERE (((&#91;テーブル1].社員NO)=100002));</code></pre>



<p>↓「;」を削除し、メモ帳にコピー</p>



<pre class="wp-block-code"><code>SELECT &#91;テーブル1].ID, &#91;テーブル1].社員NO, &#91;テーブル1].氏名, &#91;テーブル1].生年月日, &#91;テーブル1].所属
FROM テーブル1
WHERE (((&#91;テーブル1].社員NO)=100002))</code></pre>



<p><span class="bold-red">２．改行してUNION　or UNION ALLを入れる</span></p>



<pre class="wp-block-code"><code>SELECT &#91;テーブル1].ID, &#91;テーブル1].社員NO, &#91;テーブル1].氏名, &#91;テーブル1].生年月日, &#91;テーブル1].所属
FROM テーブル1
WHERE (((&#91;テーブル1].社員NO)=100002))
UNION</code></pre>



<p><span class="bold-red">３．クエリを作成してSQLビューで開き、メモ帳にコピー（必要であれば並び替えをする）</span></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="640" height="262" src="https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-23_21-52-24_No-00.jpg" alt="" class="wp-image-3884" srcset="https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-23_21-52-24_No-00.jpg 640w, https://nyanblog2222.com/wp-content/uploads/2021/08/SnapCrab_NoName_2021-8-23_21-52-24_No-00-300x123.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>



<p>↓</p>



<pre class="wp-block-code"><code>SELECT &#91;テーブル2].ID, &#91;テーブル2].社員NO, &#91;テーブル2].氏名, &#91;テーブル2].生年月日, &#91;テーブル2].所属
FROM テーブル2
ORDER BY &#91;テーブル2].生年月日;</code></pre>



<p>↓</p>



<pre class="wp-block-code"><code>SELECT &#91;テーブル1].ID, &#91;テーブル1].社員NO, &#91;テーブル1].氏名, &#91;テーブル1].生年月日, &#91;テーブル1].所属
FROM テーブル1
WHERE (((&#91;テーブル1].社員NO)=100002))
UNION
SELECT &#91;テーブル2].ID, &#91;テーブル2].社員NO, &#91;テーブル2].氏名, &#91;テーブル2].生年月日, &#91;テーブル2].所属
FROM テーブル2
ORDER BY &#91;テーブル2].生年月日;</code></pre>



<p><span class="bold-red">４．並び替えをする場合は、ORDER BY句の前にあるテーブル名を消す</span></p>



<p>前述の通り、<span class="marker-under-red">並び替え（ORDER BY）だけは「最後に１つだけ」というルールがある</span>ため全体にORDER BYがかかるように前のテーブル名は削除します。</p>



<pre class="wp-block-code"><code>SELECT &#91;テーブル1].ID, &#91;テーブル1].社員NO, &#91;テーブル1].氏名, &#91;テーブル1].生年月日, &#91;テーブル1].所属
FROM テーブル1
WHERE (((&#91;テーブル1].社員NO)=100002))
UNION
SELECT &#91;テーブル2].ID, &#91;テーブル2].社員NO, &#91;テーブル2].氏名, &#91;テーブル2].生年月日, &#91;テーブル2].所属
FROM テーブル2
ORDER BY 生年月日;</code></pre>



<p><span class="bold-red">５．メモ帳からユニオンクエリ上にコピーして完成</span></p>



<p>出来上がりです。</p>



<p><span class="bold-red">◆実際のデータ例</span></p>



<p>・結合データ</p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr></tbody></table><figcaption>テーブル1</figcaption></figure>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table><figcaption>テーブル2</figcaption></figure>



<p>・ ユニオンクエリ出力結果 </p>



<figure class="wp-block-table"><table><thead><tr><th>ID</th><th>社員NO</th><th>氏名</th><th>生年月日</th><th>所属</th></tr></thead><tbody><tr><td>2</td><td>100002</td><td>田中　太郎</td><td>1999/08/08</td><td>営業課</td></tr><tr><td>2</td><td>200007</td><td>園部　昭</td><td>1999/12/08</td><td>営業課</td></tr><tr><td>1</td><td>100001</td><td>山田　花子</td><td>2001/02/08</td><td>庶務課</td></tr><tr><td>3</td><td>200001</td><td>伊藤　智晴</td><td>2005/05/12</td><td>経理課</td></tr></tbody></table></figure>



<p>これなら、SQLが分からなくても難なくできるかと思います♪</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/3679/">【Access】ユニオンクエリで結合テーブル作成【UNION】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/access/3679/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access】式に未定義関数 &#8216;xxx&#8217; があります。[原因,対処方法]</title>
		<link>https://nyanblog2222.com/office/access/3380/</link>
					<comments>https://nyanblog2222.com/office/access/3380/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 27 Jun 2021 10:38:05 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[対処方法]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=3380</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/42.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/42.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/42-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/42-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/42-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回は、Accessのクエリ等を実行した際に、「式に未定義関数 &#8216;xxx&#8217; があります。」とエラーメッセージが出て処理できない場合があります。このエラーには原因が複数パターン想定されるため、それぞ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/3380/">【Access】式に未定義関数 &#8216;xxx&#8217; があります。[原因,対処方法]</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/42.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/42.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/42-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/42-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/42-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回は、Accessのクエリ等を実行した際に、<br>「<strong class="brown_color">式に未定義関数 &#8216;xxx&#8217; があります。</strong>」とエラーメッセージが出て処理できない場合があります。<br>このエラーには<span class="marker-under-red">原因が複数パターン</span>想定されるため、それぞれの対処方法を紹介します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="251" height="107" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062701.jpg" alt="エラーメッセージ" class="wp-image-3420"/></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">エラー原因</a></li><li><a href="#toc2" tabindex="0">対処方法</a><ol><li><a href="#toc3" tabindex="0">関数を定義していない、又は誤った関数名を使用している場合</a></li><li><a href="#toc4" tabindex="0">関数名とモジュール名が同じ場合</a></li><li><a href="#toc5" tabindex="0">ライブラリが参照不可になっている場合</a></li><li><a href="#toc6" tabindex="0">関数の宣言でPrivateを使っている場合</a></li><li><a href="#toc7" tabindex="0">関数名に２バイト文字が使用されている場合</a></li><li><a href="#toc8" tabindex="0">モジュールが破損している場合</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">エラー原因</span></h2>



<p>原因は複数パターンありますが、ざっくり言うと<br><span class="marker-under">システムがモジュール内に関数内で使用していないのに使っていると判断している</span>ためです。</p>



<p>以下の通り、うっかりミスからややこしいものもあるため<br>対処するには一つ一つ順に見ていきましょう。<br>（上から順に可能性の高いパターンです）</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-orange-border-color">
<ol class="wp-block-list"><li>関数を定義していない、又は誤った関数名を使用している場合</li><li>関数名とモジュール名が同じ場合</li><li>ライブラリが参照不可になっている場合</li><li>関数の宣言でPrivateを使っている場合</li><li>関数名に２バイト文字が使用されている場合</li><li>モジュールが破損している場合</li></ol>
</div>



<h2 class="wp-block-heading"><span id="toc2">対処方法</span></h2>



<p>以下の正常な状態を一部変更し、エラーパターンを作成していきます。</p>



<p><strong class="brown_color">クエリでの関数呼び出し：「挨拶: CallHello()」</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="568" height="312" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062702.jpg" alt="" class="wp-image-3422" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062702.jpg 568w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062702-300x165.jpg 300w" sizes="auto, (max-width: 568px) 100vw, 568px" /></figure>



<p><strong class="brown_color">モジュール名：「こんにちは」<br>関数名：「CallHello()」</strong></p>



<pre class="wp-block-code basic"><code>Function CallHello() As String

CallHello = "Hello World"

End Function</code></pre>



<h3 class="wp-block-heading"><span id="toc3">関数を定義していない、又は誤った関数名を使用している場合</span></h3>



<p>勘違いで呼び出す関数を定義していない、又は誤った関数名を使用している場合、<br>呼び出すことができずエラーになります。</p>



<p>例えば、<br>Function CallH<span class="marker-under-red">e</span>llo() As String　と宣言しているのに、<br>CallH<span class="marker-under-red">a</span>llo()で呼び出している場合等</p>



<p>調べるには、一度クエリから呼び出している関数名で、Visual Basic画面にて<br>プロジェクト内のコード内を検索（ショートカットキー：「Ctrl+F」）してみましょう。<br>もしなければ、誤っていますのでクエリを変更してください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="537" height="438" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062703-1.jpg" alt="検索文字列が見つかりません" class="wp-image-3424" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062703-1.jpg 537w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062703-1-300x245.jpg 300w" sizes="auto, (max-width: 537px) 100vw, 537px" /></figure>



<h3 class="wp-block-heading"><span id="toc4">関数名とモジュール名が同じ場合</span></h3>



<p>関数名とモジュール名が同じ場合、システム上名称が被ってしまいエラーとなります。</p>



<p>例えば、<br>Function <span class="marker-under-red">CallHello</span>() As String　と宣言しており、<br>モジュール名も<span class="marker-under-red">CallHello</span>になっている場合等</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="526" height="115" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062704-1.jpg" alt="" class="wp-image-3426" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062704-1.jpg 526w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062704-1-300x66.jpg 300w" sizes="auto, (max-width: 526px) 100vw, 526px" /></figure>



<p>この場合、関数名又はモジュール名を変更してください。</p>



<h3 class="wp-block-heading"><span id="toc5">ライブラリが参照不可になっている場合</span></h3>



<p>ライブラリが参照不可になっており、<br>ライブラリ内の関数を使用していた場合、エラーとなります。<br>パソコンの交換やOS・Officeのバージョンアップでエラーが上がるようになった場合は、<br>このケースの可能性があります。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="455" height="312" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062705.jpg" alt="参照不可" class="wp-image-3430" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062705.jpg 455w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062705-300x206.jpg 300w" sizes="auto, (max-width: 455px) 100vw, 455px" /></figure>



<p>この場合、Visual Basic画面にてツールタブから参照設定を開き、<span class="marker-under-red">参照不可</span>がある場合は、<br>参照をあらためて追加するか、関数を自前で作成する等やり方を変える必要があります。</p>



<h3 class="wp-block-heading"><span id="toc6">関数の宣言でPrivateを使っている場合</span></h3>



<p>関数の宣言でPrivateを使っている場合、<br>モジュール内からしか呼び出すことができないため、エラーとなります。</p>



<p>Privateはアクセス修飾子と呼ばれ、他にPublic等があります。<br>以下の通りアクセス修飾子によって参照できる範囲（スコープ）が限られており、<br>・Private Function：モジュール内のみ参照可<br>・Public Function：モジュール外から参照可<br>・Function：暗黙的にPublicとなるため、モジュール外から参照可<br>となります。</p>



<p>なので、例えば、<br><span class="marker-under-red">Private Function </span>CallHello() As String　と宣言している場合は、<br><span class="marker-under-red">Function </span>CallHello() As String 又は<br><span class="marker-under-red">Public Function</span> CallHello() As String<br>に変更する必要があります。</p>



<h3 class="wp-block-heading"><span id="toc7">関数名に２バイト文字が使用されている場合</span></h3>



<p>関数名に日本語等の２バイト文字が使用されている場合、<br>VBA上はコンパイルできても対応してはいないので、クエリから呼び出すとエラーとなります。</p>



<p>なので、例えば、<br>Function <span class="marker-under-red">挨拶する</span>() As String　と宣言している場合は、<br>Function <span class="marker-under-red">CallHello</span>() As String<br>に変更する必要があります。<br>（クエリからの呼び出し側も同様に、CallHello()へ変更）</p>



<h3 class="wp-block-heading"><span id="toc8">モジュールが破損している場合</span></h3>



<p>モジュールが<span class="marker-under-red">破損</span>している場合、呼び出せずエラーとなります。</p>



<p>この場合は、新しくモジュールを作成し、ソースコードをコピーして作り直す必要があります。</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/3380/">【Access】式に未定義関数 &#8216;xxx&#8217; があります。[原因,対処方法]</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/access/3380/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access Runtime】セキュリティ警告’非表示’設定[ランタイム]</title>
		<link>https://nyanblog2222.com/office/access/3384/</link>
					<comments>https://nyanblog2222.com/office/access/3384/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 26 Jun 2021 07:04:17 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[コマンドプロンプト]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[セキュリティ警告]]></category>
		<category><![CDATA[対処方法]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=3384</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/43.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/43.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/43-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/43-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/43-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回は、Access Runtime（ランタイム版）実行時の「セキュリティに影響を及ぼす可能性のある問題点が検知されました。」警告メッセージを非表示にする設定について紹介します。 目次 なぜ警告が表示されるか対処方法信頼 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/3384/">【Access Runtime】セキュリティ警告’非表示’設定[ランタイム]</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/43.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/43.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/43-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/43-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/43-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回は、Access Runtime（ランタイム版）実行時の<br>「<span class="marker-under-red">セキュリティに影響を及ぼす可能性のある問題点が検知されました。</span>」<br>警告メッセージを非表示にする設定について紹介します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="391" height="317" src="https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-5-29_15-12-46_No-00.jpg" alt="エラーメッセージ" class="wp-image-3386" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-5-29_15-12-46_No-00.jpg 391w, https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-5-29_15-12-46_No-00-300x243.jpg 300w" sizes="auto, (max-width: 391px) 100vw, 391px" /></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">なぜ警告が表示されるか</a></li><li><a href="#toc2" tabindex="0">対処方法</a><ol><li><a href="#toc3" tabindex="0">信頼できる場所に追加する</a><ol><li><a href="#toc4" tabindex="0">レジストリエディターで変更する方法</a></li><li><a href="#toc5" tabindex="0">コマンドプロンプト（BAT）で変更する方法</a></li></ol></li><li><a href="#toc6" tabindex="0">すべてのマクロを有効にする</a><ol><li><a href="#toc7" tabindex="0">レジストリエディターで変更する方法</a></li><li><a href="#toc8" tabindex="0">コマンドプロンプト（BAT）で変更する方法</a></li></ol></li><li><a href="#toc9" tabindex="0">どちらの対処方法がいいか</a><ol><li><a href="#toc10" tabindex="0">「信頼できる場所に追加する」を選ぶメリット</a></li><li><a href="#toc11" tabindex="0">「すべてのマクロを有効にする」を選ぶメリット</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">なぜ警告が表示されるか</span></h2>



<p>警告メッセージに、<br>「<span class="marker-under-red">警告：このコンテンツの発行元が信頼できるかどうかを確認することはできません。このコンテンツが重要な機能を備えており、発行元が信頼できる場合を除き、このコンテンツは無効のままにしてください。</span>」<br>と、書いてあるとおり、<span class="marker-under-red">発行元が信頼できるかどうかを確認できない</span>ためです。</p>



<p>この警告はメッセージこそ違えど、以下のように<span class="marker-under">有償のAccessにも同じ</span>ように出てきます。</p>



<figure class="wp-block-gallery columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="769" height="331" src="https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-6-23_6-25-29_No-00.jpg" alt="" data-id="3390" data-full-url="https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-6-23_6-25-29_No-00.jpg" data-link="https://nyanblog2222.com/?attachment_id=3390" class="wp-image-3390" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-6-23_6-25-29_No-00.jpg 769w, https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-6-23_6-25-29_No-00-300x129.jpg 300w" sizes="auto, (max-width: 769px) 100vw, 769px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="800" height="329" src="https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-6-23_6-25-49_No-00.jpg" alt="" data-id="3391" data-full-url="https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-6-23_6-25-49_No-00.jpg" data-link="https://nyanblog2222.com/?attachment_id=3391" class="wp-image-3391" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-6-23_6-25-49_No-00.jpg 800w, https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-6-23_6-25-49_No-00-300x123.jpg 300w, https://nyanblog2222.com/wp-content/uploads/2021/06/SnapCrab_NoName_2021-6-23_6-25-49_No-00-768x316.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure></li></ul></figure>



<p>対処方法は、有償・無償共通で以下２つあります。<br><strong><strong class="brown_color">１．信頼できる場所に追加する<br>２．すべてのマクロを有効にする</strong></strong></p>



<p>ただ、有償のAccessの場合はセキュリティ設定を変更することで対処できますが、<br>（ファイル→オプション→セキュリティセンター→セキュリティセンターの設定で、<br>「信頼できる場所」「マクロの設定」が変更できます。）<br><span class="marker-under">無償のAccess Runtime（ランタイム版）は設定変更の機能を持ち合わせていません</span>。</p>



<p>よって、対処方法を実施するためには<span class="marker-under">レジストリを変更</span>する必要があります。</p>



<h2 class="wp-block-heading"><span id="toc2">対処方法</span></h2>



<p>以下のどちらかの箇所のレジストリを変更することです。<br><strong><strong class="brown_color">１．信頼できる場所に追加する<br>２．すべてのマクロを有効にする</strong></strong></p>



<p>レジストリ変更方法は<br><span class="marker-under">・レジストリエディターで変更する方法<br>・コマンドプロンプト（BAT）で変更する方法</span><br>があります。</p>



<p>両方紹介しますが、コピペするだけででき、見当違いの場所を変更してしまうなどミスも減ること、<br>複数台のパソコンに反映できること等考慮すると、<br><span class="marker-under">コマンドプロンプト（BAT）で変更する方法がおすすめ</span>です。</p>



<h3 class="wp-block-heading"><span id="toc3">信頼できる場所に追加する</span></h3>



<h4 class="wp-block-heading"><span id="toc4">レジストリエディターで変更する方法</span></h4>



<p>まずレジストリエディターを開きます。<br>「Windowsマーク」キーと「R」キーを同時押し→ファイル名を指定して実行の画面が出たら、<br>「regedit」と入力してエンターを押すと開くことができます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="199" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062501.jpg" alt="レジストリエディタ" class="wp-image-3399" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062501.jpg 800w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062501-300x75.jpg 300w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062501-768x191.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>その後、以下の階層に移動し、<br>「コンピューター\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\XX.0\Access\Security\Trusted Locations」<br>左側の枠内の「Trusted Locations」を右クリック→新規→キー<br>→名前を「Location10（既定のLocation2以外の数値で設定）」に変更<br>→右側の枠内で右クリック→新規→文字列値→名前を「Path」<br>→「Path」をダブルクリック→値を普段使用するAccessファイルの入ったフォルダパスに変更<br>→右側の枠内でクリック→新規→DWORD値→名前を「AllowSubfolders」<br>→「AllowSubfolders」をダブルクリック→値を「1」に変更</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="282" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062504.jpg" alt="設定" class="wp-image-3402" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062504.jpg 800w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062504-300x106.jpg 300w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062504-768x271.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>これで設定完了です。<br>上記の階層はAccessのバージョンによって異なり、以下の通りです。</p>



<p>・Access 2016 Runtime<br>「<strong class="brown_color">コンピューター\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Access\Security\Trusted Locations</strong>」</p>



<p>・Access 2013 Runtime<br>「<strong class="brown_color">コンピューター\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Access\Security\Trusted Locations</strong>」</p>



<p>・Access 2010 Runtime<br>「<strong class="brown_color">コンピューター\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\14.0\Access\Security\Trusted Locations</strong>」</p>



<h4 class="wp-block-heading"><span id="toc5">コマンドプロンプト（BAT）で変更する方法</span></h4>



<p>以下をAccess Runtimeのバージョンに合わせて、<br>管理者権限を持つユーザーにてコマンドプロンプトから実行してください。</p>



<p>「Windowsマーク」キーと「R」キーを同時押し→ファイル名を指定して実行の画面が出たら、<br>「cmd」と入力してエンターを押すと開くことができます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="601" height="173" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062503.jpg" alt="コマンドプロンプト" class="wp-image-3401" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062503.jpg 601w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062503-300x86.jpg 300w" sizes="auto, (max-width: 601px) 100vw, 601px" /></figure>



<p>BATで利用する場合、以下で紹介するコマンドをメモ帳へコピーして保存し、<br>最後に拡張子を「txt」から「bat」にしてから実行（クリック）してください。</p>



<p>・Access 2016 Runtime</p>



<pre class="wp-block-code dos"><code>REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Access\Security\Trusted Locations\Location10" /v AllowSubfolders /t "REG_DWORD" /d "1" /f
REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Access\Security\Trusted Locations\Location10" /v Path /t "REG_SZ" /d "C:\信頼済みフォルダ" /f</code></pre>



<p>・Access 2013 Runtime</p>



<pre class="wp-block-code dos"><code>REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Access\Security\Trusted Locations\Location10" /v AllowSubfolders /t "REG_DWORD" /d "1" /f
REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Access\Security\Trusted Locations\Location10" /v Path /t "REG_SZ" /d "C:\信頼済みフォルダ" /f</code></pre>



<p>・Access 2010 Runtime</p>



<pre class="wp-block-code dos"><code>REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\14.0\Access\Security\Trusted Locations\Location10" /v AllowSubfolders /t "REG_DWORD" /d "1" /f
REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\14.0\Access\Security\Trusted Locations\Location10" /v Path /t "REG_SZ" /d "C:\信頼済みフォルダ" /f</code></pre>



<h3 class="wp-block-heading"><span id="toc6">すべてのマクロを有効にする</span></h3>



<h4 class="wp-block-heading"><span id="toc7">レジストリエディターで変更する方法</span></h4>



<p>まずレジストリエディターを開きます。<br>「Windowsマーク」キーと「R」キーを同時押し→ファイル名を指定して実行の画面が出たら、<br>「regedit」と入力してエンターを押すと開くことができます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="199" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062501.jpg" alt="レジストリエディタ" class="wp-image-3399" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062501.jpg 800w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062501-300x75.jpg 300w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062501-768x191.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>その後、以下の階層に移動し、<br>「コンピューター\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\XX.0\Access\Security」<br>右側の枠内でクリック→新規→DWORD値→名前を「VBAWarnings」<br>→「VBAWarnings」をダブルクリック→値を「1」に変更</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="235" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062502.jpg" alt="設定" class="wp-image-3400" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062502.jpg 800w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062502-300x88.jpg 300w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062502-768x226.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>これで設定完了です。<br>上記の階層はAccessのバージョンによって異なり、以下の通りです。</p>



<p>・Access 2016 Runtime<br>「<strong class="brown_color">コンピューター\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Access\Security</strong>」</p>



<p>・Access 2013 Runtime<br>「<strong class="brown_color">コンピューター\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Access\Security</strong>」</p>



<p>・Access 2010 Runtime<br>「<strong class="brown_color">コンピューター\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\14.0\Access\Security</strong>」</p>



<h4 class="wp-block-heading"><span id="toc8">コマンドプロンプト（BAT）で変更する方法</span></h4>



<p>以下をAccess Runtimeのバージョンに合わせて、<br>管理者権限を持つユーザーにてコマンドプロンプトから実行してください。</p>



<p>「Windowsマーク」キーと「R」キーを同時押し→ファイル名を指定して実行の画面が出たら、<br>「cmd」と入力してエンターを押すと開くことができます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="601" height="173" src="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062503.jpg" alt="コマンドプロンプト" class="wp-image-3401" srcset="https://nyanblog2222.com/wp-content/uploads/2021/06/2021062503.jpg 601w, https://nyanblog2222.com/wp-content/uploads/2021/06/2021062503-300x86.jpg 300w" sizes="auto, (max-width: 601px) 100vw, 601px" /></figure>



<p>BATで利用する場合、以下で紹介するコマンドをメモ帳へコピーして保存し、<br>最後に拡張子を「txt」から「bat」にしてから実行（クリック）してください。</p>



<p>・Access 2016 Runtime</p>



<pre class="wp-block-code dos"><code>REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Access\Security" /v VBAWarnings /t "REG_DWORD" /d "1" /f</code></pre>



<p>・Access 2013 Runtime</p>



<pre class="wp-block-code dos"><code>REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Access\Security" /v VBAWarnings /t "REG_DWORD" /d "1" /f</code></pre>



<p>・Access 2010 Runtime</p>



<pre class="wp-block-code dos"><code>REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\14.0\Access\Security" /v VBAWarnings /t "REG_DWORD" /d "1" /f</code></pre>



<h3 class="wp-block-heading"><span id="toc9">どちらの対処方法がいいか</span></h3>



<p><strong><strong class="brown_color">１．信頼できる場所に追加する<br>２．すべてのマクロを有効にする</strong></strong></p>



<p>の設定方法について紹介しましたが、どちらの方法を選べばいいかですが、<br><span class="marker-under-red">セキュリティの観点だと「信頼できる場所に追加する」</span>、<br><span class="marker-under-blue">運用の観点だと「すべてのマクロを有効にする」</span>です。<br>（ただ個人的には大差ないので、完全に好みかなと個人的には思ってます……）</p>



<h4 class="wp-block-heading"><span id="toc10">「信頼できる場所に追加する」を選ぶメリット</span></h4>



<p>利用者の限定されるAccessなので、悪質なマクロ付きファイル自体多くないかもしれません。<br>ただ、「信頼できる場所に追加する」であれば<span class="marker-under-red">最低限のセキュリティを担保</span>することができます。<br>例えば、普段使用するAccessファイルの入ったフォルダ（ファイルサーバー）を信頼済みに設定しておくことで、<br>それ以外で使用するファイル（例えばメールで送られてきたファイル）のみ警告で注意喚起することができます。</p>



<h4 class="wp-block-heading"><span id="toc11">「すべてのマクロを有効にする」を選ぶメリット</span></h4>



<p>「すべてのマクロを有効にする」だとマクロは何でも有効になるので、<br>どこでAccessファイルを動かしても警告がでることはありません。<br>なので、組織内でどこのフォルダにAccessを作る等<span class="marker-under-blue">ルールを作る必要はありません</span>し、<br>例えば社内の情報部門であった場合、社員から警告についての<span class="marker-under-blue">問い合わせを全く受けることがありません</span>。<br>もしレジストリエディタで設定する場合は、<span class="marker-under-blue">手順も簡単</span>です。</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/3384/">【Access Runtime】セキュリティ警告’非表示’設定[ランタイム]</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/access/3384/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access】メモリ不足です。【対処方法・原因】</title>
		<link>https://nyanblog2222.com/office/access/3359/</link>
					<comments>https://nyanblog2222.com/office/access/3359/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Wed, 26 May 2021 22:59:53 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[メモリ不足です。]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=3359</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/41.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/41.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/41-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/41-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/41-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回はAccessのクエリやマクロを使用した際に、 「メモリ不足です。」 と突然エラーコードがでてしまった場合の対処方法を紹介します。 目次 エラーの原因は？どんな状況で発生する？対処方法Accessファイルの最適化（手 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/3359/">【Access】メモリ不足です。【対処方法・原因】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/41.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/41.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/41-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/41-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/41-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回はAccessのクエリやマクロを使用した際に、 <br><span class="marker-under-red"><span class="marker-under-red">「<span class="marker-under-red">メモリ不足です。</span>」</span></span> と突然エラーコードがでてしまった場合の対処方法を紹介します。</p>



<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/05/2021052301.jpg" alt="メモリ不足です。" width="202" height="107" class="alignnone wp-image-3361 size-full"></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">エラーの原因は？どんな状況で発生する？</a></li><li><a href="#toc2" tabindex="0">対処方法</a></li><li><a href="#toc3" tabindex="0">Accessファイルの最適化（手動）</a></li><li><a href="#toc4" tabindex="0">Accessファイルの最適化（自動）</a></li><li><a href="#toc5" tabindex="0">備考：「メモリ不足です。」エラーを再現するには</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">エラーの原因は？どんな状況で発生する？</span></h2>



<p>エラーメッセージが「メモリ」とあるので<span class="marker-under">パソコンのメモリと勘違いしやすい</span>ですが、<br>原因は<span class="marker-under">クエリやマクロを使用した際に、<span class="marker-under">Accessファイルが2GBを超えてしまうため</span></span><span class="marker-under">です。<br></span><span class="marker-under"></span></p>



<p><span class="marker-under">Accessはファイル全体で最大2GBという制限があります。<br></span>私の場合、大規模データを扱うAccessの改修中、<br>突然「メモリ不足です。」と出て、 以下の対処をすることで解決できました。</p>



<p><strong class="brown_color">＜効果のあったこと＞<br></strong><span>・Accessファイルの最適化</span></p>



<p><strong class="brown_color">＜効果のなかったこと＞<br></strong>・メモリを8GBから16GBに増設<br>・仮想メモリを付与<br>・<span>MaxLocksPerFileというトランザクション処理の最大値を変更<br>・パソコン再起動<br>・Accessファイルの修復　等</span></p>



<h2 class="wp-block-heading"><span id="toc2">対処方法</span></h2>



<p>今回のエラーの原因が、<span class="marker-under">Accessファイルが2GBを超過することにあるため、<br></span>対処方法は以下のファイルサイズ対策になります。</p>



<ul class="wp-block-list"><li><strong class="brown_color">Accessファイルの最適化（おすすめ！）<br></strong>（手動・自動による最適化）<br>Accessファイルを最適化することで、不要な領域を整理する<br>メリット：簡単で、今まで通り利用できる<br>デメリット：最適化しても容量が2GBを超える場合対応できない<strong class="brown_color"> </strong></li><li><strong class="brown_color">Accessファイルの分割<br></strong>Accessファイルのデータを別のAccessファイルに作り、リンクテーブルで連携する。<br>例）AccessAはAテーブル、AccessBはBテーブル。AccessAからBのリンクテーブルを貼る<br><span>メリット：すべてのテーブル容量の合計が2GBを超過しても使用できる<br>デメリット：個々のテーブル容量が2GBを超過すると使えない</span></li><li><strong class="brown_color">DB構築<br></strong>SQLServerや<span>PostgresなどDBを構築し、 データはDBからリンクテーブルで利用、編集や更新等はAccessで行う<br>メリット：テーブルの容量が2GBを超過しても使用できる<br>デメリット：DB構築は少しハードルが高い</span></li></ul>



<p>ただ、「メモリ不足です。」エラーが出る場合、単純に最適化ができていないことが多いため、 次項からは<span class="marker-under">Accessファイルの最適化</span>だけに絞って説明します。</p>



<h2 class="wp-block-heading"><span id="toc3">Accessファイルの最適化（手動）</span></h2>



<p><span class="marker-under">手動で最適化</span>する方法です。<br>最適化は数分程度かかることもあるため、ユーザーの都合のいいときに最適化できます。<br>デメリットは意識的に行わないとならないことです。</p>



<p>方法は、「ファイル」→「情報」から、「データベースの最適化／修復」を選択するだけです。</p>



<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-14-17_No-00.jpg" alt="最適化" width="800" height="452" class="alignnone wp-image-3368 size-full" srcset="https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-14-17_No-00.jpg 800w, https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-14-17_No-00-300x170.jpg 300w, https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-14-17_No-00-768x434.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /> 押すと、最適化が開始され、右下にメッセージが現れます。 <img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-28-23_No-00.jpg" alt="" width="451" height="44" class="alignnone size-full wp-image-3370" srcset="https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-28-23_No-00.jpg 451w, https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-28-23_No-00-300x29.jpg 300w" sizes="auto, (max-width: 451px) 100vw, 451px" /></p>



<h2 class="wp-block-heading"><span id="toc4">Accessファイルの最適化（自動）</span></h2>



<p><span class="marker-under">自動で最適化</span>する方法です。<br>Accessファイルを閉じる際に、毎回最適化されるのでユーザーは意識せず最適化できます。<br>デメリットとしては、毎回最適化に時間がかかることや、<br>複数ユーザーで頻繁に使用すると破損するリスクがあるため、あまり使用しない方がいいという意見もあります。</p>



<p>方法は、「ファイル」→「Accessのオプション」から、「閉じるときに最適化する」を選択するだけです。</p>



<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-14-47_No-00.jpg" alt="最適化" width="800" height="579" class="alignnone wp-image-3369 size-full" srcset="https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-14-47_No-00.jpg 800w, https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-14-47_No-00-300x217.jpg 300w, https://nyanblog2222.com/wp-content/uploads/2021/05/SnapCrab_NoName_2021-5-23_15-14-47_No-00-768x556.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>



<h2 class="wp-block-heading"><span id="toc5">備考：「メモリ不足です。」エラーを再現するには</span></h2>



<p>まず、以下のコードを実行して、2GB弱のデータを作ります。<br>（コード自体は2GB以上作ろうとするので、処理の途中でAccessが固まる or エラーになります）<br>コードは、<a href="https://docs.microsoft.com/ja-jp/office/troubleshoot/access/error-when-perform-operation-on-table">「Microsoft Docs：Access テーブルで操作を実行すると、&#8221;ディスク領域またはメモリが足りない&#8221; というエラーが発生する」</a>を参考にしています。</p>



<pre class="wp-block-code basic"><code>Sub CreateBigTable()
　　Dim db As Database, rs As Recordset
　　Dim iCounter As Long, strChar As String
　　Set db = CurrentDb
　　db.Execute "CREATE TABLE BigTable (ID LONG, Field1 TEXT(255), " &amp; _
　　　　"Field2 TEXT(255), Field3 TEXT(255), Field4 TEXT(255))", _
　　　　dbFailOnError
　　Set rs = db.OpenRecordset("BigTable", dbOpenDynaset)
　　iCounter = 0
　　strChar = String(255, " ")
　　While iCounter &lt;= 100000000
　　　　rs.AddNew
　　　　rs!ID = iCounter
　　　　rs!Field1 = strChar
　　　　rs!Field2 = strChar
　　　　rs!Field3 = strChar
　　　　rs!Field4 = strChar
　　　　rs.Update
　　　　iCounter = iCounter + 1
　　Wend
　　MsgBox "Done!"
End Sub</code></pre>



<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/05/2021052302.jpg" alt="2GB" width="421" height="580" class="alignnone wp-image-3362 size-full" srcset="https://nyanblog2222.com/wp-content/uploads/2021/05/2021052302.jpg 421w, https://nyanblog2222.com/wp-content/uploads/2021/05/2021052302-218x300.jpg 218w" sizes="auto, (max-width: 421px) 100vw, 421px" /></p>



<p>次に、できたテーブルを使用してクエリを作成し、動作させると 「メモリ不足です。」のエラーが再現できます。</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/3359/">【Access】メモリ不足です。【対処方法・原因】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/access/3359/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access】データ型変換まとめ【文字列・数値・日付など】</title>
		<link>https://nyanblog2222.com/office/access/3299/</link>
					<comments>https://nyanblog2222.com/office/access/3299/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 09 May 2021 11:17:12 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[データ型変換]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=3299</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/40.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/40.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/40-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/40-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/40-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />AccessのクエリやVBA、SQLでよく使うデータ型変換関数をまとめました。 ◇よく使うデータ型変換とは？Googleで頻繁に検索されているものを主に紹介。・文字列⇔数値・文字列⇔日付型・メモ型→文字列（テキスト型）・ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/3299/">【Access】データ型変換まとめ【文字列・数値・日付など】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/40.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/40.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/40-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/40-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/40-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>AccessのクエリやVBA、SQLでよく使う<span class="marker-under">データ型変換関数</span>をまとめました。</p>



<p><strong class="brown_color">◇よく使うデータ型変換とは？</strong><br>Googleで頻繁に検索されているものを主に紹介。<br><span class="marker-under">・文字列⇔数値<br>・文字列⇔日付型<br>・メモ型→文字列（テキスト型）<br>・数値→通貨型</span><br>その中でもあまり使わないものの説明は省略しています。</p>



<p>※<span class="marker-under-red">許容範囲の大きい型から小さい型への変換は注意</span>してください！<br>　エラーなく桁落ちするのでバグと認識しにくいです。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">よく使うデータ型変換と使用例</a><ol><li><a href="#toc2" tabindex="0">文字列⇔数値</a><ol><li><a href="#toc3" tabindex="0">・文字列→数値（整数型）</a></li><li><a href="#toc4" tabindex="0">・文字列→数値（長整数型）</a></li><li><a href="#toc5" tabindex="0">・文字列→数値（倍精度浮動小数点型）</a></li><li><a href="#toc6" tabindex="0">&nbsp;参考：文字列→数値においてValやCSng、CDecを使わない理由</a></li><li><a href="#toc7" tabindex="0">・数値→文字列</a></li><li><a href="#toc8" tabindex="0">・変換値にNullが含まれる場合</a></li></ol></li><li><a href="#toc9" tabindex="0">文字列⇔日付型</a><ol><li><a href="#toc10" tabindex="0">・文字列→日付型</a><ol><li><a href="#toc11" tabindex="0">・「YYYY/MM/DD」「YYYY年MM月DD日」「gg年MM月DD日」形式の場合</a></li><li><a href="#toc12" tabindex="0">・「YYYYMMDD」形式の場合</a></li><li><a href="#toc13" tabindex="0">・「YYYY.MM.DD」形式の場合</a></li><li><a href="#toc14" tabindex="0">・文字列がNullの場合</a></li></ol></li><li><a href="#toc15" tabindex="0">・日付型→文字列型</a></li></ol></li><li><a href="#toc16" tabindex="0">メモ型→文字列（テキスト型）</a></li><li><a href="#toc17" tabindex="0">数値→通貨型</a></li></ol></li><li><a href="#toc18" tabindex="0">参考：データ型変換関数一覧（Microsoft公式サイトより）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">よく使うデータ型変換と使用例</span></h2>



<h3 class="wp-block-heading"><span id="toc2">文字列⇔数値</span></h3>



<h4 class="wp-block-heading"><span id="toc3">・文字列→数値（整数型）</span></h4>



<pre class="wp-block-code"><code>CInt(&#91;項目名])</code></pre>



<p>変換例</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>変換前</th><th>変換後</th></tr></thead><tbody><tr><td>－１，２３４</td><td>-1234</td></tr><tr><td>－１２３４．５</td><td>-1234</td></tr><tr><td>1,000.001</td><td>1000</td></tr><tr><td>0</td><td>0</td></tr><tr><td>(Null)</td><td>#エラー</td></tr><tr><td>-1.001</td><td>-1</td></tr><tr><td>１２３４．５</td><td>1234</td></tr><tr><td>￥１，２３４</td><td>1234</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><span id="toc4">・文字列→数値（長整数型）</span></h4>



<pre class="wp-block-code"><code>CLng(&#91;項目名])</code></pre>



<p>変換例</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>変換前</th><th>変換後</th></tr></thead><tbody><tr><td>－１，２３４</td><td>-1234</td></tr><tr><td>－１２３４．５</td><td>-1234</td></tr><tr><td>1,000.001</td><td>1000</td></tr><tr><td>0</td><td>0</td></tr><tr><td>(Null)</td><td>#エラー</td></tr><tr><td>-1.001</td><td>-1</td></tr><tr><td>１２３４．５</td><td>1234</td></tr><tr><td>￥１，２３４</td><td>1234</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><span id="toc5">・文字列→数値（倍精度浮動小数点型）</span></h4>



<pre class="wp-block-code"><code>CDbl(&#91;項目名])</code></pre>



<p>変換例</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>変換前</th><th>変換後</th></tr></thead><tbody><tr><td>－１，２３４</td><td>-1234</td></tr><tr><td>－１２３４．５</td><td>-1234.5</td></tr><tr><td>1,000.001</td><td>1000.001</td></tr><tr><td>0</td><td>0</td></tr><tr><td>(Null)</td><td>#エラー</td></tr><tr><td>-1.001</td><td>-1.001</td></tr><tr><td>１２３４．５</td><td>1234.5</td></tr><tr><td>￥１，２３４</td><td>1234</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><span id="toc6">&nbsp;参考：文字列→数値においてValやCSng、CDecを使わない理由</span></h4>



<p><strong>・Val</strong><br>文字列から数値への変換といえば、Val関数もありますが、<br>文字列に「，」や「￥」、全角文字が含まれると対応できない（値が0になる）ため、あまりおすすめできません。<br>汎用性を考えるとCDbl([項目名])がおすすめです。</p>



<p><strong>・CSng</strong><br>単精度浮動小数点型は演算誤差が発生しやすくおすすめできません。<br>そもそもややこしい分野なのであまり理解せず使用するには危険かと思います。&nbsp;</p>



<p><strong>・CDec</strong><br>Access クエリではサポートされていません。</p>



<h4 class="wp-block-heading"><span id="toc7">・数値→文字列</span></h4>



<pre class="wp-block-code"><code>CStr(&#91;項目名])</code></pre>



<p>変換例</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>数値（整数型）</th><th>数値（長整数型）</th><th>数値（単精度浮動小数点型）</th><th>数値（倍精度浮動小数点型）</th></tr></thead><tbody><tr><td>1000</td><td>1000</td><td>1000.001</td><td>1000.001</td></tr><tr><td>1</td><td>1</td><td>1</td><td>1</td></tr><tr><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>-1</td><td>-1</td><td>-1</td><td>-1</td></tr><tr><td>-1000</td><td>-1000</td><td>-1000.001</td><td>-1000.001</td></tr></tbody></table></figure>



<p>↓　文字列変換</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>文字列</th><th>文字列</th><th>文字列</th><th>文字列</th></tr></thead><tbody><tr><td>1000</td><td>1000</td><td>1000.001</td><td>1000.001</td></tr><tr><td>1</td><td>1</td><td>1</td><td>1</td></tr><tr><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>-1</td><td>-1</td><td>-1</td><td>-1</td></tr><tr><td>-1000</td><td>-1000</td><td>-1000.001</td><td>-1000.001</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><span id="toc8">・変換値にNullが含まれる場合</span></h4>



<p>変換元の項目に値が何もない（Null）場合がありますが、<br>変換関数で出力される値は殆どの場合「#エラー」となってしまいます。<br>そのため、Nullが想定される場合はNullを指定の値に置換するNz関数を利用します。</p>



<pre class="wp-block-code"><code>Nz(&#91;項目名], 置換値）</code></pre>



<p>例）CDbl(Nz([項目名],0))、CStr(Nz([項目名],0))<br>　　変換前にNullが0に置換されるので、エラーとなりません。</p>



<h3 class="wp-block-heading"><span id="toc9">文字列⇔日付型</span></h3>



<h4 class="wp-block-heading"><span id="toc10">・文字列→日付型</span></h4>



<p>基本、日付型への変換はCDateを使用しますが、<br>文字列がどのような形式かでやり方が異なります。</p>



<h5 class="wp-block-heading"><span id="toc11">・「YYYY/MM/DD」「YYYY年MM月DD日」「gg年MM月DD日」形式の場合</span></h5>



<pre class="wp-block-code"><code>CDate(&#91;項目名])</code></pre>



<p>変換例<br>「#エラー」となっている箇所については、次項から説明します。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>変換前</th><th>変換後</th></tr></thead><tbody><tr><td>20210501</td><td>#エラー</td></tr><tr><td>2021/05/02</td><td>2021/05/02</td></tr><tr><td>2021年5月3日</td><td>2021/05/03</td></tr><tr><td>令和3年5月4日</td><td>2021/05/04</td></tr><tr><td>2021.05.05</td><td>#エラー</td></tr><tr><td>(Null)</td><td>#エラー</td></tr></tbody></table></figure>



<h5 class="wp-block-heading"><span id="toc12">・「YYYYMMDD」形式の場合</span></h5>



<pre class="wp-block-code"><code>CDate(Format(&#91;項目名],"@@@@\/@@\/@@"))</code></pre>



<p>または、</p>



<pre class="wp-block-code"><code>DateSerial(Mid(&#91;項目名],1,4),Mid(&#91;項目名],5,2),Mid(&#91;項目名],7,2))</code></pre>



<p>どちらの関数を使っても結果は特に変わらないため好みだと思いますが、<br>個人的には見やすく、ミスも少なそうなのでFormatを使用するのがおすすめです。</p>



<p>変換例</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>変換前</th><th>変換後</th></tr></thead><tbody><tr><td>20210501</td><td>2021/05/01</td></tr></tbody></table></figure>



<h5 class="wp-block-heading"><span id="toc13">・「YYYY.MM.DD」形式の場合</span></h5>



<pre class="wp-block-code"><code>CDate(Replace(&#91;項目名],".","/"))</code></pre>



<p>変換例</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>変換前</th><th>変換後</th></tr></thead><tbody><tr><td>2021.05.05</td><td>2021/05/05</td></tr></tbody></table></figure>



<h5 class="wp-block-heading"><span id="toc14">・文字列がNullの場合</span></h5>



<pre class="wp-block-code"><code>IIf(IsNull(&#91;項目名]),Null,CDate(&#91;項目名]))</code></pre>



<p>NullであればNullを返すので、エラーとなりません。</p>



<h4 class="wp-block-heading"><span id="toc15">・日付型→文字列型</span></h4>



<pre class="wp-block-code"><code>CStr(&#91;項目名])</code></pre>



<p>変換例</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>変換前</th><th>変換後</th></tr></thead><tbody><tr><td>2021/01/03</td><td>2021/01/03</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">メモ型→文字列（テキスト型）</span></h3>



<p>変換関数はありません。</p>



<p>変換不要で、<br>・メモ型→文字列<br>に値の代入（更新）ができます。</p>



<h3 class="wp-block-heading"><span id="toc17">数値→通貨型</span></h3>



<pre class="wp-block-code"><code>CCur(&#91;項目名])</code></pre>



<p>変換例</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>変換前</th><th>変換後</th></tr></thead><tbody><tr><td>-1000.001</td><td>-¥1,000.001<br>（見た目上は-¥1,000）</td></tr><tr><td>-1</td><td>-¥1</td></tr><tr><td>0</td><td>¥0</td></tr><tr><td>1</td><td>¥1</td></tr><tr><td>1000.001</td><td>¥1,000.001<br>（見た目上は¥1,000）</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc18">参考：データ型変換関数一覧（Microsoft公式サイトより）</span></h2>



<p>データ変換関数は主に以下のような「C」から始まるものがあります。<br>これらの他にも変換関数はありますが、これだけ知っていたら十分かと思われます。</p>



<p><a href="https://support.microsoft.com/ja-jp/office/%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B%E5%A4%89%E6%8F%9B%E9%96%A2%E6%95%B0-8ebb0e94-2d43-4975-bb13-87ac8d1a2202">Microsoft：データ型変換関数</a>より引用</p>



<figure id="tblID0EJDAAA" class="wp-block-table"><table><thead><tr><th><strong>関数</strong></th><th><strong>戻り値の型</strong></th><th><strong>引数&nbsp;</strong><strong><em>expression</em>&nbsp;</strong><strong>の範囲</strong></th></tr></thead><tbody><tr><td><strong>CBool</strong></td><td>ブール値型</td><td>任意の有効な<strong>文字列式</strong>または数式を指定します。</td></tr><tr><td><strong>CByte</strong></td><td>バイト型</td><td>0 から 255。</td></tr><tr><td><strong>CCur</strong></td><td>通貨型</td><td>-922,337,203,685,477.5808 から 922,337,203,685,477.5807。</td></tr><tr><td><strong>CDate</strong></td><td>日付型</td><td>任意の有効な日付式を指定します。</td></tr><tr><td><strong>CDbl</strong></td><td>倍精度浮動小数点型</td><td>-1.79769313486231E308 から<br>-4.94065645841247E-324 (負の値)。<br>4.94065645841247E-324 から 1.79769313486232E308 (正の値)。</td></tr><tr><td><strong>CDec</strong></td><td>小数点型</td><td>
<p>小数点以下の桁数が 0 の場合 (小数部分を持たない場合)、<br>+/-79,228,162,514,264,337,593,543,950,335。<br>小数点以下の桁数が 28 桁の場合、<br>+/-7.9228162514264337593543950335。<br>最小値は、0 を除いた場合は、<br>0.0000000000000000000000000001。</p>
</td></tr><tr><td><strong>CInt</strong></td><td>整数型</td><td>-32,768 から 32,767。小数点以下は丸められます。</td></tr><tr><td><strong>CLng</strong></td><td>長整数型</td><td>-2,147,483,648 から 2,147,483,647。<br>小数点以下は丸められます。</td></tr><tr><td><strong>CSng</strong></td><td>単精度浮動小数点型</td><td>-3.402823E38 から -1.401298E-45 (負の値)。<br>1.401298E-45 から 3.402823E38 (正の値)。</td></tr><tr><td><strong>CStr</strong></td><td>文字列</td><td>CStr の戻り値は&nbsp;<em>expression</em>&nbsp;引数に依存します。</td></tr><tr><td><strong>CVar</strong></td><td>バリアント型</td><td>数値の場合は<strong>倍精度浮動小数点型</strong>の範囲と同です。<br>数値以外の場合は<strong>文字列型の範囲</strong>と同じです。</td></tr></tbody></table></figure>
<p>投稿 <a href="https://nyanblog2222.com/office/access/3299/">【Access】データ型変換まとめ【文字列・数値・日付など】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/access/3299/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access】mdbとaccdbの違い、変換方法、変換後の不具合等</title>
		<link>https://nyanblog2222.com/office/access/2855/</link>
					<comments>https://nyanblog2222.com/office/access/2855/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Mon, 11 Jan 2021 10:19:13 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[mdbとaccdbの違い]]></category>
		<category><![CDATA[デメリット]]></category>
		<category><![CDATA[メリット]]></category>
		<category><![CDATA[変換方法]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2855</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/39.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/39.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/39-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/39-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/39-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />Accessファイルの拡張子である「mdb」と「accdb」の違いや「accdb」への変換方法、変換した場合のメリット・デメリット（不具合）等について紹介します。 「mdb」から「accdb」へ変換した際のメリット・デメ [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/2855/">【Access】mdbとaccdbの違い、変換方法、変換後の不具合等</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/39.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/39.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/39-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/39-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/39-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><p>Accessファイルの拡張子である<span class="marker-under">「mdb」と「accdb」の違い</span>や<span class="marker-under">「accdb」への変換方法</span>、<br><span class="marker-under">変換した場合のメリット・デメリット（不具合）</span>等について紹介します。</p>
<p>「mdb」から「accdb」へ変換した際のメリット・デメリット（不具合）については、<br>主に以下の公式情報に沿って記述しています。<br>・<a class="link" href="https://support.microsoft.com/ja-jp/office/%E4%BD%BF%E7%94%A8%E3%81%8C%E6%8E%A8%E5%A5%A8%E3%81%95%E3%82%8C%E3%82%8B-access-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%BD%A2%E5%BC%8F-012d9ab3-d14c-479e-b617-be66f9070b41#:~:text=Access%202007%E3%81%8B%E3%82%89%E5%A7%8B%E3%82%81%E3%81%A6%E3%80%81.accdb,%E3%81%8C%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82">Microsoft サポート：使用が推奨される Access ファイル形式</a></p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">mdbとaccdbとは</a></li><li><a href="#toc2" tabindex="0">mdbからaccdbへの変換方法</a></li><li><a href="#toc3" tabindex="0">変換するメリット</a><ol><li><a href="#toc4" tabindex="0">複数値を持つフィールドが使用可能</a></li><li><a href="#toc5" tabindex="0">添付ファイル データ型が使用可能</a></li><li><a href="#toc6" tabindex="0">SharePointとOutlookとの連携強化（セキュリティ要件のクリア）</a></li><li><a href="#toc7" tabindex="0">暗号化の強化</a></li><li><a href="#toc8" tabindex="0">長いテキスト (メモ型) フィールド履歴の管理</a></li><li><a href="#toc9" tabindex="0">集計フィールドが使用可能（Access2010以降）</a></li></ol></li><li><a href="#toc10" tabindex="0">変換するデメリット（不具合）</a><ol><li><a href="#toc11" tabindex="0">Access2007より古いバージョンで「accdb」を開けない</a></li><li><a href="#toc12" tabindex="0">データベースのレプリケーションが使用不可</a><ol><li><a href="#toc13" tabindex="0">Accessファイルのレプリカとは</a></li><li><a href="#toc14" tabindex="0">Access2013以降からは一切使用できない</a></li><li><a href="#toc15" tabindex="0">レプリケートされているmdbをaccdbに変換するには</a></li></ol></li><li><a href="#toc16" tabindex="0">ユーザー レベル セキュリティ（ユーザーと権限の管理）が使用不可</a></li><li><a href="#toc17" tabindex="0">リンクテーブル元であった場合、リンクを更新する必要あり</a></li><li><a href="#toc18" tabindex="0">Recordsetオブジェクトを使用している場合、型の不一致エラーが発生</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">mdbとaccdbとは</span></h2>
<p>「mdb」と「accdb」はAccessファイルの拡張子で、<br><span class="marker-under">Access2007より前は「mdb」、Access2007以降は「accdb」</span>となりました。</p>
<p>以下の表の通り同じ「mdb」の中でも、世代によって若干異なり、<br>Access 97 データベースにいたっては、<br>Access 2013以降で、開いたり新しいデータベースへ変換したりできなくなりました。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/780f180b9da86d65ae6f15df8513119e.png" alt="Access拡張子表" width="626" height="109" class="alignnone size-full wp-image-2856" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/780f180b9da86d65ae6f15df8513119e.png 626w, https://nyanblog2222.com/wp-content/uploads/2021/01/780f180b9da86d65ae6f15df8513119e-300x52.png 300w" sizes="auto, (max-width: 626px) 100vw, 626px" /></p>
<p>機能面について詳しくは「accdb」へ変換するメリット・デメリットで説明しますが、<br>「accdb」にはいくつか便利な機能が追加されていますが、<br>根本的な部分は「mdb」と大差ありません。</p>
<p>ただ、Access 97 データベースの例もあるため<br>今後はAccess 2000 データベース以降の「mdb」についても<span class="marker-under-red">使用できなくなる可能性が高く</span>、<br>できれば<span class="marker-under">早急にaccdb変換した方がいい</span>かと思います。</p>
<h2><span id="toc2">mdbからaccdbへの変換方法</span></h2>
<p>「mdb」から「accdb」への変換は簡単です。</p>
<p>mdbファイルを開き、<br>「ファイル」→「保存して発行」→「データベースに名前を付けて保存」→「Accessデータベース（*.accdb）」→「名前を付けて保存」<br>で保存のダイアログが出るので、元と同じ名前で保存すれば「accdb」への変換完了です。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-09-min.png" alt="accdb変換" width="1174" height="506" class="alignnone size-full wp-image-2860" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-09-min.png 800w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-09-min-300x129.png 300w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-09-min-1024x441.png 1024w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-09-min-768x331.png 768w" sizes="auto, (max-width: 1174px) 100vw, 1174px" /></p>
<h2><span id="toc3">変換するメリット</span></h2>
<h3><span id="toc4">複数値を持つフィールドが使用可能</span></h3>
<p><span class="marker-under">コンボボックスに「複数の値を許可」が新設</span>されました。</p>
<p>設定方法は以下です。<br>（フィールドを追加する際に、データ型でルックアップウィザードから設定する方法もあります）<br>１．コンボボックスで選択したい値を、「値集合ソース」にセット<br>２．「複数の値を許可」にチェックを入れる。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-1-min.png" alt="設定" width="371" height="375" class="alignnone size-full wp-image-2888" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-1-min.png 371w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-1-min-297x300.png 297w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-1-min-120x120.png 120w" sizes="auto, (max-width: 371px) 100vw, 371px" /></p>
<p>設定すると、このような形でフィールドに複数の値を入れることができるようになります。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-2-min.png" alt="選択" width="348" height="191" class="alignnone size-full wp-image-2889" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-2-min.png 348w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-2-min-300x165.png 300w" sizes="auto, (max-width: 348px) 100vw, 348px" /></p>
<p>また、以下のクエリで複数の値が入ったテーブルを抽出すると、複数レコードにわたって値が抽出されます。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-4-min.png" alt="デザイン" width="336" height="244" class="alignnone size-full wp-image-2890" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-4-min.png 336w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-4-min-300x218.png 300w" sizes="auto, (max-width: 336px) 100vw, 336px" /></p>
<p>↓</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-5-min.png" alt="抽出結果" width="222" height="136" class="alignnone size-full wp-image-2891"></p>
<h3><span id="toc5">添付ファイル データ型が使用可能</span></h3>
<p><span class="marker-under">添付ファイル（最大2GB）を格納できるデータ型が新設</span>されました。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-8-min.png" alt="設定" width="385" height="92" class="alignnone size-full wp-image-2893" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-8-min.png 385w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-8-min-300x72.png 300w" sizes="auto, (max-width: 385px) 100vw, 385px" /></p>
<p>↓</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-7-min.png" alt="取り込み" width="507" height="322" class="alignnone wp-image-2894 size-full" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-7-min.png 507w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-7-min-300x191.png 300w" sizes="auto, (max-width: 507px) 100vw, 507px" /></p>
<p>今までもハイパーリンク型でファイルのリンクを貼ることはできましたが、<br>取り込むことができるようになったおかげで、<br>例えば以下のようにフォーム上に画像を簡単に表示できるようになりました。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-9-min.png" alt="画像表示" width="316" height="282" class="alignnone size-full wp-image-2895" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-9-min.png 316w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-9-min-300x268.png 300w" sizes="auto, (max-width: 316px) 100vw, 316px" /></p>
<h3><span id="toc6">SharePointとOutlookとの連携強化（セキュリティ要件のクリア）</span></h3>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-min.png" alt="連携可能" width="728" height="405" class="alignnone size-full wp-image-2892" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-min.png 728w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-min-300x167.png 300w" sizes="auto, (max-width: 728px) 100vw, 728px" /></p>
<blockquote></blockquote>
<p>今回セキュリティ面が見直され、<span class="marker-under">SharePointとOutlookのセキュリティ要件がクリア</span>されました。</p>
<p>Access2007からは、<br>「accdb」と「mdb」のどちらからでもSharePointとOutlookへの連携は可能ですが、<br>「mdb」の場合、安全でないコードをデータベースに含めることができるらしく、<br>SharePointとOutlookからブロックされてしまう、ということがありました。</p>
<h3><span id="toc7">暗号化の強化</span></h3>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-2-min.png" alt="暗号化" width="812" height="368" class="alignnone size-full wp-image-2867" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-2-min.png 800w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-2-min-300x136.png 300w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-2-min-768x348.png 768w" sizes="auto, (max-width: 812px) 100vw, 812px" /></p>
<p>以前のバージョンでは赤枠に「ユーザーと権限の管理」というボタンが設置してありましたが、<br><span class="marker-under">「パスワードを使用して暗号化」</span>に変わりました。<br>今回の暗号化は、以前のバージョンのAccess（mdb）よりも強力な暗号化アルゴリズムが使用されているそうです。</p>
<h3><span id="toc8">長いテキスト (メモ型) フィールド履歴の管理</span></h3>
<p><span class="marker-under">メモ型フィールドに変更履歴を追加</span>できるようになりました。</p>
<p>設定は「追加のみ」を「はい」にするだけです。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-10-min.png" alt="設定" width="645" height="311" class="alignnone size-full wp-image-2896" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-10-min.png 645w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-10-min-300x145.png 300w" sizes="auto, (max-width: 645px) 100vw, 645px" /></p>
<p>↓</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-11-min.png" alt="履歴表示" width="452" height="363" class="alignnone size-full wp-image-2897" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-11-min.png 452w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-11-min-300x241.png 300w" sizes="auto, (max-width: 452px) 100vw, 452px" /></p>
<p>履歴は以下のように保存されます。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-12-min.png" alt="変更履歴" width="487" height="265" class="alignnone size-full wp-image-2898" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-12-min.png 487w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-12-min-300x163.png 300w" sizes="auto, (max-width: 487px) 100vw, 487px" /></p>
<h3><span id="toc9">集計フィールドが使用可能（Access2010以降）</span></h3>
<p>テーブルのデータ型に<span class="marker-under">集計フィールドが追加</span>されました。<br>集計フィールドを使うことで、クエリを使わずテーブルのみで計算できます。</p>
<p>データ型を選択すると、式ビルダーが表示されるので、<br>式のカテゴリ（テーブルの項目）を選択しながら設定します。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-14-min.png" alt="集計フィールド設定" width="579" height="522" class="alignnone size-full wp-image-2899" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-14-min.png 579w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-14-min-300x270.png 300w" sizes="auto, (max-width: 579px) 100vw, 579px" /></p>
<p>↓</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-15-min.png" alt="集計" width="506" height="122" class="alignnone size-full wp-image-2900" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-15-min.png 506w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-11-15-min-300x72.png 300w" sizes="auto, (max-width: 506px) 100vw, 506px" /></p>
<h2><span id="toc10">変換するデメリット（不具合）</span></h2>
<h3><span id="toc11">Access2007より古いバージョンで「accdb」を開けない</span></h3>
<p><span class="marker-under">「accdb」はAccess2007より前のバージョンでは開くことができません</span>。<br>なので、組織にAccess2002やAccess2003が未だ存在するのであれば、買い替えるまでは変換しない方がよいでしょう。</p>
<h3><span id="toc12">データベースのレプリケーションが使用不可</span></h3>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-min.png" alt="レプリカ" width="689" height="129" class="alignnone size-full wp-image-2868" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-min.png 689w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-min-300x56.png 300w" sizes="auto, (max-width: 689px) 100vw, 689px" /></p>
<p>レプリケーションとは<span class="marker-under">Accessファイルのレプリカを作成する手法（レプリケート）</span>ですが、<br>「accdb」では機能がなくなりました。</p>
<h4><span id="toc13">Accessファイルのレプリカとは</span></h4>
<p><span class="marker-under">Accessファイルを非共有で使用する場合のミラーリング（同期）手段</span>です。<br>一般的に組織でAccessファイルを使う場合は、共有フォルダを利用し、同じAcceessファイルを使用します。<br>ただ、例えば外出する際に端末を持ち運び、Accessファイルについても外出先で更新する時等、<br>普通にAccessファイルをコピーしてしまうと持ち帰ったときにデータの同期が困難です。<br>その際に、元のAccessファイル（デザインマスタ）のレプリカを作成し、外出する際はレプリカを持ち運び、<br>外出先から持ち帰った際はレプリカをデザインマスタに同期することで、<br>レコードの更新等を反映させることができます。</p>
<h4><span id="toc14">Access2013以降からは一切使用できない</span></h4>
<p><span>レプリケートされたデータベースは、</span><span class="marker-under">Access2013以降からは以下のエラーで「mdb」であっても使用できません</span>。<br>「<span>現在のバージョンのMicrosoft Accessでは、レプリケートされたデータベースはサポートされていません。<br>このデータベースを使用するには、以前のバージョンのMicrosoft Accessで開いてください</span>」</p>
<h4><span id="toc15">レプリケートされているmdbをaccdbに変換するには</span></h4>
<p>Access2010以前のバージョンで、レプリケートされたmdbのデータを空のmdbにインポートして、<br>accdb変換します。<br>データベースのインポートについては以下で触れてますので参考にしてください。</p>


<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/office/access/2541/" title="【対処方法】Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/37-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/37-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/37-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/37-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/37-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【対処方法】Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました</div><div class="blogcard-snippet internal-blogcard-snippet">「Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました」のエラー対処方法の解決例を紹介します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.10.31</div></div></div></div></a>
</div></figure>


<h3><span id="toc16">ユーザー レベル セキュリティ（ユーザーと権限の管理）が使用不可</span></h3>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2866" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-1-min.png" alt="ユーザレベルセキュリティ" width="788" height="359" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-1-min.png 788w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-1-min-300x137.png 300w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-1-min-768x350.png 768w" sizes="auto, (max-width: 788px) 100vw, 788px" /></p>
<p>ユーザーレベルセキュリティとは、<span class="marker-under">ユーザやグループ単位で各種操作への権限を付与する機能</span>です。<br />一見便利そうな機能ですが、管理が煩雑になったり、<br />使用する端末に「SYSTEM.MDW」というファイルが必要となったりと少なからず問題があったようです。</p>
<h3><span id="toc17">リンクテーブル元であった場合、リンクを更新する必要あり</span></h3>
<p>変換する「mdb」が、他のAccessファイルからリンクテーブル先となっている場合、<br />「accdb」への変換後、他のAccessファイルから<span class="marker-under">リンクテーブルが見つからない旨のエラーメッセージ</span>が出ます。</p>
<p>その場合、以下のリンクテーブルマネージャーからエラーが出たAccessファイルにてリンクテーブルのパスの更新が必要です。</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2869" src="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-3-min.png" alt="リンクテーブル更新" width="676" height="219" srcset="https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-3-min.png 676w, https://nyanblog2222.com/wp-content/uploads/2021/01/2021-01-10-3-min-300x97.png 300w" sizes="auto, (max-width: 676px) 100vw, 676px" /></p>
<h3><span id="toc18">Recordsetオブジェクトを使用している場合、型の不一致エラーが発生</span></h3>
<p>もし変換前の「mdb」でDAOライブラリを参照し<span class="marker-under">Recordsetオブジェクトを使用している場合、型の不一致エラー</span>が発生します。<br />「accdb」ではADOライブラリが初めから参照設定されていますが、<br />ADO・DAOの両方のライブラリにRecordsetオブジェクトが存在するため競合するからです。</p>
<p>そこで競合を解決するために以下のように明示します。<br />「Dim XXX As Recordset」であれば、<br />「Dim XXX As DAO.Recordset」でOK</p>
<p>以上、「mdb」はいずれ使えなくなる可能性があるため、<br />デメリットが許容できるのであれば、<span class="marker-under">お早めに「accdb」変換</span>されることをおすすめします！</p><p>投稿 <a href="https://nyanblog2222.com/office/access/2855/">【Access】mdbとaccdbの違い、変換方法、変換後の不具合等</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/access/2855/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【対処方法】このプロジェクトのコードは、64ビットシステムで&#8230;【Declare,PrtSafe】</title>
		<link>https://nyanblog2222.com/programming/vba/2666/</link>
					<comments>https://nyanblog2222.com/programming/vba/2666/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 19 Dec 2020 23:54:42 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[エラー]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2666</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/38.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/38.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/38-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/38-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/38-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回はパソコンの入れ替え後等にVBAマクロ付きのExcelやAccessファイルを使用した際、 「このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。 Declareステートメントの確認 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/vba/2666/">【対処方法】このプロジェクトのコードは、64ビットシステムで&#8230;【Declare,PrtSafe】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/38.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/38.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/38-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/38-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/38-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><p>今回はパソコンの入れ替え後等にVBAマクロ付きのExcelやAccessファイルを使用した際、<br>
<span class="marker-under-red">「このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。<br>
Declareステートメントの確認および更新を行い、<br>
次にDeclareステートメントにPrtSafe 属性を設定してください。」</span><br>
とエラーコードがでてしまった場合の対処方法を紹介します。</p>
<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2020/11/2020-11-29-min.png" alt="エラー" width="407" height="182" class="alignnone size-full wp-image-2667" srcset="https://nyanblog2222.com/wp-content/uploads/2020/11/2020-11-29-min.png 407w, https://nyanblog2222.com/wp-content/uploads/2020/11/2020-11-29-min-300x134.png 300w" sizes="auto, (max-width: 407px) 100vw, 407px" /></p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-22" checked><label class="toc-title" for="toc-checkbox-22">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">エラーの原因は？どんな状況で発生する？</a></li><li><a href="#toc2" tabindex="0">対処方法</a></li><li><a href="#toc3" tabindex="0">コード変更例</a><ol><li><a href="#toc4" tabindex="0">Declare文の変更</a></li><li><a href="#toc5" tabindex="0">API実行箇所をDeclare文の型に合わせる（引数・戻り値）</a></li><li><a href="#toc6" tabindex="0">補足：PtrSafeやPtrLong型について</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">エラーの原因は？どんな状況で発生する？</span></h2>
<p><span class="marker-under">Office64bitで、<br>
Win32API（32bitのWindows API）を呼び出す</span>と該当のエラーメッセージがでます。<br>
64bitと32bitでは使用できる領域が異なるため、<br>
通常そのまま使うと何かしら問題が発生する場合があります。<br>
よって「使っても良いか」確認の意味も込めたエラーメッセージとなります。</p>
<p>例えば、<span class="marker-under">パソコンの入れ替えやOfficeのバージョンアップで、<br>
Officeが32bitから64bitに変わった際</span>に発生します。</p>
<h2><span id="toc2">対処方法</span></h2>
<p>対処方法は以下になります。</p>
<ul>
<li><strong class="brown_color">Declare文の変更</strong>（※１）<br>
①PtrSafeを追加<br>
②Long型を適宜PtrLong型に変更</li>
<li><strong class="brown_color">API実行箇所をDeclare文の型に合わせる（引数・戻り値）&nbsp;</strong></li>
</ul>
<p><span class="marker-under">※１　Office64bitでのDeclare文の記述方法は、<br>
以下のとおりMicrosoft公式より公開されていますので、 コピーして使用します。</span></p>
<p><a class="link" href="https://docs.microsoft.com/ja-jp/office/troubleshoot/office-suite-issues/win32api_ptrsafe-with-64-bit-support">Microsoft Docs：Win32API_PtrSafe</a>　より、<br>
「<a class="link broken_link" href="https://www.microsoft.com/en-us/download/details.aspx?id=9970">Office 2010 ヘルプファイル:64 ビットのサポートが含まれる Win32API_PtrSafe</a>」<br>
へのリンクにとび、<br>
<span>「Office2010Win32API_PtrSafe.exe」をダウンロード・インストール。<br>
</span>インストールすると、<br>
「C:\Office 2010 Developer Resources\Documents\Office2010Win32API_PtrSafe」 に、<br>
Win32API_PtrSafe.TXTが出来上がるので、こちらを開き、該当箇所をコピペする。</p>
<p>なお、Office2010より64bitが新しくできたためOffice2010となっていますが、<br>
他バージョンでも同じように上記のURLからダウンロードします。</p>
<h2><span id="toc3">コード変更例</span></h2>
<p>例えば、以下のようなコードを記述しているとして、どのように修正するか説明します。<br>
コード内容としては、<span class="marker-under">”user32”というWin32APIを使用</span>し、<br>
「<span class="marker-under">アクティブウィンドウの名前を取得して、出力する</span>」という単純なものです。</p>


<pre class="wp-block-code"><code>Declare Function GetActiveWindow Lib "user32" () As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Sub GetWindowName()

'アクティブウインドウのハンドル取得
Dim lWindowHwnd As Long
lWindowHwnd = GetActiveWindow()

'バッファを確保
Dim sWindowName As String
sWindowName = String(256, Chr(0))

'アクティブウインドウのウインドウ名取得
Dim lWindowNameLen As Long
lWindowNameLen = GetWindowText(lWindowHwnd, sWindowName, Len(sWindowName))

'イミディエイトに出力
Debug.Print "現在アクテイブウインドウのタイトル名は"
Debug.Print sWindowName
Debug.Print "長さは" + Str(lWindowNameLen) + "です"

End Sub</code></pre>


<p>もちろん、Office32bitではエラーメッセージなしで正常に動きます。</p>
<h3><span id="toc4">Declare文の変更</span></h3>
<p>まず、<span class="marker-under">Win32API_PtrSafe.TXT</span>を開いて該当の箇所<br>
「GetActiveWindow」「GetWindowTextA」などで検索し、コピペします。</p>


<pre class="wp-block-code"><code>Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr
Declare PtrSafe Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As LongPtr, ByVal lpString As String, ByVal cch As Long) As Long</code></pre>


<p>Declare文の変更はたったこれだけです♪<br><span class="marker-under-red">注意点は、必ず「Win32API_PtrSafe.TXT」を見てコピペする</span>ことです。<br>バグの元なので全てのLong型をPtrLong型にしないようにしてください。</p>
<h3><span id="toc5">API実行箇所をDeclare文の型に合わせる（引数・戻り値）</span></h3>
<p>次に<span class="marker-under">API実行箇所については、Declare文と睨めっこしながら変更</span>していきます。<br>今回の場合、GetActiveWindowの戻り値の型であり、<br>GetWindowTextの第一引数であるlWindowHwndを <span class="marker-under">Long型からLongPtr型</span>に変えます。<br>命名規則にもよりますが、変数名のルールで型名も考慮しているのであればそちらも変更します。<br>（<span class="marker-under"> lWindowHwndからlpWindowHwnd</span>）</p>


<pre class="wp-block-code"><code>Private Sub GetWindowName()

'アクティブウインドウのハンドル取得
Dim lpWindowHwndAs LongPtr
lpWindowHwnd = GetActiveWindow()

'バッファを確保
Dim sWindowName As String
sWindowName = String(256, Chr(0))

'アクティブウインドウのウインドウ名取得
Dim lWindowNameLen As Long
lWindowNameLen = GetWindowText(lpWindowHwnd, sWindowName, Len(sWindowName))

'イミディエイトに出力
Debug.Print "現在アクテイブウインドウのタイトル名は"
Debug.Print sWindowName
Debug.Print "長さは" + Str(lWindowNameLen) + "です"

End Sub</code></pre>


<p>他にも元からLong型のものがありますが、Declare文でもLong型なので変更しません。</p>
<p>以上で、VBAのOffice64bit対応は完了です。</p>
<h3><span id="toc6">補足：PtrSafeやPtrLong型について</span></h3>
<p>簡単に紹介すると以下になります。</p>
<ul>
<li><strong class="brown_color">PtrSafe<br />Office64bitで実行しても安全であると明示するキーワード</strong></li>
<li style="list-style-type: none;"> </li>
</ul>
<ul>
<li><strong class="brown_color">PtrLong型</strong><br />Office32bitではLong型に、Office64bitではLongLong形になる型</li>
</ul>
<p>このことから、<br /><span class="marker-under">Office64bitで使えるようにコードを書き換えても、 Office32bitで動くよう</span>になっています。</p><p>投稿 <a href="https://nyanblog2222.com/programming/vba/2666/">【対処方法】このプロジェクトのコードは、64ビットシステムで&#8230;【Declare,PrtSafe】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/vba/2666/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【対処方法】Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました</title>
		<link>https://nyanblog2222.com/office/access/2541/</link>
					<comments>https://nyanblog2222.com/office/access/2541/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 31 Oct 2020 01:05:29 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2541</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/37.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/37.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/37-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/37-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/37-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />正常に動いていたAccessファイルが、突然 「Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました」 とエラーメッセージが出て使えなくなってしまった場 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/access/2541/">【対処方法】Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/37.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/37.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/37-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/37-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/37-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>正常に動いていたAccessファイルが、突然
<span class="marker-under-red">「Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました」</span>
とエラーメッセージが出て使えなくなってしまった場合の対処方法を紹介します。</p>



<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2020/10/Access_OLE_ERR-min.png" alt="Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました" width="631" height="128" class="alignnone wp-image-2543 size-full" srcset="https://nyanblog2222.com/wp-content/uploads/2020/10/Access_OLE_ERR-min.png 631w, https://nyanblog2222.com/wp-content/uploads/2020/10/Access_OLE_ERR-min-300x61.png 300w" sizes="auto, (max-width: 631px) 100vw, 631px" /></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-24" checked><label class="toc-title" for="toc-checkbox-24">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">エラーの原因は？どんな状況で発生する？</a><ol><li><a href="#toc2" tabindex="0">エラー原因</a></li><li><a href="#toc3" tabindex="0">どんな状況で発生するか</a></li></ol></li><li><a href="#toc4" tabindex="0">対処方法・注意事項</a><ol><li><a href="#toc5" tabindex="0">対処方法</a></li><li><a href="#toc6" tabindex="0">注意事項</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">エラーの原因は？どんな状況で発生する？</span></h2>



<h3 class="wp-block-heading"><span id="toc2">エラー原因</span></h3>



<p>調べてみると、<span class="marker-under">対象のAccessファイルのフォーム等に何かしらの不具合があることが原因</span>のようでした。<br>
ただ、「これが原因！」というのは判別しづらいようですね。</p>



<h3 class="wp-block-heading"><span id="toc3">どんな状況で発生するか</span></h3>



<p>色々なパターンがあるようですが、<br>
<span class="marker-under">主にAccessファイルを作成したパソコンと異なるパソコンで使用すると起きる</span>ようです。</p>



<p>参考として、私は以下の状況でエラーが発生しました。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-border-color has-yellow-border-color">
<ul class="wp-block-list"><li>社内のパソコンリプレース</li><li>パソコン交換後、Accessのフォーム画面でボタンを押した際にエラーメッセージが出た</li><li>新旧パソコンの環境<br>旧パソコン：Windows7 32bit、Microsft Access 2013<br>新パソコン：Windows10 64bit、Microsft Access 2019 64bit</li><li>全てのAccessファイルでエラーが出たのではなく、多数ある中の一つだけ</li><li>Microsft Access 2019 32bitでも試してみたので、Officeのbit数の問題ではなさそう</li></ul>
</div>



<p>これは私の想像になりますが、新パソコンのチェック機能の強化により、旧パソコンではチェックされていなかった不具合が表に出てきてしまったのかもしれません。<br>新しいパソコンだと性能はもちろんセキュリティなども強化され、昔できていたことができなくなることはよくあることだからです。</p>



<h2 class="wp-block-heading"><span id="toc4">対処方法・注意事項</span></h2>



<h3 class="wp-block-heading"><span id="toc5">対処方法</span></h3>



<p>対処方法は「新しいAccessファイルを作り、元のAccessファイルから全ての情報をインポートする」です。<br>（説明する際の画像はMicrosoft Office 2010のものですが、手順自体はMicrosoft Office 2019でも同じです）</p>



<p>詳細な手順は以下になります。</p>



<p><span class="marker-under-blue">（前準備）拡張子がmdbの場合は、accdb変換</span><br>
必須ではありませんが、mdbはいつか使えなくなる危険性があるのでこのタイミングで変換しておいた方が無難です。<br>
例）CSVインポート.mdb→CSVインポート.accdb<br>
変換した場合はショートカットはもちろん、Accessファイルが他のAccessファイルからリンクテーブルとして参照されている場合、リンク先が変わってしまうためご注意ください。</p>



<p><img loading="lazy" decoding="async" width="1251" height="479" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-4-min.png" alt="accdb変換" class="alignnone wp-image-2563 size-full" srcset="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-4-min.png 800w, https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-4-min-300x115.png 300w, https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-4-min-1024x392.png 1024w, https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-4-min-768x294.png 768w" sizes="auto, (max-width: 1251px) 100vw, 1251px" /></p>



<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-5-min.png" alt="mdb→accdb" width="196" height="120" class="alignnone size-full wp-image-2566"></p>



<p><strong>１．対象のAccessファイルが入っているフォルダと異なるフォルダで右クリックし、 新規作成からMicrosoft Access データベースをクリック</strong></p>



<p> <img loading="lazy" decoding="async" width="721" height="203" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-1-min.png" alt="新規作成" class="alignnone wp-image-2569 size-full" srcset="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-1-min.png 721w, https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-1-min-300x84.png 300w" sizes="auto, (max-width: 721px) 100vw, 721px" /></p>



<p><img loading="lazy" decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-2-min.png" alt="新規作成" width="290" height="117" class="alignnone size-full wp-image-2568"></p>



<p><strong>２．新規作成されたAccessファイルを、対象のAccessファイルと同じ名前とする</strong></p>



<p> 例）「新規 Microsoft Access データベース.accdb」を作成し、「CSVインポート.accdb」にリネーム</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="182" height="119" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-3-min.png" alt="新規作成" class="wp-image-2567"/></figure>



<p><strong><strong>３．</strong>２で作成したAccessファイルを開き、外部データタブからAccessデータベースのインポートを選択</strong></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="487" height="250" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-6-min.png" alt="Accessインポート" class="wp-image-2570" srcset="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-6-min.png 487w, https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-6-min-300x154.png 300w" sizes="auto, (max-width: 487px) 100vw, 487px" /></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="745" height="547" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-7-min.png" alt="Accessインポート" class="wp-image-2571" srcset="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-7-min.png 745w, https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-7-min-300x220.png 300w" sizes="auto, (max-width: 745px) 100vw, 745px" /></figure>



<p><strong><strong>４．</strong>対象のAccessファイルをクリックして、OKを押すと「オブジェクトのインポート」画面が出るので、オプションをクリック</strong></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="544" height="411" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-9-min.png" alt="Accessインポート" class="wp-image-2572" srcset="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-9-min.png 544w, https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-9-min-300x227.png 300w" sizes="auto, (max-width: 544px) 100vw, 544px" /></figure>



<p><strong>５．オプションで出てきたチェック項目を全てチェックする</strong></p>



<p><strong>６．全てのタブ（テーブル・クエリ・フォーム・レポート・マクロ・モジュール）ですべて選択をクリックし、OKをクリック</strong></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="596" height="413" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-10-min.png" alt="Accessインポート" class="wp-image-2573" srcset="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-10-min.png 596w, https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-10-min-300x208.png 300w" sizes="auto, (max-width: 596px) 100vw, 596px" /></figure>



<p><strong>７．Accessファイルを閉じて、元々のAccessファイルのフォルダに移し替える。</strong></p>



<p>※元々のAccessファイルは念のため名前を変えてバックアップとして残しておいてください。</p>



<p><span class="marker-under">これでAccessファイルの作り直しは完了</span>です。</p>



<p>インポート中に何かしらエラーで取り込めないものがありますが、<br>恐らく何かしら問題のあるオブジェクトがほとんどですので、<br>基本不要なものなので気にしなくてもいいかと思います。</p>



<p>ただ、 念のためそのオブジェクトが使われていないかはインポート後に確認して、<br>必要であれば個別に対象のAccessファイルからコピペしてきてください。</p>



<h3 class="wp-block-heading"><span id="toc6">注意事項</span></h3>



<p>上記方法では、<span class="marker-under-red">VBAのプロジェクト名は引き継がれない</span>ので注意してください。<br>例えば、DAOを使ってテーブル操作をする場合は、Databeseオブジェクトの変数を宣言していたりしますが、その場合、被らないようにプロジェクト名をあえて固有の名前に変えていたりします。</p>



<p>その場合、インポート後に手で直してください。</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="358" height="495" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-12-min.png" alt="Accessインポート" class="wp-image-2574" srcset="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-12-min.png 358w, https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-12-min-217x300.png 217w" sizes="auto, (max-width: 358px) 100vw, 358px" /></figure>



<p>↓</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="309" height="491" src="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-13-min.png" alt="Accessインポート" class="wp-image-2575" srcset="https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-13-min.png 309w, https://nyanblog2222.com/wp-content/uploads/2020/10/2020-10-17-13-min-189x300.png 189w" sizes="auto, (max-width: 309px) 100vw, 309px" /></figure>


<p>投稿 <a href="https://nyanblog2222.com/office/access/2541/">【対処方法】Microsoft AccessがOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/access/2541/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Switch関数とSelect Caseステートメント【違いや記述方法を簡単に解説】</title>
		<link>https://nyanblog2222.com/programming/vba/2344/</link>
					<comments>https://nyanblog2222.com/programming/vba/2344/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 13 Sep 2020 13:11:00 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Switch　Select Case　違い]]></category>
		<category><![CDATA[VBA　Select Caseステートメント]]></category>
		<category><![CDATA[VBA　Switch関数]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2344</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/36.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/36.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/36-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/36-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/36-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />VBAには条件分岐の手段の一つとしてSwitch関数やSelect Caseステートメントがありますが、これらの違いや記述方法を紹介します。C言語やJAVA言語でのswitch文との比較もしてますので、そちらも良かったら [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/vba/2344/">【VBA】Switch関数とSelect Caseステートメント【違いや記述方法を簡単に解説】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/36.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/36.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/36-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/36-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/36-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>VBAには条件分岐の手段の一つとして<strong><span style="color:#b78d4a" class="has-inline-color">Switch関数</span></strong>や<strong><span style="color:#b78d4a" class="has-inline-color">Select Caseステートメント</span></strong>がありますが、これらの違いや記述方法を紹介します。<br>C言語やJAVA言語でのswitch文との比較もしてますので、そちらも良かったらどうぞ♪</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-26" checked><label class="toc-title" for="toc-checkbox-26">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Switch関数</a></li><li><a href="#toc2" tabindex="0">Select Caseステートメント</a></li><li><a href="#toc3" tabindex="0">参考（C言語のswitch文との比較）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Switch関数</span></h2>



<p><strong><span style="color:#b78d4a" class="has-inline-color">Switch関数は、ある式（expr）を評価し、Trueであれば値や式（value）を返します。</span></strong></p>



<p>構文については以下となります。</p>



<figure class="wp-block-table"><table><tbody><tr><td>Switch(expr_1,value_1,[expr_2,value_2…,[expr_n,value_n]))<br>expr ：必須。評価する式を指定<br>value：必須。式がTrueの場合に返される値または式</td></tr></tbody></table></figure>



<p>記述例として、以下を用意しました。<br>変数の値と特定の値が一致すれば、メッセージを返し、イミディエイトウィンドウに表示します。</p>



<pre class="wp-block-code basic"><code>' PrintImmediate
' イミディエイトウィンドウにメッセージを表示
Sub PrintImmediate()
    
    Dim sMsg As String
    sMsg = GetMsg_Switch(2)
    
    Debug.Print sMsg
    
End Sub</code></pre>



<pre class="wp-block-code basic"><code>' GetMsg_Switch(Integer)
' Switch関数を使ってメッセージを取得
Function GetMsg_Switch(iMsgCase As Integer)

    GetMsg_Switch = Switch(iMsgCase = 1, "正常１", iMsgCase = 2, "正常２")

End Function</code></pre>



<p>結果は、「正常２」と表示されます。</p>



<p>Switch関数を使っていく上で知っておきたいポイントは以下になります。<br>（例については上記の記述例を元にしています。）<br><strong><span style="color:#b78d4a" class="has-inline-color">・Switch関数を変数に代入しないとコンパイルエラーとなる</span></strong><br>例）○GetMsg_Switch = Switch(iMsgCase = 1, &#8220;正常１&#8221;, iMsgCase = 2, &#8220;正常２&#8221;)<br>　　×Switch(iMsgCase = 1, &#8220;正常１&#8221;, iMsgCase = 2, &#8220;正常２&#8221;)<br><strong><span style="color:#b78d4a" class="has-inline-color">・全ての式を評価するため、除算エラー等が起きる式には要注意</span></strong><br>例）iMsgCase = 1で、<br>　　GetMsg_Switch = Switch(iMsgCase = 1, &#8220;正常１&#8221;, iMsgCase = 2, &#8220;正常２&#8221;, iMsgCase = 3, 5 / 0)<br>　　といったコードの場合、「iMsgCase = 3, 5 / 0」部分も評価し除算エラーとなります。<br><strong><span style="color:#b78d4a" class="has-inline-color">・式がFalseだった場合、Nullを返す</span></strong><br>例）iMsgCaseが3の場合、Nullを変数に代入しようとするため、エラーが起きます。</p>



<p>こういったマイナス要素があるため、私は次項の「Select Caseステートメント」がおすすめです。</p>



<h2 class="wp-block-heading"><span id="toc2">Select Caseステートメント</span></h2>



<p><strong><span style="color:#b78d4a" class="has-inline-color">Select Caseステートメントは、ある変数の値（testexpression）を複数の値（expressionlist-n）と比較し、一致していれば特定の処理（statements-n）を行います。</span></strong></p>



<p>構文については以下となります。</p>



<figure class="wp-block-table"><table><tbody><tr><td>Select Case testexpression<br>[ Case expressionlist-n [ statements-n ]]<br>[ Case Else [ elsestatements ]]<br>End Select<br><br>testexpression：必須。 任意の変数を指定<br>expressionlist-n：省略可能。Caseがある場合は必須<br>statements-n：省略可能。値が一致していた場合実行される処理<br>elsestatements 省略可能。値が一致しない場合に実行される処理</td></tr></tbody></table></figure>



<p>記述例として、以下を用意しました。<br>変数の値と特定の値が一致すれば、メッセージを返し、イミディエイトウィンドウに表示します。</p>



<pre class="wp-block-code"><code>' PrintImmediate
' イミディエイトウィンドウにメッセージを表示
Sub PrintImmediate()
    
    Dim sMsg As String
    sMsg = GetMsg_SelectCase(2)
    
    Debug.Print sMsg
    
End Sub</code></pre>



<pre class="wp-block-code"><code>' GetMsg_SelectCase(Integer)
' SelectCaseステートメントを使ってメッセージを取得
Function GetMsg_SelectCase(iMsgCase As Integer)

       
    Select Case iMsgCase
    Case 1
        GetMsg_SelectCase = "正常１"
    Case 2
        GetMsg_SelectCase = "正常２"
    Case Else
        GetMsg_SelectCase = "異常"
    End Select
        

End Function</code></pre>



<p>結果は、「正常２」と表示されます。<br>もし、sMsg = GetMsg_SelectCase(3)だった場合は、「異常」と表示されます。</p>



<p><strong><span style="color:#b78d4a" class="has-inline-color">変数に想定外の値が入っていても、Case Elseがあるためエラーを出さずに対応できます。</span></strong></p>



<h2 class="wp-block-heading"><span id="toc3">参考（C言語のswitch文との比較）</span></h2>



<p>参考になりますが、C言語のswitch文は以下のような書き方をします。</p>



<pre class="wp-block-code"><code>int iMsgCase = 2;

switch(iMsgCase){
  case 1:
    printf("正常１¥n");
    break;
  case iMsgCase:
    printf("正常２¥n");
    break;
  default:
    printf("異常¥n");
}</code></pre>



<p>記述内容はほぼSelect Caseステートメントで、内容もほぼ同等の性能です。<br>逆にSwitch関数とは、名前は似てますが内容は似てません。</p>



<p>以上、今回はSwitch関数やSelect Caseステートメントについて紹介しました。<br>両者比較すると、<strong><span style="color:#b78d4a" class="has-inline-color">マイナスポイントの多いSwitch関数を使うよりは、Select Caseステートメントを使った方がよい</span></strong>のかなと思います。</p>



<p>Switch関数の強みは条件分岐を1行で書けるところかな？と当初考えましたが、いざコードを書いてみると1行に条件を詰め込むのは逆に読みにくいかもと感じました。。</p>



<p>以下まとめです。</p>



<figure class="wp-block-table"><table><tbody><tr><td>・個人差あるかもしれませんが性能は、<br>　Select Caseステートメント＞＞＞Switch関数<br>・C言語のswitch文とVBAのSwitch関数は似てるようで似てない<br>　　　　　　　　　　VBAでほぼ同等の性能はSelect Caseステートメント</td></tr></tbody></table></figure>



<p>本記事で参考にさせていただいたサイト：<br><a class="link" href="https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/switch-function">Microsoft Doc：Switch 関数</a><br><a class="link" href="https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/select-case-statement">Microsoft Doc：Select Case ステートメント</a></p>
<p>投稿 <a href="https://nyanblog2222.com/programming/vba/2344/">【VBA】Switch関数とSelect Caseステートメント【違いや記述方法を簡単に解説】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/vba/2344/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Shift-JIS・UTF-8等、各種文字コードのファイル読み込み【コピペで使えるサンプル付き】</title>
		<link>https://nyanblog2222.com/programming/2291/</link>
					<comments>https://nyanblog2222.com/programming/2291/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 06 Sep 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Shift-JIS]]></category>
		<category><![CDATA[UTF-8]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[ファイル読み込み]]></category>
		<category><![CDATA[文字コード]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2291</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/35.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/35.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/35-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/35-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/35-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回はAccess等で使われるVBAで、Shift-JIS（SJIS）・UTF-8等、各種文字コードのファイルを読み込む方法を紹介します。内容としては、OpenステートメントやADODB.Streamを使った手法です。自 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/2291/">【VBA】Shift-JIS・UTF-8等、各種文字コードのファイル読み込み【コピペで使えるサンプル付き】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/35.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/35.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/35-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/35-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/35-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回はAccess等で使われるVBAで、Shift-JIS（SJIS）・UTF-8等、各種文字コードのファイルを読み込む方法を紹介します。<br>内容としては、OpenステートメントやADODB.Streamを使った手法です。<br>自作関数のサンプルもつけてますので、是非ご活用ください！<br>また、同時にダイアログを開いて対象のファイル名を取得する方法も紹介してますので、良かったらそちらもどうぞ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-28" checked><label class="toc-title" for="toc-checkbox-28">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">紹介する手法</a></li><li><a href="#toc2" tabindex="0">共通で使っているテストデータやサブ関数</a><ol><li><a href="#toc3" tabindex="0">テストデータ</a></li><li><a href="#toc4" tabindex="0">（サブ関数）ダイアログを開いて対象のファイル名を取得する</a></li></ol></li><li><a href="#toc5" tabindex="0">Openステートメントでcsvファイル読み込み（Shift-JISのみ可）</a></li><li><a href="#toc6" tabindex="0">ADODB.Streamでcsvファイルを読み込む（UTF-8、Shift-JIS他）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">紹介する手法</span></h2>



<p>まず、本記事の簡単なまとめから♪</p>



<figure class="wp-block-table"><table><tbody><tr><td>・Openステートメント<br>　Shift-JISのみ<br>・ADODB.Stream　←　☆汎用性があるため個人的にはおすすめ<br>　Shift-JIS・UTF-8他</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc2">共通で使っているテストデータやサブ関数</span></h2>



<p>説明の際に使用するテストデータや、自作関数の中で呼び出しているサブ関数です。<br>本記事とは内容が離れますので、飛ばしてもらっても大丈夫です。</p>



<h3 class="wp-block-heading"><span id="toc3">テストデータ</span></h3>



<p>今回テストとして読み込むcsvファイルは以下を使用します。<br>（同じ内容で文字コードがShift-JIS・UTF-8のデータを用意）</p>



<pre class="wp-block-code"><code>No	郵便番号	住所	名前
1	859-5326	東京都春日井市向谷町１－６５	ヤマモトコーポレーション株式会社
2	987-2523	千葉県向田市山本町６５８－４４	華井　譲
3	789-0001	千葉県向田市山本町　ジンダ－ビル２F　２０１号	蓮田不動産株式会社
4	653-6567	大阪府大東市浅田８－９９９	株式会社ハッターフ
5	198-3463	鹿児島県薩摩川内市浜本１２３－７７	山本　茂</code></pre>



<h3 class="wp-block-heading"><span id="toc4">（サブ関数）ダイアログを開いて対象のファイル名を取得する</span></h3>



<p>ダイアログを開いて対象のファイル名を取得するサブ関数を用意しました。<br>直接ファイルパスを次項から紹介する関数のコード上に書いてしまっても良かったのですが、それではコピペして使いにくいので。。</p>



<p>内容としては、GetFileName_csvを呼び出すと、ダイアログを開いてcsvファイルのファイル名を取得し、戻り値として返す関数になります。</p>



<pre class="wp-block-code"><code>' GetFileName_csv
' csvファイル名を取得
Function GetFileName_csv()

    'ダイアログを開いてcsvファイルのファイル名を取得
    'Application.FileDialogを使うには、
    '参照設定でMicrosoft Office 1X.0 Object Libraryの追加が必要
    With Application.FileDialog(msoFileDialogOpen)
        .Filters.Clear
        .Filters.Add "csvファイル", "*.csv"
        .AllowMultiSelect = False
        If .Show = True Then
            GetFileName_csv = .SelectedItems(1)
        End If
    End With

End Function</code></pre>



<h2 class="wp-block-heading"><span id="toc5">Openステートメントでcsvファイル読み込み（Shift-JISのみ可）</span></h2>



<p>Openステートメントで、csvファイルを読み込む方法です。<br>Openステートメントでは、文字コードに合わせて対応していくことができないので、Accessのデフォルトの文字コードであるShift-JISでしか正しく読み取りできません。</p>



<p>以下、Openステートメントを使用したcsvファイル読込関数関数です。</p>



<pre class="wp-block-code"><code>' ReadCSVFile_Open
' csvファイル読込関数（Openステートメントを使用）
Sub ReadCSVFile_Open()
    
    'ファイル名取得
    Dim sOpenFileName As String
    sOpenFileName = GetFileName_csv
    If sOpenFileName = "" Then Exit Sub

    'ファイルを読み込んでイミディエイトウィンドウに内容を表示する
    Dim sBuf  As String
    Open sOpenFileName For Input As #1 'ファイルを開いて&#91;#1]という番号で管理
    Do Until EOF(1)
       Line Input #1, sBuf '1行づつバッファへ格納
       Debug.Print sBuf
    Loop
    Close #1
    
End Sub</code></pre>



<p>こちらの関数を使用して、Shift-JISのファイルを読み込んだ結果はこちらです。</p>



<p>ファイル名：SJIS.csv</p>



<pre class="wp-block-code"><code>No  郵便番号    住所    名前
1   859-5326    東京都春日井市向谷町１－６５    ヤマモトコーポレーション株式会社
2   987-2523    千葉県向田市山本町６５８－４４  華井　譲
3   789-0001    千葉県向田市山本町　ジンダ－ビル２F　２０１号   蓮田不動産株式会社
4   653-6567    大阪府大東市浅田８－９９９  株式会社ハッターフ
5   198-3463    鹿児島県薩摩川内市浜本１２３－７７  山本　茂</code></pre>



<p>正確に読み取れてますね。</p>



<p>試しにこの関数を使って、UTF-8も読み取ってみました。</p>



<p>ファイル名：UTF-8.csv</p>



<pre class="wp-block-code"><code>No  驛ｵ萓ｿ逡ｪ蜿ｷ    菴乗園  蜷榊燕
1   859-5326    譚ｱ莠ｬ驛ｽ譏･譌･莠募ｸょ髄隹ｷ逕ｺ・托ｼ搾ｼ厄ｼ・繝､繝槭Δ繝医さ繝ｼ繝昴Ξ繝ｼ繧ｷ繝ｧ繝ｳ譬ｪ蠑丈ｼ夂､ｾ
2   987-2523    蜊・痩逵悟髄逕ｰ蟶ょｱｱ譛ｬ逕ｺ・厄ｼ包ｼ假ｼ搾ｼ費ｼ・闖ｯ莠輔隴ｲ
3   789-0001    蜊・痩逵悟髄逕ｰ蟶ょｱｱ譛ｬ逕ｺ縲繧ｸ繝ｳ繝・阪ン繝ｫ・巽縲・抵ｼ撰ｼ大捷 闢ｮ逕ｰ荳榊虚逕｣譬ｪ蠑丈ｼ夂､ｾ
4   653-6567    螟ｧ髦ｪ蠎懷､ｧ譚ｱ蟶よｵ・伐・假ｼ搾ｼ呻ｼ呻ｼ・譬ｪ蠑丈ｼ夂､ｾ繝上ャ繧ｿ繝ｼ繝・
5   198-3463    鮖ｿ蜈仙ｳｶ逵瑚湊鞫ｩ蟾晏・蟶よｵ懈悽・托ｼ抵ｼ難ｼ搾ｼ暦ｼ・螻ｱ譛ｬ縲闌・</code></pre>



<p>全角が化けてしまっていますね。<br>前述のとおり、UTF-8を含む他の文字コードには対応していませんので、読み取る必要があれば次項をお使いください。</p>



<h2 class="wp-block-heading"><span id="toc6">ADODB.Streamでcsvファイルを読み込む（UTF-8、Shift-JIS他）</span></h2>



<p>ADODB.Streamで、csvファイルを読み込む方法です。<br>ADODB.Streamでは、UTF-8、Shift-JISを含む各種文字コードに対応しています。</p>



<p>以下、Openステートメントを使用したcsvファイル読込関数関数です。</p>



<pre class="wp-block-code"><code>' ReadCSVFile_ADODB
' csvファイル読込関数（ADODB.Streamを使用）
Sub ReadCSVFile_ADODB()
    
    'ファイル名取得
    Dim sOpenFileName As String
    sOpenFileName = GetFileName_csv
    If sOpenFileName = "" Then Exit Sub

    'ファイルを読み込んでイミディエイトウィンドウに内容を表示する
    Dim sBuf  As String
    With CreateObject("ADODB.Stream")
       .Charset = "UTF-8" 'SJISの場合、"shift_jis"
       .Open
       .LoadFromFile sOpenFileName
        Do Until .EOS
           sBuf = .ReadText(-2) '1行づつバッファへ格納
           Debug.Print sBuf
        Loop
       .Close
    End With
    
End Sub</code></pre>



<p>なお、上記関数をそのままコピペすると、UTF-8に対応した関数になります。<br>shift_jisに対応させる場合、</p>



<pre class="wp-block-code"><code>.Charset = "UTF-8"</code></pre>



<p>の部分を、</p>



<pre class="wp-block-code"><code>.Charset = "shift_jis"</code></pre>



<p>に書き換えてください。</p>



<p>その他、UTF-8、Shift-JIS以外の文字コードで読み取る場合は、<br>「レジストリエディタ」の「HKEY_CLASSES_ROOT\MIME\Database\Charset」から確認してください。<br>レジストリエディタは、<br>「Windowsマーク」キーと「R」キーを同時押し→ファイル名を指定して実行の画面が出たら、「regedit」と入力してエンターを押すと開くことができます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="634" height="384" src="https://nyanblog2222.com/wp-content/uploads/2020/09/regedit_mojicd-min.png" alt="レジストリエディタ" class="wp-image-2305" srcset="https://nyanblog2222.com/wp-content/uploads/2020/09/regedit_mojicd-min.png 634w, https://nyanblog2222.com/wp-content/uploads/2020/09/regedit_mojicd-min-300x182.png 300w" sizes="auto, (max-width: 634px) 100vw, 634px" /></figure>



<p>それでは、まずshift_jisのファイルを読み込んでみました。</p>



<p>ファイル名：SJIS.csv</p>



<pre class="wp-block-code"><code>No  郵便番号    住所    名前
1   859-5326    東京都春日井市向谷町１－６５    ヤマモトコーポレーション株式会社
2   987-2523    千葉県向田市山本町６５８－４４  華井　譲
3   789-0001    千葉県向田市山本町　ジンダ－ビル２F　２０１号   蓮田不動産株式会社
4   653-6567    大阪府大東市浅田８－９９９  株式会社ハッターフ
5   198-3463    鹿児島県薩摩川内市浜本１２３－７７  山本　茂</code></pre>



<p>正確に読み取れてますね。</p>



<p>ファイル名：UTF-8.csv</p>



<pre class="wp-block-code"><code>No  郵便番号    住所    名前
1   859-5326    東京都春日井市向谷町１－６５    ヤマモトコーポレーション株式会社
2   987-2523    千葉県向田市山本町６５８－４４  華井　譲
3   789-0001    千葉県向田市山本町　ジンダ－ビル２F　２０１号   蓮田不動産株式会社
4   653-6567    大阪府大東市浅田８－９９９  株式会社ハッターフ
5   198-3463    鹿児島県薩摩川内市浜本１２３－７７  山本　茂</code></pre>



<p>こちらも、正しく読み取ることができました♪</p>



<p>以上、今回の記事が参考になれば幸いです。<br>関連として、もしUTF-8について知りたい！という方はこちらの記事もご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog-にゃんぶろぐ wp-block-embed-nyanblog-にゃんぶろぐ"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/windows/4659/" title="【ファイル】UTF-8のBOM付き、BOM無しの違い・確認・作成について" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/49-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/49-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/49-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/49-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/49-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【ファイル】UTF-8のBOM付き、BOM無しの違い・確認・作成について</div><div class="blogcard-snippet internal-blogcard-snippet">CSVファイルをExcelで確認すると文字化けすることはありませんか。それは文字コードがUTF-8のBOM無しで作成されているからかもしれません。本記事ではUTF-8のBOM付き、BOM無しの違い、確認方法、作成方法についてご紹介しています。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.07.15</div></div></div></div></a>
</div></figure>
<p>投稿 <a href="https://nyanblog2222.com/programming/2291/">【VBA】Shift-JIS・UTF-8等、各種文字コードのファイル読み込み【コピペで使えるサンプル付き】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/2291/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】インクリメントやデクリメントは使える？代替案は？</title>
		<link>https://nyanblog2222.com/programming/vba/2261/</link>
					<comments>https://nyanblog2222.com/programming/vba/2261/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 05 Sep 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[インクリメント]]></category>
		<category><![CDATA[デクリメント]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2261</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/34.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/34.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />C言語やJAVAなどで欠かせないインクリメントやデクリメントですが、ExcelやAccessなどで使用するVBAでも使えるか、調べてみました。 ・インクリメント変数の値を1増やす演算　例：i++、++i・デクリメント変数 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/vba/2261/">【VBA】インクリメントやデクリメントは使える？代替案は？</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/34.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/34.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>C言語やJAVAなどで欠かせないインクリメントやデクリメントですが、ExcelやAccessなどで使用するVBAでも使えるか、調べてみました。</p>



<p><strong><span style="color:#b78d4a" class="has-inline-color">・インクリメント</span></strong><br>変数の値を1増やす演算　例：i++、++i<br><strong><span style="color:#b78d4a" class="has-inline-color">・デクリメント</span></strong><br>変数の値を1減らす演算　例：i－－、－－i</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-30" checked><label class="toc-title" for="toc-checkbox-30">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBAでインクリメントやデクリメントは使えない？</a></li><li><a href="#toc2" tabindex="0">代替案について</a><ol><li><a href="#toc3" tabindex="0">加算代入演算子や減算代入演算子は？</a></li><li><a href="#toc4" tabindex="0">関数を作ってみるのは？</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBAでインクリメントやデクリメントは使えない？</span></h2>



<p><strong><span style="color:#b78d4a" class="has-inline-color">VBAにはインクリメントやデクリメントという概念がなく、使えません。</span></strong></p>



<p>試しに、i++やi－－と書くと以下のエラーメッセージが出ます。</p>



<pre class="wp-block-code"><code>コンパイルエラー:

修正候補:式</code></pre>



<p>++iやi－－と書くと以下のエラーメッセージが出ます。</p>



<pre class="wp-block-code"><code>コンパイル　エラー:

修正候補: 行番号 または 行ラベル または ステートメント または ステートメントの最後</code></pre>



<p>VBAでインクリメントやデクリメントが使えない理由としては、<br><strong><span style="color:#b78d4a" class="has-inline-color">VBA（Visual Basic for Applications）はBASICというプログラミング言語がルーツ</span></strong>なので、インクリメントやデクリメントが存在するC言語がルーツのプログラミング言語とは、<strong><span style="color:#b78d4a" class="has-inline-color">歴史が異なる</span></strong>からです。</p>



<figure class="wp-block-table"><table><tbody><tr><td>参考：VBA（Visual Basic for Applications）年表<br><br>(1964) BASIC<br>　　　↓<br>(1985) QuickBASIC<br>　　　↓<br>(1991) Microsoft Visual Basic<br>　　　↓<br>(1993) Visual Basic for Applications</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc2">代替案について</span></h2>



<p>気になる<strong><span style="color:#b78d4a" class="has-inline-color">代替案ですが、残念ながら有効なものはありません</span></strong>でした。</p>



<h3 class="wp-block-heading"><span id="toc3">加算代入演算子や減算代入演算子は？</span></h3>



<p>試してみましたが、インクリメントやデクリメントと似たことができる<strong><span style="color:#b78d4a" class="has-inline-color">加算代入演算子や減算代入演算子ではうまくいきませんでした。</span></strong></p>



<p>（参考）<br>・加算代入演算子<br>変数の値に右辺の値を加算する演算　例：i+=1<br>・減算代入演算子<br>変数の値に右辺の値を減算する演算　例：i-=1</p>



<p>以下、エラーメッセージです。</p>



<pre class="wp-block-code"><code>コンパイルエラー:

修正候補:式</code></pre>



<p>インクリメントやデクリメントと同様に、C言語がルーツのプログラミング言語で使用できる加算代入演算子や減算代入演算子についても、概念がないようですね。</p>



<h3 class="wp-block-heading"><span id="toc4">関数を作ってみるのは？</span></h3>



<p>無理やり捻りだすとするのであらば、<strong><span style="color:#b78d4a" class="has-inline-color">インクリメントやデクリメントする関数を作る</span></strong>のはどうでしょう。</p>



<p>例えば、以下の関数「Increment(ByRef)」でインクリメントできます。</p>



<pre class="wp-block-code basic"><code>'呼び出し元の関数
Public Function TestIncrement()
　Dim i As Int
　i = 0
　～
　Increment i
　～
End Function</code></pre>



<pre class="wp-block-code basic"><code>'インクリメント用関数
Sub Increment(ByRef i)
　i = i + 1
End Sub</code></pre>



<p>ただこれははっきり言ってしまえば、自己満足なコードです。<br>あまり分かりやすくなったとは言いづらいですし、作った本人はいいでしょうが、<strong><span style="color:#b78d4a" class="has-inline-color">他の人がコードを見たとき読みにくいコードに</span></strong>なるでしょうね。。</p>



<p>以上、今回はインクリメントやデクリメントがVBAでも使えるか、また代替案は何かないか調べてみました。<br>以下がそのまとめです。</p>



<figure class="wp-block-table"><table><tbody><tr><td>・VBAにインクリメントやデクリメントという概念はない<br>・代替案で有効なものもないため、<br>　　i = i + 1<br>　という一般的な書き方をするのが良い</td></tr></tbody></table></figure>



<p>そもそもVBAのルーツであるBASICはあくまで初心者向けの言語のため、いくらインクリメントやデクリメントが分かりやすく効率的だからといって、現状でもi = i + 1と1行で処理できるのですから、これ以上知識が必要となる機能追加は望まれないのかもしれませんね。</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/vba/2261/">【VBA】インクリメントやデクリメントは使える？代替案は？</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/vba/2261/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【対処方法】指定した式に、Microsoft Accessが見つけることができない関数名が含まれています。</title>
		<link>https://nyanblog2222.com/office/2244/</link>
					<comments>https://nyanblog2222.com/office/2244/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Fri, 04 Sep 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[指定した式に、Microsoft Accessが見つけることができない関数名が含まれています。]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2244</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/33.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/33.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/33-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/33-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/33-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />Accessマクロで関数（VBA）を呼び出した際に出てくる「指定した式に、Microsoft Accessが見つけることができない関数名が含まれています。」の対処方法をいくつか紹介します。（内容についてはMicrosof [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/office/2244/">【対処方法】指定した式に、Microsoft Accessが見つけることができない関数名が含まれています。</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/33.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/33.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/33-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/33-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/33-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>Accessマクロで関数（VBA）を呼び出した際に出てくる「<strong><span style="color:#b78d4a" class="has-inline-color">指定した式に、Microsoft Accessが見つけることができない関数名が含まれています。</span></strong>」の対処方法をいくつか紹介します。<br>（内容についてはMicrosoft Access 2010で確認）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="487" height="111" src="https://nyanblog2222.com/wp-content/uploads/2020/09/access_kansu_ng-min.png" alt="エラーメッセージ" class="wp-image-2250" srcset="https://nyanblog2222.com/wp-content/uploads/2020/09/access_kansu_ng-min.png 487w, https://nyanblog2222.com/wp-content/uploads/2020/09/access_kansu_ng-min-300x68.png 300w" sizes="auto, (max-width: 487px) 100vw, 487px" /></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-32" checked><label class="toc-title" for="toc-checkbox-32">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">マクロで呼び出す関数の名称が間違っている</a></li><li><a href="#toc2" tabindex="0">関数名に日本語が含まれる</a></li><li><a href="#toc3" tabindex="0">関数名とモジュール名が同じ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">マクロで呼び出す関数の名称が間違っている</span></h2>



<p><strong><span style="color:#b78d4a" class="has-inline-color">関数名と、マクロで呼び出す関数の名称が異なっている</span></strong>とエラーメッセージが表示されます。</p>



<p>以下の事例だと、関数名が「FileOpen()」なのに対し、マクロでは「FileOpn()」となってしまっています。<br>この場合、マクロでは関数名と同じ「FileOpen()」を呼び出してください。</p>



<p>関数：</p>



<pre class="wp-block-code basic"><code>Public Function FileOpen()
　～
End Function</code></pre>



<p>マクロの関数（プロシージャ）呼び出し：</p>



<pre class="wp-block-code basic"><code>=FileOpn()</code></pre>



<h2 class="wp-block-heading"><span id="toc2">関数名に日本語が含まれる</span></h2>



<p><strong><span style="color:#b78d4a" class="has-inline-color">関数名に日本語が含まれている</span></strong>とエラーメッセージが表示されます。</p>



<p>以下の事例だと、関数名が「Fileを開く()」となっており日本語が含まれています。<br>この場合、日本語は使わず「FileOpen()」などの名前にしてください。</p>



<p>関数：</p>



<pre class="wp-block-code basic"><code>Public Function Fileを開く()
　～
End Function</code></pre>



<h2 class="wp-block-heading"><span id="toc3">関数名とモジュール名が同じ</span></h2>



<p><strong><span style="color:#b78d4a" class="has-inline-color">関数名とモジュール名が同じ</span></strong>場合エラーメッセージが表示されます。</p>



<p>以下の事例だと、関数名が「FileOpen()」に対し、モジュール名も「FileOpen」になってしまっています。<br>この場合、モジュール名は「ファイルを開く」など関数名と異なる名前にしてください。</p>



<p>関数：</p>



<pre class="wp-block-code basic"><code>Public Function FileOpen()
　～
End Function</code></pre>



<p>モジュール名：</p>



<pre class="wp-block-code basic"><code>FileOpen</code></pre>



<p>ちなみに「関数名とマクロ名が同じ」場合はエラーメッセージは出ません。</p>
<p>投稿 <a href="https://nyanblog2222.com/office/2244/">【対処方法】指定した式に、Microsoft Accessが見つけることができない関数名が含まれています。</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/office/2244/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access】無作為抽出（ランダム・サンプリング）[Rnd,VBA他]</title>
		<link>https://nyanblog2222.com/programming/899/</link>
					<comments>https://nyanblog2222.com/programming/899/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Mon, 01 Jun 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Rnd関数]]></category>
		<category><![CDATA[無作為抽出]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=899</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/32.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/32.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/32-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/32-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/32-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回は、Access無作為抽出の方法をいくつかご紹介します。 無作為抽出とは、ある母集団から、ランダム（無作為）にサンプルを抽出する方法です。使う状況でいえば、例えば企業の市場リサーチを目的としたアンケート等がありますね [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/899/">【Access】無作為抽出（ランダム・サンプリング）[Rnd,VBA他]</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/32.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/32.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/32-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/32-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/32-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p>今回は、Access無作為抽出の方法をいくつかご紹介します。</p>



<p>無作為抽出とは、<strong><span style="color:#b78d4a" class="has-inline-color">ある母集団から、ランダム（無作為）にサンプルを抽出する方法</span></strong>です。<br>使う状況でいえば、例えば企業の市場リサーチを目的としたアンケート等がありますね！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-34" checked><label class="toc-title" for="toc-checkbox-34">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Rnd関数を使った方法</a><ol><li><a href="#toc2" tabindex="0">クエリから引数なしで呼び出す（失敗例）</a></li><li><a href="#toc3" tabindex="0">方法１：Rnd関数引数あり、RandomizeのみVBA</a></li><li><a href="#toc4" tabindex="0">方法２：VBAで一括ランダム値挿入（マクロ実行）</a></li></ol></li><li><a href="#toc5" tabindex="0">テーブル定義のオートナンバー型（ランダム）を使った方法</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Rnd関数を使った方法</span></h2>



<p>Rnd関数は<strong><span style="color:#b78d4a" class="has-inline-color">「Rnd(引数)」で呼び出し、0以上1未満の単精度浮動小数点型の乱数（疑似乱数）を返します。</span></strong>今回はこのRnd関数を使用してランダム値を生成し、そしてランダム値を使って並びかえ上位から件数分抜き出し、無作為抽出を実現します。</p>



<div class="wp-block-group is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-group is-layout-flow wp-block-group-is-layout-flow">
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>・Rnd([引数])<br>引数&lt;0：常に同じ数値をシード値として使用します。<br>引数&gt;0：擬似乱数シーケンスの次の番号。<br>引数=0：最近生成された乱数。<br>省略　：擬似乱数シーケンスの次の番号。<br>※乱数ジェネレーターを初期化するには、<span style="color:#b78d4a" class="has-inline-color"><strong>Rnd</strong>&nbsp;</span>を呼び出す前に、引数を指定せずに&nbsp;<span style="color:#b78d4a" class="has-inline-color"><strong>Randomize</strong>&nbsp;</span>ステートメントを使用します。</p><cite>引用：<a class="link" href="https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/rnd-function">Rnd 関数 (Visual Basic for Applications) | Microsoft Docs</a></cite></blockquote>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc2">クエリから引数なしで呼び出す（失敗例）</span></h3>



<p>まず<strong><span style="color:#b78d4a" class="has-inline-color">Rnd関数を使った失敗例</span></strong>からです。<br>単純にクエリでRnd関数を引数なしで呼び出せば無作為抽出できそうではありますが……。</p>



<p>テーブル情報</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="206" height="255" src="https://nyanblog2222.com/wp-content/uploads/2020/05/1-min.png" alt="テーブル情報" class="wp-image-1008"/></figure>



<p>クエリ内容<br>・下部の赤枠でRnd関数を呼び出し、右上の赤枠部分で上位25件を抽出</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="723" height="423" src="https://nyanblog2222.com/wp-content/uploads/2020/05/2-min.png" alt="クエリ内容" class="wp-image-1009" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/2-min.png 723w, https://nyanblog2222.com/wp-content/uploads/2020/05/2-min-300x176.png 300w" sizes="auto, (max-width: 723px) 100vw, 723px" /></figure>



<p>結果</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="353" height="243" src="https://nyanblog2222.com/wp-content/uploads/2020/05/3-min.png" alt="結果" class="wp-image-1010" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/3-min.png 353w, https://nyanblog2222.com/wp-content/uploads/2020/05/3-min-300x207.png 300w" sizes="auto, (max-width: 353px) 100vw, 353px" /></figure>



<p>このように<strong><span style="color:#b78d4a" class="has-inline-color">全レコードに同じ乱数</span></strong>が入ってしまいます。値がすべて同じなので上位25件ではなく1000件すべてが抽出されてしまっていますね。<br>これはAccessのクエリ最適化の仕様で、<strong><span style="color:#b78d4a" class="has-inline-color">引数なしで関数を呼び出した場合、一度しか実行してくれない</span></strong>ためです（引数1など固定値でもNG）。<br>また、<strong><span style="color:#b78d4a" class="has-inline-color">Randomizeを実行していないため、乱数ジェネレーター（乱数表）が初期化されません</span></strong>。そのため、もう一度Accessを開きなおし同じクエリを実行した場合、同じ結果になってしまいます。</p>



<p>よって上記をふまえ、以下の方法をご紹介します。</p>



<h3 class="wp-block-heading"><span id="toc3">方法１：Rnd関数引数あり、RandomizeのみVBA</span></h3>



<p>先ほどの失敗例を踏まえ、<br><strong><span style="color:#b78d4a" class="has-inline-color">・Rnd関数に引数を与えることでクエリ最適化を避ける</span><span class="has-inline-color has-pale-pink-color"><br></span><span style="color:#b78d4a" class="has-inline-color">・Randomizeを実行し、乱数表を初期化する</span></strong><br>　こちらは逆に１度呼び出されればいいため、クエリ最適化を利用する<br>　（何度も呼び出されると件数が多い場合負荷がかかる）<br>を考慮し、作成しました。</p>



<p>テーブル情報</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="206" height="255" src="https://nyanblog2222.com/wp-content/uploads/2020/05/1-min-1.png" alt="テーブル情報" class="wp-image-1066"/></figure>



<p>クエリ内容<br>・Rnd([社員NO])でランダム値を各レコードに設定<br>・MyRandomize()で初期化<br>　抽出条件（Is Null）を加えることで、表示を消しても関数呼び出しができます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="519" height="484" src="https://nyanblog2222.com/wp-content/uploads/2020/05/6-min.png" alt="クエリ内容" class="wp-image-1058" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/6-min.png 519w, https://nyanblog2222.com/wp-content/uploads/2020/05/6-min-300x280.png 300w" sizes="auto, (max-width: 519px) 100vw, 519px" /></figure>



<p>VBA：乱数表初期化</p>



<pre class="wp-block-code basic"><code>' MyRandomize()
' 乱数ジェネレータ初期化関数
Public Function MyRandomize()
    Randomize
End Function</code></pre>



<p>結果</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="294" height="552" src="https://nyanblog2222.com/wp-content/uploads/2020/05/7-min.png" alt="結果" class="wp-image-1059" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/7-min.png 294w, https://nyanblog2222.com/wp-content/uploads/2020/05/7-min-160x300.png 160w" sizes="auto, (max-width: 294px) 100vw, 294px" /></figure>



<p>正常に無作為抽出ができました。<br>この方法をとる場合は、<strong><span style="color:#b78d4a" class="has-inline-color">Randomizeの呼び出し漏れに注意</span></strong>です。レコード件数が少なく処理が遅くなってもよいということであれば、ランダム関数を呼び出す定義関数を作り、その中で<strong><span style="color:#b78d4a" class="has-inline-color">Randomize</span></strong>を呼び出してもいいかもしれませんね。</p>



<h3 class="wp-block-heading"><span id="toc4">方法２：VBAで一括ランダム値挿入（マクロ実行）</span></h3>



<p>次に、クエリでRnd関数を呼び出さず、<strong><span style="color:#b78d4a" class="has-inline-color">マクロで定義関数を呼び出し、その定義関数内でRandomize＋Rnd関数を呼び出す</span></strong>方法です。<br>またマクロで実行するため、先日以下の通りご紹介した定義関数で連番もふってます。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-nyanblog wp-block-embed-nyanblog"><div class="wp-block-embed__wrapper">

<a href="https://nyanblog2222.com/access/554/" title="【Access】連番の振り方【Dcount以外も紹介】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2022/11/31-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/31-160x90.png 160w, https://nyanblog2222.com/wp-content/uploads/2022/11/31-120x68.png 120w, https://nyanblog2222.com/wp-content/uploads/2022/11/31-320x180.png 320w, https://nyanblog2222.com/wp-content/uploads/2022/11/31-376x212.png 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Access】連番の振り方【Dcount以外も紹介】</div><div class="blogcard-snippet internal-blogcard-snippet">Accessで連番の振り方を４つ紹介します。①EXCELから連番をコピペする②テーブル定義でオートナンバー型を使う③クエリでDcount関数を使う④マクロ（VBA）で連番用関数を作成する。…Dcount関数の処理速度の遅さに悩んでませんか？連番付番で高速処理したい方は必見です♪</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nyanblog2222.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nyanblog2222.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.15</div></div></div></div></a>
</div></figure>



<p><br>テーブル情報<br>・連番とランダム値項目を用意</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="312" height="238" src="https://nyanblog2222.com/wp-content/uploads/2020/05/17-min.png" alt="テーブル情報" class="wp-image-1061" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/17-min.png 312w, https://nyanblog2222.com/wp-content/uploads/2020/05/17-min-300x229.png 300w" sizes="auto, (max-width: 312px) 100vw, 312px" /></figure>



<p>クエリ内容</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="512" height="415" src="https://nyanblog2222.com/wp-content/uploads/2020/05/8-min.png" alt="クエリ内容" class="wp-image-1060" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/8-min.png 512w, https://nyanblog2222.com/wp-content/uploads/2020/05/8-min-300x243.png 300w" sizes="auto, (max-width: 512px) 100vw, 512px" /></figure>



<p>VBA：ランダム数セット<br>・Randomizeで初期化<br>・Loopでランダム値を各レコードに設定</p>



<pre class="wp-block-code basic"><code>' SetRandom(String,String)
' ランダム値をセット
' P1:テーブル名 or クエリ名
' P2:ランダム値項目名
Public Function SetRandom(TargetName As String, TargetField As String)
    
    ' 乱数ジェネレータを初期化
    Randomize
    
    Dim rsTarget As Recordset
    Set rsTarget = CurrentDb.OpenRecordset(TargetName, dbOpenDynaset)
    
    Do Until rsTarget.EOF
        rsTarget.Edit
        rsTarget.Fields(TargetField) = Rnd()
        rsTarget.Update
        rsTarget.MoveNext
    Loop
End Function</code></pre>



<p>結果</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="470" height="553" src="https://nyanblog2222.com/wp-content/uploads/2020/05/11-min.png" alt="結果" class="wp-image-1062" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/11-min.png 470w, https://nyanblog2222.com/wp-content/uploads/2020/05/11-min-255x300.png 255w" sizes="auto, (max-width: 470px) 100vw, 470px" /></figure>



<p>正常に無作為抽出ができました。連番もついてますね。<br>この方法だと<strong><span style="color:#b78d4a" class="has-inline-color">確実にRandomizeを呼び出す</span></strong>ので、引き継ぎの際もわかりやすいかもしれませんね。ただマクロを使い慣れていないユーザもいるでしょうから、クエリだけでできないところがデメリットです。</p>



<h2 class="wp-block-heading"><span id="toc5">テーブル定義のオートナンバー型（ランダム）を使った方法</span></h2>



<p>あまりおすすめしませんが、Rnd関数を使わず、<strong><span style="color:#b78d4a" class="has-inline-color">オートナンバー型でランダム値をセット</span></strong>することもできます。</p>



<p>テーブル１（元テーブル）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="206" height="255" src="https://nyanblog2222.com/wp-content/uploads/2020/05/1-min-2.png" alt="テーブル１（元テーブル）" class="wp-image-1067"/></figure>



<p>クエリ１（追加クエリ）<br>・後述のテーブル２にレコードを追加</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="460" height="302" src="https://nyanblog2222.com/wp-content/uploads/2020/05/13-min.png" alt="クエリ１（追加クエリ）" class="wp-image-1064" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/13-min.png 460w, https://nyanblog2222.com/wp-content/uploads/2020/05/13-min-300x197.png 300w" sizes="auto, (max-width: 460px) 100vw, 460px" /></figure>



<p>テーブル２<br>・オートナンバー型のランダム値項目を設定しておく</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="364" height="271" src="https://nyanblog2222.com/wp-content/uploads/2020/05/12-min.png" alt="テーブル２" class="wp-image-1063" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/12-min.png 364w, https://nyanblog2222.com/wp-content/uploads/2020/05/12-min-300x223.png 300w" sizes="auto, (max-width: 364px) 100vw, 364px" /></figure>



<p>クエリ１実行結果<br>この時点で連番が振られています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="241" height="410" src="https://nyanblog2222.com/wp-content/uploads/2020/05/14-min.png" alt="クエリ１実行結果" class="wp-image-1070" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/14-min.png 241w, https://nyanblog2222.com/wp-content/uploads/2020/05/14-min-176x300.png 176w" sizes="auto, (max-width: 241px) 100vw, 241px" /></figure>



<p>クエリ２（件数分抽出）</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="465" height="353" src="https://nyanblog2222.com/wp-content/uploads/2020/05/15-min.png" alt="クエリ２（件数分抽出）" class="wp-image-1068" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/15-min.png 465w, https://nyanblog2222.com/wp-content/uploads/2020/05/15-min-300x228.png 300w" sizes="auto, (max-width: 465px) 100vw, 465px" /></figure>



<p>結果</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="220" height="527" src="https://nyanblog2222.com/wp-content/uploads/2020/05/16-min-1.png" alt="結果" class="wp-image-1071" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/16-min-1.png 220w, https://nyanblog2222.com/wp-content/uploads/2020/05/16-min-1-125x300.png 125w" sizes="auto, (max-width: 220px) 100vw, 220px" /></figure>



<p>正常に無作為抽出ができました。<br><strong><span style="color:#b78d4a" class="has-inline-color">VBAやマクロを使わない</span></strong>ということがメリットですが、無理やり組んだ印象が強く、個人的には分かりづらいかなと思います。</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/899/">【Access】無作為抽出（ランダム・サンプリング）[Rnd,VBA他]</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/899/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Access】連番の振り方【Dcount以外も紹介】</title>
		<link>https://nyanblog2222.com/programming/554/</link>
					<comments>https://nyanblog2222.com/programming/554/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Fri, 15 May 2020 04:34:05 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=554</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/31.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/31.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/31-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/31-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/31-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />今回は、Accessで連番の振り方をいくつかご紹介します。 大容量レコードに高速付番したい方は、「４．VBAで連番用関数を作成する」をご確認ください♪ 目次 EXCELから連番をコピペするテーブル定義でオートナンバー型を [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/554/">【Access】連番の振り方【Dcount以外も紹介】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/31.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/31.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/31-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/31-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/31-768x402.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />
<p><p>今回は、<strong><span style="color: #b78d4a;" class="has-inline-color">Accessで連番の振り方</span></strong>をいくつかご紹介します。</p>
<p>大容量レコードに高速付番したい方は、<br>「４．VBAで連番用関数を作成する」をご確認ください♪</p></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-36" checked><label class="toc-title" for="toc-checkbox-36">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">EXCELから連番をコピペする</a></li><li><a href="#toc2" tabindex="0">テーブル定義でオートナンバー型を使う</a></li><li><a href="#toc3" tabindex="0">Dcount関数を使う</a></li><li><a href="#toc4" tabindex="0">VBAで連番用関数を作成する</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">EXCELから連番をコピペする</span></h2>



<p>まず初めに非常にアナログですが、簡単で確実な方法です。<br>後述するクエリ（DCount関数）で連番を振る方法では件数が多い場合に時間がかかりすぎるため、あえてこのような方法をとっている方もいます。</p>



<p>説明するまでもないかもしれませんが、このように連番用にEXCELを作り、<br>コピーしてAccessのテーブルに貼り付けます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="179" height="259" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_19-50-46_No-00.png" alt="Excel連番" class="wp-image-576"/></figure>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">メリット：</span></strong><br>・Accessの知識が必要ないため、<strong><span style="color: #b78d4a;" class="has-inline-color">不慣れでも連番を振る</span></strong>ことができる。<br>・<strong><span style="color: #b78d4a;" class="has-inline-color">クエリの順番通り</span></strong>に連番が振れる。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">デメリット：</span></strong><br>・<strong><span style="color: #b78d4a;" class="has-inline-color">手作業のためミス</span></strong>が発生する可能性がある。<br>・テーブル内容に変更があった場合、対応できない。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">使用用途：</span></strong><br><strong><span style="color: #b78d4a;" class="has-inline-color">一度しか処理せず、</span></strong>再度連番を振る必要ない場合　等</p>



<p>なお、件数が多すぎるとお使いのパソコンやAccessのバージョンによってはペーストする際にエラーがでるようですので、ご注意ください。</p>



<h2 class="wp-block-heading"><span id="toc2">テーブル定義でオートナンバー型を使う</span></h2>



<p>テーブルをデザインビューで開き、項目のデータ型を、<strong><span style="color: #b78d4a;" class="has-inline-color">「オートナンバー型」</span></strong>とするだけなので、最も手軽な振り方です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="352" height="440" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-17-7_No-00-1.png" alt="Access連番　オートナンバー" class="wp-image-558" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-17-7_No-00-1.png 352w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-17-7_No-00-1-240x300.png 240w" sizes="auto, (max-width: 352px) 100vw, 352px" /></figure>



<p>このようにデータ型を「オートナンバー型」にするだけで、入力する際、以下のように自動で連番が入力されていきます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="306" height="148" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_11-52-10_No-00.png" alt="Access連番　オートナンバー" class="wp-image-557" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_11-52-10_No-00.png 306w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_11-52-10_No-00-300x145.png 300w" sizes="auto, (max-width: 306px) 100vw, 306px" /></figure>



<p>オートナンバー型を使うメリットデメリットですが、以下が考えられます。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">メリット：</span></strong><br>・手軽で分かりやすい。<br>・<strong><span style="color: #b78d4a;" class="has-inline-color">一意（ユニーク）な連番</span></strong>が振られるため、万が一にも重複の心配がない。<br>・手動で変更できないため、<strong><span style="color: #b78d4a;" class="has-inline-color">うっかり違う値に変更してしまうことがない</span></strong>。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">デメリット：</span></strong><br>・連番が振られた後は<strong><span style="color: #b78d4a;" class="has-inline-color">変更ができない</span></strong>。<br>・レコードを削除した際に、<strong><span style="color: #b78d4a;" class="has-inline-color">抜け番が発生</span></strong>する。<br>・レコード追加時にしか連番が振れない。</p>



<p>この中でも特に、デメリットの<strong><span style="color: #b78d4a;" class="has-inline-color">一度削除すると抜け番が発生するところ</span></strong>が注意点かと思います。<br>例えば以下のように、レコードを一度入力した後、間違えに気づき修正した場合、抜け番が発生してしまいます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="317" height="267" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-4-35_No-00.png" alt="Access連番　オートナンバー" class="wp-image-559" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-4-35_No-00.png 317w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-4-35_No-00-300x253.png 300w" sizes="auto, (max-width: 317px) 100vw, 317px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="304" height="124" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-5-31_No-00-1.png" alt="Access連番　オートナンバー" class="wp-image-561" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-5-31_No-00-1.png 304w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-5-31_No-00-1-300x122.png 300w" sizes="auto, (max-width: 304px) 100vw, 304px" /></figure>



<p>もちろん<strong><span style="color: #b78d4a;" class="has-inline-color">連番の変更をしようとしても、以下のエラーが出て</span></strong>しまい、変更もできません。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="437" height="21" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-6-59_No-00.png" alt="Access連番　オートナンバー" class="wp-image-562" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-6-59_No-00.png 437w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_14-6-59_No-00-300x14.png 300w" sizes="auto, (max-width: 437px) 100vw, 437px" /></figure>



<p>そんな良くも悪くも融通が利かないオートナンバー型ですが、以下のような使用用途が考えられます。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">使用用途：</span></strong><br>・絶対に連番が変わってしまうのを避けたい場合<br>・欠番ができても問題ない場合　等<br>例）<strong><span style="color: #b78d4a;" class="has-inline-color">Access内部で使用するデータ紐付け用の主キーID</span></strong></p>



<p>なお、テーブルをデザインビューで開き、項目の「切り取り」→同じ箇所に「行の挿入」→「貼り付け」をすることで、連番の振り直し自体は可能です。<br>※１から連番が再度振られるため、連番を振りなおしたことによる影響範囲を検討の上、行ってください。</p>



<h2 class="wp-block-heading"><span id="toc3">Dcount関数を使う</span></h2>



<p>クエリで連番を振る際に使用するのが<strong><span style="color: #b78d4a;" class="has-inline-color">DCount関数を使った</span></strong>方法です。<br>DCount関数は元々<strong><span style="color: #b78d4a;" class="has-inline-color">指定した範囲のレコード数をカウントする関数</span></strong>ですが、以下のように指定することで、連番を振ることもできます。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">DCount(&#8220;*&#8221;,&#8221;テーブル名&#8221;,&#8221;[基準項目]&lt;=&#8221; &amp; [テーブル名]![基準項目])</span></strong></p>



<p>指定内容の説明です。<br>引数１：レコード数をカウント<br>引数２：テーブル名またはクエリ名<br>引数３：条件。現在のレコードの[基準項目]以下の[基準項目]の数をカウント</p>



<p>これだけでは分かりにくいので、例を使って見てみましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="377" height="96" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_15-30-9_No-00.png" alt="Access連番　DCount関数" class="wp-image-563" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_15-30-9_No-00.png 377w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_15-30-9_No-00-300x76.png 300w" sizes="auto, (max-width: 377px) 100vw, 377px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="206" height="132" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_16-25-42_No-00.png" alt="Access連番　DCount関数" class="wp-image-564"/></figure>



<p>まず、基準項目を「社員NO」として連番を振るため、データ型は比較可能な「数値型」としています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="364" height="263" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_16-26-54_No-00.png" alt="Access連番　DCount関数" class="wp-image-565" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_16-26-54_No-00.png 364w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_16-26-54_No-00-300x217.png 300w" sizes="auto, (max-width: 364px) 100vw, 364px" /></figure>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">連番: DCount(&#8220;*&#8221;,&#8221;T_クエリ&#8221;,&#8221;[社員NO]&lt;=&#8221; &amp; [T_クエリ]![社員NO])</span></strong></p>



<p>クエリはこのようにDCount関数を使い、設定しました。</p>



<p>結果は以下のとおりです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="296" height="106" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_16-33-28_No-00.png" alt="" class="wp-image-567"/></figure>



<p>Dcount関数を使うメリットデメリット・使用用途ですが、以下が考えられます。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">メリット：</span></strong><br>・テーブル内容に変更があっても、自動で値が振られ<strong><span style="color: #b78d4a;" class="has-inline-color">抜け番が発生しない</span></strong>。<br>・<strong><span style="color: #b78d4a;" class="has-inline-color">一意（ユニーク）な連番が振られる</span></strong>ため、重複の心配がない。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">デメリット：</span></strong><br>・元々Dcountは別用途で作られた関数のため、不慣れなユーザには判読しづらい。<br>・基準項目（数値項目等、比較可能な項目）が必要。<br>・氏名順等、<strong><span style="color: #b78d4a;" class="has-inline-color">特別な並び順にしたい場合、連番を振ることができない</span></strong>。<br>・<strong><span style="color: #b78d4a;" class="has-inline-color">レコード件数が多いと、とにかく重い！</span></strong><br>（レコードごとに毎度、基準項目以下のレコードをカウントしにいくため）</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">使用用途：</span></strong><br>・<strong><span style="color: #b78d4a;" class="has-inline-color">データ入力後に連番が振りたい</span></strong>場合　等</p>



<h2 class="wp-block-heading"><span id="toc4">VBAで連番用関数を作成する</span></h2>



<p>少し難易度は上がりますが、<strong><span style="color: #b78d4a;" class="has-inline-color">VBAで連番用関数を作成し、連番を振る</span></strong>方法です。<br>VBAを使用し、ユーザ定義関数を作成し、マクロから呼び出します。</p>



<p>VBAについては以下を作成しましたので、コピーしてお使いください。</p>



<pre class="wp-block-code"><code>' InsertRenban(String,String)
' 連番挿入関数
' P1:クエリ名（テーブル名でも可能だが、非推奨）
' P2:連番用項目名
Public Function <strong>InsertRenban</strong>(TargetName As String, TargetField As String)
    Dim rsTarget As Recordset
    Set rsTarget = CurrentDb.OpenRecordset(TargetName, dbOpenDynaset)
    
    Dim iRecordCnt As Long
    
    'レコード毎に"+1"し、終端まで読み込み
    Do Until rsTarget.EOF
        lRecordCnt = lRecordCnt + 1
        
        rsTarget.Edit
        rsTarget.Fields(TargetField) = lRecordCnt
        rsTarget.Update
        rsTarget.MoveNext
    Loop
End Function</code></pre>



<p>では、例を使ってご紹介します。<br>まずテーブルは以下です。新しく連番をつける場合は、テーブル定義で「連番」項目を追加してください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="361" height="98" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_18-49-58_No-00.png" alt="VBA" class="wp-image-570" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_18-49-58_No-00.png 361w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_18-49-58_No-00-300x81.png 300w" sizes="auto, (max-width: 361px) 100vw, 361px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="295" height="139" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_18-50-7_No-00.png" alt="VBA" class="wp-image-571"/></figure>



<p>次にクエリを用意し、並び順を確定させます。<br><strong><span style="color: #b78d4a;" class="has-inline-color">※テーブルの順はAccessが独自にソートしているだけなので、今回のVBAを使い連番を振る場合、この工程が重要です。</span></strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="434" height="329" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-16_9-23-36_No-00-1.png" alt="" class="wp-image-588" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-16_9-23-36_No-00-1.png 434w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-16_9-23-36_No-00-1-300x227.png 300w" sizes="auto, (max-width: 434px) 100vw, 434px" /></figure>



<p>実行マクロについては、以下としました。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="357" height="92" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_19-37-29_No-00.png" alt="VBA" class="wp-image-575" srcset="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_19-37-29_No-00.png 357w, https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_19-37-29_No-00-300x77.png 300w" sizes="auto, (max-width: 357px) 100vw, 357px" /></figure>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">InsertRenban(&#8220;Q_定義関数&#8221;,&#8221;連番&#8221;)</span></strong></p>



<p>実行結果は以下となりました。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="280" height="115" src="https://nyanblog2222.com/wp-content/uploads/2020/05/SnapCrab_NoName_2020-5-15_18-51-16_No-00.png" alt="VBA" class="wp-image-573"/></figure>



<p>メリットデメリット・使用用途については以下となります。<br>個人的には、クエリを使うのであればこちらをおすすめします。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">メリット：</span></strong><br>・テーブル内容に変更があっても、自動で値が振られ<strong><span style="color: #b78d4a;" class="has-inline-color">抜け番が発生しない</span></strong>。<br>・<strong><span style="color: #b78d4a;" class="has-inline-color">一意（ユニーク）な連番が振られる</span></strong>ため、重複の心配がない。<br>・<strong><span style="color: #b78d4a;" class="has-inline-color">クエリに比べ</span></strong>、レコード件数が多くても<strong><span style="color: #b78d4a;" class="has-inline-color">処理が速い</span></strong>！<br>・連番はクエリの並び順に左右されるため、基準項目は不要</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">デメリット：</span></strong><br>・マクロ、VBAを使うのでAccess初心者には取っつきにくい。</p>



<p><strong><span style="color: #b78d4a;" class="has-inline-color">使用用途：</span></strong><br>・<strong><span style="color: #b78d4a;" class="has-inline-color">データ入力後に連番が振りたい</span></strong>場合　等</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/554/">【Access】連番の振り方【Dcount以外も紹介】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/554/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
