ソフトウェア

Sticky Passwordがあれば、もう傲慢な1Passwordはいらないかも

パスワード管理といえば、1Passwordと私も信じてきた。
今日の今日まで。
しかし、時代は変わったようである。
今日、1Password3の拡張機能をgoogle chromeに追加しよとアクセスしたところ、なんと404エラー。なんじゃこりゃ。
買取で、一生使えると思って高額で買ったのに。
さらには、月額制度を導入したり、購入単価をどんどん跳ね上げたり。
まさに、やりたい放題の1Password。
それでも、ほかにはパスワード管理ソフトでいいのがないし。と思っていたら、時代は変わっていました。Sticky Password。1年間で2000円程度。永年でも6000円程度。
安いとは言えないが、1Passwordで、一生毎月金をむしり取られることを思えばましだ。使い勝手はどうか?実際に使ってみた。すると、なんということでしょう。1Passwordより使いやすいではないですか。
考えてみれば、パスワード管理するだけで、暴利をむさぼっていたら、いずれ嫌われるとは思っていました。
1Passwordの時代はもう終わり。というよりも、パスワード管理ごときで、何千円もとるのっておかしいってみんなが思い始めてる。
1Passwordも早く気付かないとつぶれちゃいますよ。
競合他社は、どんどんでてきますから。
あと、1Password3の拡張機能は、googleのウェブストアポリシーに違反しているらしいです。理由はよくわかりませんが。個人情報がらみなのでやばそうです。今のところ、有効化できてるけど、もうじきおしゃかでしょう。
顧客を馬鹿にしたらいけませんよ。
さようなら、1Password。そして、今後ともよろしく、Sticky Password様。

FileZillaのバージョンアップ手順

新しいバージョンが出ると、起動時にダウンロードを促される。

ダウンロードをして、解凍する。

解凍したものを、旧バージョンの保存場所(デスクトップなど)にコピーして上書き保存する

CotEditorのファイル保存場所の表示を変える方法

<新規保存の場合>

メニュー「ファイル」→「保存」を選択します。

すると、上記のようなダイアログが現れるので、「名前」を変更して、「場所」を選択するために、場所の右側のボタン(赤枠部分)をクリックします。

すると、下記のようにフォルダのリストがずらっと現れます。

しかし、このフォルダリスト以外に保存したいときはどうすればよいのかというと、「名前」欄の右側ボタンを押します。
すると、下記のように、すべてのフォルダが選択できるような表示になります。

「場所」欄の横に配置してあれば、わかりやすいのにと個人的には思います。

Karabinerを使ってWindows用キーボードをiMacで使いやすく設定した件

Karabinerというのは、Macに接続したキーボードやマウスなどの設定を変更するためのソフトです。

iMacに接続しているWindows用のキーボードのファンクションキーの設定を、Macキーボードと同じ設定にしました。

それとは別に、マウスの4番、5番ボタンの設定も同時に行いました。
マウスは、エレコムのもので、本来なら、マウスアシスタントというソフトによって設定できるはずだったのですが、なぜかマウスアシスタントが正常に起動しなかったため、仕方なくKarabinerを使って設定しました。


<設定環境>

パソコン:  iMac (20-inch, Mid 2007)

OS :   OS X EL CAPITAN 10.11.6

キーボード: エレコム TK-FCM085 (Windows用)

マウス:エレコム M-BL21DB (5ボタン)


<設定内容>

キーボード

F1:画面明るさダウン
F2:画面明るさアップ

F3:ズームアウト
F4:ズームイン
F5:スームリセット

F7:ミュージックプレビュー
F8:ミュージックプレイ
F9:ミュージックネキスト

F10:音量ミュート
F11:音量ダウン
F12:音量アップ

マウス

4番ボタン:ブラウザの「戻る」
5番ボタン:ブラウザの「進む」


Karabinerをダウンロードしてインストールします。

上記の設定をKarabinerで設定します。

Karabinerを起動します。

すると、「Karabiner Preferences」(Karabinerの環境設定)画面が開く。

「Misc & uninstall」ボタンをクリックし、「Open Private.xml」ボタンをクリックする。

「Private.xml」ファイルが保存されたフォルダが開くので、オリジナルファイルのコピーを別名で保存しておく。

コピーができたら、「Private.xml」ファイルをメモ帳などで開く。

元の記述を全て消して、下記のコードに書き換えて、保存する。

<?xml version="1.0"?>
<root>
<item>
<name>Change F1 to BRIGHTNESS_DOWN</name>
<identifier>private.change_f1_to_brightness_down</identifier>
<autogen>
__KeyToKey__
KeyCode::F1 | ModifierFlag::NONE,
ConsumerKeyCode::BRIGHTNESS_DOWN
</autogen>
</item>

<item>
<name>Change F2 to BRIGHTNESS_UP</name>
<identifier>private.change_f2_to_brightness_up</identifier>
<autogen>
__KeyToKey__
KeyCode::F2 | ModifierFlag::NONE,
ConsumerKeyCode::BRIGHTNESS_UP
</autogen>
</item>

<item>
<name>zoom out</name>
<identifier>private.change_f3_to_zoom_out</identifier>
<autogen>__KeyToKey__ KeyCode::F3,KeyCode::MINUS | ModifierFlag::COMMAND_L</autogen>
</item>

<item>
<name>zoom in</name>
<identifier>private.change_f4_to_zoom_in</identifier>
<autogen>__KeyToKey__ KeyCode::F4,KeyCode::SEMICOLON | ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L</autogen>
</item>

<item>
<name>zoom reset</name>
<identifier>private.change_f5_to_zoom_in</identifier>
<autogen>__KeyToKey__ KeyCode::F5,KeyCode::0 | ModifierFlag::COMMAND_L</autogen>
</item>

<item>
<name>close</name>
<identifier>private.change_f6_to_zoom_in</identifier>
<autogen>__KeyToKey__ KeyCode::F6,KeyCode::W | ModifierFlag::COMMAND_L</autogen>
</item>

<item>
<name>Change F7 to MUSIC_PREV</name>
<identifier>private.change_f7_to_music_prev</identifier>
<autogen>
__KeyToKey__
KeyCode::F7 | ModifierFlag::NONE,
ConsumerKeyCode::MUSIC_PREV
</autogen>
</item>

<item>
<name>Change F8 to MUSIC_PLAY</name>
<identifier>private.change_f8_to_music_play</identifier>
<autogen>
__KeyToKey__
KeyCode::F8 | ModifierFlag::NONE,
ConsumerKeyCode::MUSIC_PLAY
</autogen>
</item>

<item>
<name>Change F9 to MUSIC_NEXT</name>
<identifier>private.change_f9_to_music_next</identifier>
<autogen>
__KeyToKey__
KeyCode::F9 | ModifierFlag::NONE,
ConsumerKeyCode::MUSIC_NEXT
</autogen>
</item>

<item>
<name>Change F10 to VOLUME_MUTE</name>
<identifier>private.change_f10_to_volume_mute</identifier>
<autogen>
__KeyToKey__
KeyCode::F10 | ModifierFlag::NONE,
ConsumerKeyCode::VOLUME_MUTE
</autogen>
</item>

<item>
<name>Change F11 to VOLUME_DOWN</name>
<identifier>private.change_f11_to_volume_down</identifier>
<autogen>
__KeyToKey__
KeyCode::F11 | ModifierFlag::NONE,
ConsumerKeyCode::VOLUME_DOWN
</autogen>
</item>

<item>
<name>Change F12 to VOLUME_UP</name>
<identifier>private.change_f12_to_volume_up</identifier>
<autogen>
__KeyToKey__
KeyCode::F12 | ModifierFlag::NONE,
ConsumerKeyCode::VOLUME_UP
</autogen>
</item>

<!-- コメントアウト
<item>
<name>print screen</name>
<identifier>private.print_screen</identifier>
<autogen>__KeyToKey__ KeyCode::PC_PRINTSCREEN,KeyCode::4 | ModifierFlag::SHIFT_L | ModifierFlag::COMMAND_L</autogen>
</item>
-->

<item>
<name>max screen</name>
<identifier>private.max_screen</identifier>
<autogen>__KeyToKey__ KeyCode::PC_SCROLLLOCK,KeyCode::F | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_L</autogen>
</item>

<item>
<name>Change PC_PAUSE to EJECT</name>
<identifier>private.change_pc_pause_to_eject</identifier>
<autogen>
__KeyToKey__
KeyCode::PC_PAUSE | ModifierFlag::NONE,
ConsumerKeyCode::EJECT
</autogen>
</item>

<item>
<name>file delete</name>
<identifier>private.file_delete</identifier>
<autogen>__KeyToKey__ KeyCode::PC_DEL | ModifierFlag::COMMAND_L,KeyCode::DELETE | ModifierFlag::COMMAND_L</autogen>
</item>

<item>
<name>MouseButton 4 and 5</name>
<identifier>remap.mouse_button4_5</identifier>
<autogen>
--PointingButtonToKey-- PointingButton::BUTTON4,
KeyCode::JIS_BRACKET_LEFT, ModifierFlag::COMMAND_L
</autogen>
<autogen>
--PointingButtonToKey-- PointingButton::BUTTON5,
KeyCode::JIS_BRACKET_RIGHT, ModifierFlag::COMMAND_L
</autogen>
</item>
</root>

「Preferences」画面で、「Change Key」ボタンをクリックする。
次に、「Reload XML」ボタンをクリックします。

すると、下記のような画面が表示されるので、赤枠のチェックを入れる。

メインメニューの「Karabiner References」→「Hide Karabiner」を選択して、表示を消します。

以上で設定は終わりです。

Accessで複数のテーブルを結合する手順

下記のように、フィールドの構成が同じテーブルが3つあるとします。

「テーブル1」

「テーブル2」

「テーブル3」

この3つのテーブルを結合する手順を説明します。

オブジェクト欄で「クエリ」を選択して、「デザイン」をクリックします。

「テーブルの表示」ダイアログを「閉じる」

ボタンをクリックして閉じます。

メニュー「クエリ」→「SQL」→「ユニオン」を選択します。

赤枠のように、SQL文を入力して、×ボタンをクリックします。

「はい」をクリックします。

任意のクエリ名を入力して「OK」をクリックします。

「クエリ1」をダブルクリックします。

3つのテーブルが結合されて、表示されます。

重複クエリの作成手順

重複クエリとは、特定のフィールドの値が、1つのテーブル内に2つ以上あるレコードを抽出して表示させるクエリのことです。

たとえば、あるテーブルの特定のフィールドを主キーに設定しようとしたところ、そのフィールドの値が2つ以上同じものが存在すると、主キーに設定することができません。

そのような場合に、どのレコードが重複しているのかを調べることが必要になります。

******************************************************

下記のような、全レコード数3,851件のテーブルがあります。このテーブル内のレコードのうち、「郵便番号」が同じレコードがあるかどうかを調べて見ましょう。

上のテーブルは、閉じておきます。

その上で、オブジェクト欄で「クエリ」を選択し、「新規作成」をクリックします。

「重複クエリウィザード」を選択して、「OK」をクリックします。

重複データを調べるテーブル(今回は、「T_郵便番号」)を選択して、「次へ」をクリックします。


今回は、「郵便番号」フィールドが重複しているデータを調べるので、選択可能なフィールドで「郵便番号」を選択し、「>」ボタンをクリックします。




すると、「郵便番号」が右欄に移動しますので、「次へ」をクリックします。


つぎに、重複クエリに表示させるフィールドを選択します。(今回は、すべて表示させるので「>>」ボタンをクリックします。)


「次へ」をクリックします。



任意のクエリ名を入力して、「完了」をクリックします。


下記のように、重複クエリが表示されます。

今回は、郵便番号が同じレコードが3組あったことがわかります。

たとえば、この重複クエリの結果を見て、どちらか一方のデータを削除するなどすれば、「郵便番号」を主キーに設定することができます。

CSVファイルをAccessにインポートする手順

郵便局が公開している「郵便番号と住所の対応表」のCSVファイルを使って説明します。

ダウンロードは、こちらから出来ます。

今回は、「東京都」のデータをダウンロードしました。

Accessのメインメニューから
「ファイル」→「外部データの取り込み」→「インポート」を選択します。

「ファイルの種類」を「Text Files(*.txt,*.csv,*.tab,*,asc)」を選択し、
インポートするCSVファイル「13TOKYO.CSV」を選択して、「インポート」ボタンをクリックします。

下記「テキストインポートウィザード」が表示されます。

「設定」ボタンをクリックします。
すると、下記の「インポート定義」画面が表示されます。

この画面の設定していくのですが、そのためには、元となるCSVファイルが内容がどのようなものなのかをしらべるひつようがあります。

郵便局のページにその説明があります。

<抜粋>

*******************************************************

以上の情報を元に下記のように設定しました。

「フィールドの情報」をスクロールして続きを設定して、「保存」をクリックします。

任意の定義名を入力して、「OK」をクリックします。

「OK」をクリックします。

「次へ」をクリックします。

「次へ」をクリックします。


「新規テーブルに保存する」を選択して「次へ」をクリックします。

「次へ」をクリックします。

用途によって変わりますが、ここでは、「主キーを設定しない」を選択して、「次へ」をクリックします。

任意のテーブル名を入力して、「完了」をクリックします。


インポートが成功すると、下記のようなダイアログが表示されるので「OK」をクリックします。


「T_郵便番号」というテーブルが作成されます。


ダブルクリックすると、下記のようにインポートされていることがわかります。

************************************************************
つづいて、「同じデータ構成」の「別のCSVファイル」を、先ほど作成した、テーブル「 T_郵便番号」に追加でインポートする手順を説明します。

メインメニュー「ファイル」→「外部データの取り込み」→「インポート」を選択します。

「ファイルの種類」でText Files(*.txt,*.csv,*.tab,*.asc)を選択し、 追加するCSVデータ(ここでは、郵便局のページからダウンロードした神奈川県の郵便番号データ「14KANAGA.CSV」)を選択して、「インポート」をクリックします。

「設定」をクリックします。


「定義」をクリックします。


先ほど作成した「インポート定義1」を選択して、「開く」をクリックします。

「OK」をクリックします。

「次へ」をクリックします。

「次へ」をクリックします。

「次のテーブルに保存する」を選択し、先ほど作成した「T_郵便番号」を選択します。

「次へ」をクリックします。


「完了」をクリックします。

インポートが正常に終了すると、下記のようなダイアログが表示されますので、「OK」をクリックします。

「T_郵便番号」をダブルクリックします。

開いたテーブルを東京都の郵便番号の終わりまでスクロールしていくと、先ほどインポートした東京都の郵便番号データの下に、神奈川県の郵便番号データが追加でインポートされていることがわかります。

 

 

 

ThunderBirdの設定を複数のパソコンで共有する方法

1台のパソコンで、ThunderBirdを利用するにあたって、
メールアカウントを登録したり、
フィルターの設定をした場合に、
他のパソコンでThunderBirdを使う場合にも、同じ設定で使いたい場合がある。

そのためには、ThunderBirdの「設定ファイル」をパソコン上のフォルダーからDropBoxなどのクラウドサービスのフォルダに移動させ、
そのファイルを読み込むように設定する必要がある。

そのためには、まずデフォルトで、ThunderBirdが、どこに設定ファイルをなんという名前で保存しているのかを理解しておく必要がある。

<ThunderBirdの設定の仕組み>

「メールアカウント情報、フィルター情報、テーマ など」の設定情報が、

「xxxxxxxx.default」

という名前のフォルダ内のファイル群に保存されている。

その「xxxxxxxx.default」フォルダの保存場所が

「profiles.ini」

というファイルで定義されている。

xxxxxxxx.defaultの保存場所

Windowsの場合 ドライブ名:¥Users¥ユーザー名¥AppData¥Roaming¥Thunderbird¥Profiles
Macの場合 /User/ユーザー名/Library/Thunderbird/Profiles

profiles.iniの保存場所

Windowsの場合 ドライブ名:¥Users¥ユーザー名¥AppData¥Roaming¥Thunderbird
Macの場合 /User/ユーザー名/Library/Thunderbird

<Dropboxの共有フォルダ内に「xxxxxxxx.default」を移動する>

(例)

Dropbox共有フォルダ内に、「Thunderbird」フォルダと、そのフォルダの下に、「Profiles」フォルダを作成し、そこへ「xxxxxxxx.default」フォルダを移動する。

profiles.iniを下記のように変更する。
(変更する前に、元のファイルのバックアップをとっておいたほうがいいと思います)

<Windowsの場合>

[html autolinks=”false”]
[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=0
Path=C:¥Users¥ユーザー名¥Dropbox¥Thunderbird¥Profiles¥xxxxxxxx.default
Default=1
[/html]

<Macの場合>

[html autolinks=”false”]
[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=0
Path=/Users/ユーザー名/Dropbox/Thunderbird/Profiles/xxxxxxxx.default
Default=1
[/html]

以上の設定が終わったら、Thunderbirdを再起動します。

Accessのリレーションシップを理解する

そもそも、なぜ「リレーションシップ」が必要なのか?

下記のようなテーブルがあるとします。

もし、所属部署名が変更になった場合、上の表の一つ一つのレコードを修正する必要があります。

上の表では5件しかレコードがありませんが、これが何百何千件ものレコード件数になった場合に、一括修正するのは大変です。

そこで、下記のような所属部署の情報(「所属部署コード」と「所属部署」)をまとめたテーブルを作ります。

そして、マスタテーブル「T_社員」には、「所属部署コード」だけを登録し、その項目を「T_所属部署」テーブルの項目とリレーション(関連付け)させます。

こうすれば、「T_所属部署」テーブルを修正するだけで、「T_社員」テーブルは何も修正する必要はありません。

このように、リレーションシップを使えば、データベースの管理が楽になります。

*******************************************************

それでは、ここから実際に「テーブル」と、リレーションシップを作成してみましょう。

下記のように「フォールド名」と「データ型」を設定して、「T_社員」というテーブルを作成します。

「T_社員」テーブルに下記のようにデータを入力します。

また、下記のように「フォールド名」と「データ型」を設定し、「所属部署コード」を主キーに設定し、「T_所属部署」というテーブル名で保存します。

「T_所属部署」テーブルに下記のようにデータを入力します。

リレーションシップ画面を表示させ、「T_社員」「T_所属部署」テーブルを配置します。

「T_社員」テーブルの「所属部署コード」を選択し、「T_所属部署」テーブルの「所属部署コード」までドラッグアンドドロップします。


「結合の種類」ボタンをクリックします。


「T_社員」の全レコードと「T_所属部署」の同じ結合フォールドのレコードだけを含める。を選択して、「OK」をクリックします。

すると、下記のように「T_社員」の「所属部署コード」から「T_所属部署」の「所属部署コード」に向けて→が表示されます。


→の先端側のテーブル「T_所属部署」を「主テーブル」と呼び、→の根元側のテーブル「T_社員」を「関連テーブル」と呼びます。

主テーブル 関連テーブル
テーブル名 T_性別 T_個人
関連フィールド 性別コード

1種類のコードは、つのみ

主キー

性別コード

1種類のコードは、数ありうる

外部キー

赤矢印の部分を右クリックして、「リレーションシップの編集」を選択すると、リレーションシップの設定画面が表示されるので、

「参照整合性」にチェックを入れて、「OK」をクリックします。


「参照整合性」にチェックを入れると、「主テーブル(T_所属部署)の主キー(所属部署コード)」にないものを、「関連テーブル(T_社員)の外部キー(所属部署コード)として設定(入力)することができなくなります。

逆に言うと、「参照整合性」にチェックを入れなければ、「主テーブル」にない外部キーを「関連テーブル」に入力できます。

次に、「フィールドの連鎖更新」にチェックをいれて、「作成」をクリックします。


すると、「主テーブル(T_所属部署)の主キー(所属部署コード)」を変更すると、連動して「関連テーブル(T_社員)の外部キー(所属部署コード)」も変更されます。

逆に、「フィールドの連鎖更新」にチェックを入れないと、「主テーブルの主キー」を変更することができません。

最後に、「レコードの連鎖削除」にチェックを入れます。


すると、「主テーブル(T_所属部署)」のレコードを削除すると、削除するレコードの主キーと同じ外部キーをもつ「関連テーブル(T_社員)」のレコードが削除されます。

逆に、「レコードの連鎖削除」のチェックを入れないと、「主テーブル」のレコードを削除することができません。

Accessでコンボボックスを使ったフォームを作成する(リレーションなし)

<完成フォーム>

最終的に完成するフォームは、下記のようなものです。

コンボボックスとは、マウスで「▼ボタン」を選択することで、ドロップダウンリストが表示され、その中から入力したいものを選択するものです。

下のフォームでいうと、「所属部署」にコンボボックスが設定されています。


コンボボックスは、どのような時に使うのか?

上の例のように、所属部署など「一定の上限があり、繰り返し利用するもの」などをコンボボックスにしておくと便利です。

************************************************************************************

それでは、ここから上記に示した「コンボボックスを使ったフォーム」を作成する手順を説明します。

まず、Accessを起動して、「新規作成」アイコンをクリックします。

「空のデータベース」をクリックします。

任意の「ファイル名」を入力して「作成」をクリックします。

オブジェクト欄で「テーブル」を選択し、右の欄で「デザインビューでテーブルを作成する」を選択。その上で、「デザイン」をクリックします。

「テーブル」のデザインフォームが開くので、赤枠のように「フィールド名」と「データ型」を設定します。


「ID」の行をクリックして選択し、「鍵マーク」アイコンをクリックします。

これによって、「ID」が主キー(重複が許されないキー)に設定されます。

今回のフォームを作成するだけのケースでは、主キーは必ずしも必要ではありませんが、検索システムなどを作成することになった場合は、主キーが必要になるので、一応、主キーとなる「ID」という項目を作成しておきました。


上記デザインフォームの「✖︎」ボタンをクリックすると、下記のダイアログが表示されるので「はい」をクリックします。

任意の「テーブル名」を入力して、「OK」をクリックします。

下記のように「T_社員」というテーブルが作成されていることを確認します。

次に、所属部署の対応表をまとめたテーブルを作成します。

オブジェクト欄で「テーブル」を選択、右の欄で「デザインビューでテーブルを作成する」を選択します。その上で、「デザイン」をクリックします。
テーブルがデザインビューで開くので、赤枠のように「フィールド名」と「データ型」を設定します。

「所属部署コード」の行を選択し、「鍵マーク」アイコンをクリックします。

上記デザインフォームの「✖︎」ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。

任意のテーブル名を入力して、「OK」をクリックします。


上記ダイアログの「✖︎」ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。

つぎに、「T_所属部署」テーブルを開いて、下記のようなデータを入力します。

つぎに、ここまで作成したテーブルを基にしたクエリを作成します。

作成するクエリは2つ。

1つは、「T_社員」テーブルを基にした「Q_社員」クエリ

もう一つは、「T_所属部署」テーブルを基にした「Q_所属部署」クエリです。

まずは、「Q_社員」クエリの作成手順を説明します。

オブジェクト欄で「クエリ」を選択し、右欄で「デザインビューでクエリを作成する」を選択します。その上で「デザイン」をクリックします。

下記ダイアログが表示されるので、

「T_社員」を選択して、「追加」をクリック

最後に、「閉じる」をクリックします。


下記のように、クエリのデザインビューが表示されるので、赤矢印のように、各項目をドラッガンドドロップします。

 

上記デザインビューの「✖︎」ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。

任意の「クエリ名」を入力して、「OK」をクリックします。

つぎに、「T_所属部署」テーブルを基にした「Q_所属部署」クエリを作成します。

 

それでは、「Q_所属部署」クエリを作成する手順を説明します。

オブジェクト欄で「クエリ」を選択し、右欄で「デザインビューでクエリを作成する」を選択します。その上で「デザイン」をクリックします。

下記ダイアログが表示されるので、「T_所属部署」を選択して、「追加」をクリックします。最後に、「閉じる」をクリックします。

赤矢印のように各項目をドラッグアンドドロップします。

上記デザインビューの「✖︎」ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。

任意の「クエリ名」を入力して、「OK」をクリックします。

最後に、ここまでで作成したクエリを基にしたフォームを作成します。

オブジェクト欄で「フォーム」を選択し、右欄で「デザインビューでフォームを作成する」を選択します。その上で、「新規作成」をクリックします。

「オートフォーム:表形式」を選択、「Q_社員」を選択し、「OK」をクリックします。

下記のようなフォームが表示されます。



上記フォームを「✖︎」ボタンで閉じます。すると、下記ダイアログが表示されるので「はい」をクリックします。

任意の「フォーム名」を入力して「OK」をクリックします。

作成された「F_社員」を選択して、「デザイン」をクリックします。

赤枠の「所属部署コード」をクリックして選択し、右クリックして、「コントロールの種類の変更」→「コンボボッス」を選択します。

すると、「所属部署」の表示に「▼ボタン」が追加されます。


再度、「所属部署」のところをクリックして選択し、右クリックして「プロパティ」を選択します。

すると、下記のようなプロパティが表示されます。

赤枠の部分がコンボボックスの逆三角ボタンをクリックした時に表示されるリストに関する情報です。

「値集合タイプ」は、「テーブル/クエリ」

「値集合ソース」は、「Q_所属部署」クエリを選択します。

「列数」は、2にします。本来は、Q_所属部署の項目(「所属部署コード」と「所属部署」)のうち「所属部署」だけが必要なのですが、1とするのではなく、先頭の列から必要な項目の存在する列までの列数を指定します。

「列見出し」は、「いいえ」にしておきました。「はい」にすると、リストの一番上に項目名が表示されますが、ない方が使いやすいと思います。ご自分で試してみてください。

「列幅」は、2番目の列だけを表示させるので、1列目を0cmとし、「0cm;2cm」のように区切って指定します。

「連結列」は、何列目のデータを入力項目にするかという設定です。今回は、2列目の「所属部署」を入力データにするので2としています。

「リスト行数」は、縦に何行表示させるかの設定です。

「リスト幅」は、リスト全体の幅(今回は2列表示させるので、0cm+4cm=4cmと設定しました)です。

設定が終わったら、✖︎ボタンをクリックします。
すると、下記ダイアログが表示されるので「はい」をクリックします。

これで、コンボボックスが組み込まれたフォームが作成されました。



「所属部署」の▼ボタンをクリックすると、下記のようにリストが表示されます。

入力したいリストを選択すると、「所属部署」のデータが入力されます。

 

下記のように、データを入力して見ましょう。

入力するのは「氏名」と「所属部署」です。

「ID」と「所属部署」は自動的に入力されます。

今回は、所属部署をコンボボックスにしてみましたが、他にもコンボボックスを活用する場面はあります。
(例)性別、元号、科目、商品などなど

<本記事で紹介したmdbファイル>

[wpdm_package id=’665929′]

これ以外に、

リレーションを使った方法

もあるので、興味がある方は参照してください。

Accessでコンボボックスを使ったフォームを作成する手順(リレーションあり)

<完成フォーム>

最終的に完成するフォームは、下記のようなものです。

コンボボックスとは、マウスで「▼ボタン」を選択することで、ドロップダウンリストが表示され、その中から入力したいものを選択するものです。

下のフォームでいうと、「所属部署コード」にコンボボックスが設定されています。

コンボボックスは、どのような時に使うのか?

上の例のように、所属部署など「一定の上限があり、繰り返し利用するもの」などをコンボボックスにしておくと便利です。

「所属部署コード」と「所属部署」は、リンク(リレーション)されているので、「所属部署コード」を入力するとそれに対応する「所属部署」が自動的に表示されます。

しかし、「所属部署コード」にコンボボックスを設定していないと、何番の「所属部署コード」が何という「所属部署」なのかを別の表などを見て確かめなければなりません。

このような非効率を排除するために、コンボボックスを使うのです。コンボボックスを使えば、所属部署の対応表をいちいち覚えたり、調べたりする必要がなくなるのです。


それでは、ここから上記に示した「コンボボックスを使ったフォーム」を作成する手順を説明します。

まず、Accessを起動して、「新規作成」アイコンをクリックします。

「空のデータベース」をクリックします。

任意の「ファイル名」を入力して「作成」をクリックします。

オブジェクト欄で「テーブル」を選択し、右の欄で「デザインビューでテーブルを作成する」を選択。その上で、「デザイン」をクリックします。

「テーブル」のデザインフォームが開くので、赤枠のように「フィールド名」と「データ型」を設定します。

 

ここで、注意して欲しいのは、このメインとなるテーブルにおいては、「所属部署コード」という数値型の項目のみを持たせ、「所属部署」というテキスト型の項目をもたせていないことです。

後で作成しますが、「所属部署コード」と「所属部署」を対応させたテーブルを別に作成し、「所属部署コード」でリンク(リレーション)させ、2つのテーブルを基にクエリを作成することで、「所属部署」を表示させるという方法をとります。

なぜ、こんな面倒なことをするのでしょうか?

「所属部署」というテキスト型の項目をメインのテーブルに設けるという方法も考えられます。

リレーションを使わない方法

しかし、この方法をとると2つのデメリットがあります。

1つは、メインテーブルにテキスト型のデータをもたせると、数値型のデータよりも容量が多くなるという点。

もう1つは、「所属部署」の名前が変更(組織替えなど)された場合に、メインテーブルの「所属部署」をすべて変更しなければならなくなる点です。

この点、「所属部署コード」と「所属部署」の対応を別のテーブルにしておけば、そのテーブルの「所属部署」の部分だけを変更すれば、クエリ上に反映されることになります。


それでは、続きの作業へ進みます。

「ID」の行をクリックして選択し、「鍵マーク」アイコンをクリックします。

これによって、「ID」が主キー(重複が許されないキー)に設定されます。

今回のフォームを作成するだけのケースでは、主キーは必ずしも必要ではありませんが、検索システムなどを作成することになった場合は、主キーが必要になるので、一応、主キーとなる「ID」という項目を作成しておきました。

上記デザインフォームの「✖︎」ボタンをクリックすると、下記のダイアログが表示されるので「はい」をクリックします。

任意の「テーブル名」を入力して、「OK」をクリックします。

下記のように「T_社員」というテーブルが作成されていることを確認します。

次に、所属部署の対応表をまとめたテーブルを作成します。

オブジェクト欄で「テーブル」を選択、右の欄で「デザインビューでテーブルを作成する」を選択します。その上で、「デザイン」をクリックします。

テーブルがデザインビューで開くので、赤枠のように「フィールド名」と「データ型」を設定します。

「所属部署コード」の行を選択し、「鍵マーク」アイコンをクリックします。

上記デザインフォームの「✖︎」ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。

任意のテーブル名を入力して、「OK」をクリックします。

「T_所属部署」というテーブルが作成されていることを確認します。

つぎに、赤枠の「リレーションシップ」アイコンをクリックします。

下記のようなダイアログが表示されるので、

「T_社員」を選択して、「追加」をクリック。

「T_所属部署」を選択して、「追加」をクリック。

最後に、「閉じる」をクリックします。


「リレーションシップ」の画面に、「T_社員」テーブルと「T_所属部署」テーブルの項目情報が表示されます。

そこで、「T_社員」テーブルの「所属部署コード」をマウスで選択して、「T_所属部署」テーブルの「所属部署コード」の上までドラッグアンドドロップします。

すると、下記のダイアログが表示されるので、「参照整合性」にチェックを入れ、「結合の種類」をクリックします。

「T_社員」の全レコートと「T_所属部署」の同じ結合フィールドのレコードだけを含める。を選択して、「OK」をクリックします。

「作成」をクリックします。

下記のように、所属部署コードがリンク(リレーション)されます。

「T_社員」の所属部署コードは、重複がある(∞、多)

「T_所属部署」の所属部署コードは、重複なし(1,1つ)

ということを示しています。

上記ダイアログの「×」ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。

つぎに、「T_所属部署」テーブルを開いて、下記のようなデータを入力します。

つぎに、ここまで作成したテーブルを基にしたクエリを作成します。

作成するクエリは2つ。

1つは、「T_社員」テーブルと「T_所属部署」テーブルを基にした「Q_社員」クエリ

もう一つは、「T_所属部署」テーブルを基にした「Q_所属部署」クエリです。

まずは、「Q_社員」クエリの作成手順を説明します。

オブジェクト欄で「クエリ」を選択し、右欄で「デザインビューでクエリを作成する」を選択します。その上で「デザイン」をクリックします。

下記ダイアログが表示されるので、

「T_社員」を選択して、「追加」をクリック。

「T_所属部署」を選択して、「追加」をクリック。

最後に、「閉じる」をクリックします。


下記のように、クエリのデザインビューが表示されるので、赤矢印のように、各項目をドラッガンドドロップします。

ここで、「所属部署コード」については、「T_社員」テーブルのもののみをドラッグアンドドロップするようにします。

「T_所属部署」の方の「所属部署コード」をドラッグアンドドロップすると、あとで不具合が生じます。

リンク(リレーション)した項目については、多側(∞側)のテーブルの項目を使うということを覚えておいてください。

ここは、Accessでリレーションシップを使うときに間違えやすい点(キモ)です。

上記デザインビューの「✖︎」ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。


任意の「クエリ名」を入力して、「OK」をクリックします。

つぎに、「T_所属部署」テーブルを基にした「Q_所属部署」クエリを作成します。

「Q_社員」クエリは、2つのテーブルを基に作成しました。

それに対して、「Q_所属部署」クエリは、「T_所属部署」テーブル1つを基にして、項目などもすべて同じものにするのに、なぜ、わざわざクエリを作成する必要があるのでしょうか?

たしかに、この先で作るフォームや、コンボボックスにおいても「クエリ」ではなく「テーブル」を基に作成することもできます。

しかし、テーブルをもとにフォームやコンボボックスを作ってしまうと、あとあと表示の並べ替え(昇順や降順)や項目を抽出したくなったりした場合に、クエリのデザインビューで設定することにより、フォームやコンボボックスに反映させることができるのです。

その意味で、フォームやコンボボックスの基は、「クエリ」の方があとあとの修正がようになります。

それでは、「Q_所属部署」クエリを作成する手順を説明します。

オブジェクト欄で「クエリ」を選択し、右欄で「デザインビューでクエリを作成する」を選択します。その上で「デザイン」をクリックします。

下記ダイアログが表示されるので、「T_所属部署」を選択して、「追加」をクリックします。最後に、「閉じる」をクリックします。

赤矢印のように各項目をドラッグアンドドロップします。

上記デザインビューの「×」ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。

任意の「クエリ名」を入力して、「OK」をクリックします。

最後に、ここまでで作成したクエリを基にしたフォームを作成します。

オブジェクト欄で「フォーム」を選択し、右欄で「デザインビューでフォームを作成する」を選択します。その上で、「新規作成」をクリックします。

「オートフォーム:表形式」を選択、「Q_社員」を選択し、「OK」をクリックします。

下記のようなフォームが表示されます。




上記フォームを「×」ボタンで閉じます。すると、下記ダイアログが表示されるので「はい」をクリックします。

任意の「フォーム名」を入力して「OK」をクリックします。

作成された「F_社員」を選択して、「デザイン」をクリックします。

赤枠の「所属部署コード」をクリックして選択し、右クリックして、「コントロールの種類の変更」→「コンボボッス」を選択します。

すると、「所属部署コード」の表示に「▼ボタン」が追加されます。

再度、「所属部署コード」のところをクリックして選択し、右クリックして「プロパティ」を選択します。

すると、下記のようなプロパティが表示されます。

赤枠の部分がコンボボックスの「▼ボタン」をクリックした時に表示されるリストに関する情報です。

「値集合タイプ」は、「テーブル/クエリ」

「値集合ソース」は、「Q_所属部署」クエリを選択します。

「列数」は、2にします。これは、Q_所属部署の項目(「所属部署コード」と「所属部署」)を2列ならべてリスト表示することを意味します。

「列見出し」は、「いいえ」にしておきました。「はい」にすると、リストの一番上に項目名が表示されますが、ない方が使いやすいと思います。ご自分で試してみてください。

「列幅」は、2列表示させるので、;で区切って指定します。

「連結列」は、何列目のデータを入力項目にするかという設定です。今回は、1列目の「所属部署コード」を入力データにするので1としています。

「リスト行数」は、縦に何行表示させるかの設定です。

「リスト幅」は、リスト全体の幅(今回は2列表示させるので、2cm+4cm=6cmと設定しました)です。

設定が終わったら、✖︎ボタンをクリックします。
すると、下記ダイアログが表示されるので「はい」をクリックします。

これで、コンボボックスが組み込まれたフォームが作成されました。


「所属部署コード」の「▼ボタン」をクリックすると、下記のようにリストが表示されます。

入力したいリストを選択すると、「所属部署コード」と「所属部署」のデータが入力されます。

 

下記のように、データを入力して見ましょう。

入力するのは「氏名」と「所属部署コード」です。

「ID」と「所属部署」は自動的に入力されます。

今回は、所属部署をコンボボックスにしてみましたが、他にもコンボボックスを活用する場面はあります。

(例)性別、元号、科目、商品などなど


<本記事で紹介したmdbファイル>

[wpdm_package id=’665906′]

システムを使う人が楽になるようにするために、コンボボックスを使うことをお勧めします。

その他のAccessシステムのサンプルのダウンロードページへ

Accessでサブフォームを組み込んだフォームを作成する方法

単票形式のメインフォームの中に、表形式のサブフォームを組み込んだフォームの作成方法について説明します。

今回は、
個人単位の情報「氏名、年齢」を元データとする単票形式のメインフォームを作成し、そのフォームの中に、成績「科目、点数」を元データとする表形式のサブフォームを組み込みます。

最終的に出来上がるフォームは、下記のようなものです。

<メインフォームとサブフォームに分けた方が良い例>

メインフォーム サブフォーム
個人情報(氏名、学年、性別、生年月日、…) 成績情報(科目、点数、評価….)

 

企業情報(企業名、住所、電話番号、….) 取引履歴(取引先企業名、取引日、取引商品名、取引個数、…)
銀行情報(銀行名..) 取引履歴(取引日、入金額、出金額…)
 …

このように、メインフォームの情報が「1個」に対して、「複数」の情報が対応するようなものをサブフォームとして取り扱います。

なぜ、こんなことをするのでしょうか?

仮に、サブフォーム側の1つ1つの情報に、メインフォーム側の情報を1つずつくっつけると、メインフォーム側の情報に重複が生じ無駄が生じますし、フォーム上も見づらくなります。

そこで、重複がないようにメインデータをまとめ、メインデータに「固有ID」を付加し、サブデータには、その「固有ID」だけを持たせることでメインデータと連結(リンク)します。

これによって、サブデータ側には、「固有ID」だけが重複しますが「固有ID」1つの項目の重複だけで済むのでデータ量の無駄を抑えることができます。

<具体的な作成手順>

それでは、ここから作成手順を説明します。
ぜひ、順を追って実際に作成してみてください。

なお、本記事の最後にサンプルのmdbをダウンロードできるようにしましたので、検証用に使ったり、加工してご自分の作りたいシステムに変更するなどしてご利用ください。

************************************************************************************

Accessを起動し、新規作成アイコンをクリックします。

「空のデータベース」をクリックします。

任意のデータベース名(ここでは、「テスト」としました)を入力して「作成」ボタンをクリックします

オブジェクト欄で「テーブル」を選択し「デザインビューでテーブルを作成する」を選択した状態で、「デザイン」をクリックします。

テーブルのフィールド名とデータ型を下記のように設定します。

「個人ID」の行を選択して、「鍵マーク」のアイコンをクリックします。

これで、「個人ID」という項目が主キー(重複が許されない)になります。

右上の✖︎ボタンをクリックすると、下のようなダイアログが表示されるので、テーブル名(ここでは、「T_個人」としました)を入力して「OK」ボタンをクリックします。

下記のように「T_個人」というテーブルが作成されます。

同じ要領で、下記のように「T_科目」というテーブルを作成します。


さらに、もう一つ「T_成績」というテーブルも作成します。


3つのテーブルが作成されていることを確認します。


「T_個人」をダブルクリックして、テーブルを開き、下記のようにデータを入力します。


同じように、「T_成績」テーブルについても、下記のようにデータを入力します。


最後に、「T_科目」テーブルに下記のようにデータを入力します。


下記のように、赤枠で囲んだ「リレーションシップ」のアイコンをクリックします。


下記のようなダイアログが表示されるので、「T_個人」を選択して、「追加」をクリックし、次に「T_成績」を選択して「追加」をクリック、最後に「T_科目」を選択して「追加」をクリックして「閉じる」をクリックします。


すると、リーレーションシップの画面に3つのテーブルが表示されます。


「T_個人」の「個人ID」の上にマウスをのせ、左クリックボタンを押したまま、「T_成績」の「個人ID」の場所までドラッグし、ドロップします。

すると、下記のような画面が表示されますので、「参照整合性」にチェックを入れ「結合の種類」をクリックします。


下記のダイアログが表示されたら、「T_成績」の全レコードと「T_個人」の同じ結合フィールドだけを含める。を選択して、「OK」ボタンをクリックします。

「作成」ボタンをクリックします。


すると、下記のように「T_個人」の個人IDと「T_成績」の個人IDが関連付け(リレーション)されます。T_個人の方に「1」、T_成績の方に「∞」とあるのは、T_個人のテーブルの個人IDは、重複がない(一つの番号は、一つしかない)ことを示し、T_成績テーブルの個人IDは、重複がある(一つの番号が2つ以上あり得る)ことを示しています。


同じように、「T_成績」の「科目ID」をクリックして、「T_科目」の「科目ID」までドラッグしてドロップします。すると、下記のようなダイアログが表示されるので、「参照整合性」にチェックを入れて、「結合の種類」をクリックします。


「T_成績」の全レコードと「T_科目」の同じ結合フィールドのレコードだけを含めるを選択して、「OK」ボタンをクリックします。


「作成」をクリックします。


下記のようにリレーションシップが作成されます。


上の画面の右上の✖︎ボタンをクリックすると、下のダイアログが表示されるので「はい」をクリックします。


次に、クエリを作成します。

オブジェクト欄で「クエリ」を選択し、「デザインビューでクエリを作成する」を選択した状態で「デザイン」をクリックします。


下記のダイアログが表示されるので、「T_個人」を選択して、「追加」をクリックします。


下記の画面が表示されるので、矢印のように、各項目をドラッグアンドドロップします。


上の画面の✖︎ボタンををクリックすると、下記のダイアログが表示されるので「はい」をクリックします。


下のダイアログが表示されたら、クエリ名(ここでは、Q_個人としました)を入力して「OK」をクリックします。


すると、下記のようにQ_個人という名前のクエリが作成されます。

同じように、オブジェクト欄で「クエリ」を選択し、「デザインビューでクエリを作成する」を選択した状態で「デザイン」をクリックします。

すると、下記のようなダイアログが表示されます。

まず「T_成績」を選択して「追加」をクリックします。

次に、「T_科目」を選択して「追加」をクリックします。

最後に、「閉じる」をクリックします。


下記の赤矢印のように、各項目をドラッグアンドドロップします。

注意:ここで、科目IDについては、「T_成績」の科目ID(重複あり)の方をクエリでは使います。「リレーション項目については、多側(∞側)を使う。」と覚えておきましょう。ここで、1側(重複なし側)を使うとエラーが発生します。


上記の✖︎ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。


任意のクエリ名(ここでは、「Q_成績」としました)を入力して「OK」をクリックします。


すると、「Q_成績」が作成されます。


次に、フォームを作成します。

オブジェクト欄で「フォーム」を選択して「新規作成」をクリックします。


「オートフォーム:表形式」を選択して、基になるテーブルまたはクエリの選択欄に先ほど作成した「Q_成績」を選択して、「OK」をクリックします。


すると、下記のような表形式のフォームが作成されます。


上記のフォームの✖︎ボタンをクリックすると、下記のダイアログが表示されるので「はい」をクリックします。


任意のフォーム名(ここでは、F_成績とした)を入力して「OK」をクリックします。


下記のようにF_成績というフォームが作成されます。


次に、個人の単票形式のフォームを作成します。

オブジェクト欄で「フォーム」を選択し、「デザインビューでフォームを作成」が選択された状態で「新規作成」をクリックします。

「オートフォーム:単票形式」を選択、「Q_個人」を選択し「OK」をクリックします。


下記のような単票フォームが表示されます。


✖︎ボタンをクリックスロと、下記ダイアログが表示されるので「はい」をクリックします。


任意のフォーム名(ここでは、「F_個人」とした)を入力して「OK」をクリックします。


F_個人というフォームが作成されます


作成された単票形式のフォーム「F_個人」に、表形式のフォームを組み込みます。

オブジェクト欄「フォーム」を選択、F_個人を選択した状態で「デザイン」をクリックします。


下記のように、「F_個人」フォームが、編集画面で表示されます。

この単票フォームに「F_成績」フォームを配置するので、配置する場所を作るために、赤矢印のようにマウスでトラッグアンドドロップして、余白を広げます。


余白が広がると下のようになります。


サブフォームのアイコンをクリックして、先ほど作成した余白部分でもう一度クリックします。


サブフォームウィザードが表示されるので、「既存のフォームを使用する」を選択して、「F_成績」を選択し、次へをクリックします。


「一覧から選択する」を選択し、「個人IDでリンクし、Q_個人の各レコードに対しQ_成績を表示する」を選択して、「次へ」をクリックする。


任意のサブフォーム名を入力して「完了」をクリックする。


下記のように、「F_成績」フォームが組み込まれます。

縦横の幅などは、ドラッグアンドドロップで調整します。


上記画面の✖︎ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。


「F_個人」をダブルクリックします。


組み込み後のフォームが表示されます。赤枠部分の移動ボタンを押すと、個人データが切り替わります。

また、サブフォーム「F_成績」の部分は、データ修正とデータ追加を行うことができます。

データ追加は、表の一番下の空白行に入力するのですが、「科目ID、科目、点数」のいずれかを入力すると、「個人ID」が自動的に入力されます。入力される値は、メインフォーム「F_個人」の個人IDと同じ値です。


上記で説明したように、サブフォーム「F_成績」の「個人ID」は、自動的に入力されるので、フォーム上に表示させる必要がない。

そこで、個人IDを非表示にする設定について説明します。

修正するのは、サブフォームなので、「F_成績」をデザインで開きます。


開いたら、「個人ID」の部分をクリックして、右クリックし、「プロパティ」を選択します。


プロパティの「可視」のところを「いいえ」に設定します。


ラベルも必要なくなるので、「個人ID」のラベルを選択して削除します。


✖︎ボタンをクリックして、保存します。


「F_成績」をダブルクリックします。


下記のように「個人ID」が表示されないのがわかります。


メインフォーム「F_個人」をダブルクリックします。


メインフォーム内のサブフォームでも「個人ID」が消えていることがわかります。

<この記事で紹介したmdbファイルのダウンロード>

[wpdm_package id=’665784′]

このサンプルを応用して、ご自分の必要なデータベース作成にお役立てください。

CotEdidorの使い方

文字列の置換の方法

メインメニュー「検索」→「検索」
で置換元の文字列と、置換後の文字列を入力をするボックスが表示されるので、
それぞれ文字列を入力して、一個ずつ「置換」か「すべて置換」のボタンをクリックする。

エレコムのマウスの4、5番ボタンの設定

マウスアシスタント5で、ボタン4および5に

safari:戻る、safari:進む

の設定をしても反応しないことがある。

その場合、
マウスアシスタント5のボタン4と5の設定を「切」にした上で、
次の設定を行う。

karabienerを立ち上げる。

Misc & uninstallタブをクリックする。

Open private.xmlボタンをクリックする。

既存のprivate.xmlのコピーをとり別名で保存しておく。

private.xmlをエディタで開いて、内容を以下のように書き換える。

[code]
<?xml version="1.0"?>
<root>
<list>
<item>
<name>MouseButton 4 and 5</name>
<identifier>remap.mouse_button4_5</identifier>
<autogen>
–PointingButtonToKey– PointingButton::BUTTON4,
KeyCode::JIS_BRACKET_LEFT, ModifierFlag::COMMAND_L
</autogen>
<autogen>
–PointingButtonToKey– PointingButton::BUTTON5,
KeyCode::JIS_BRACKET_RIGHT, ModifierFlag::COMMAND_L
</autogen>
</item>
</list>
</root>
[/code]

Change Key タブをクリックして、Reload XMLボタンをクリックする。

リストに、MouseButton 4 and 5 が表示されるので、チェックを入れる。

以上によって、マウスボタン4、5に、safari戻るとsafari進むの設定ができる。

<safari:進むが、1passwordの起動と競合する問題の解決方法>

「safari:進む」のショートカットがcommand + ] となっており、1passwordの既定のショートカットと同じことが原因で、マウスの4番ボタンを押して、safari:進むを作動させようとすると、1passwordのポップアップが表示されて、safariが進む動作をしてくれない。

そこで、
1passwordの起動のショートカットを変更する。

1password本体のアプリを起動する。

「1password」→「環境設定」→「ログイン」タブ
Fill Login keyboard shortcut と
Show extension popup keyboard shortcut のところに、
ctrl + esc を入力してショートカットを変更する。

その他のショートカットを入力してみたところ警告が出て変更できなかった。

ちなみに、もともとのcommand + ] に戻すこともできなかった。

エレコムのマウスアシスタントと1passwordの相性の問題

エレコムのマウスアシスタント5で、マウスのあるボタンに「safari:進む」を設定した場合、
safariの拡張機能として1passwordを有効化している場合。

「safari:進む」を設定したマウスのボタンをクリックすると、
safariの「進む」ボタンはクリックされず、1passwordのボタンがクリックされ、1passwardのログイン画面が展開してしまいます。

そこで、1passwordを無効化して、再度、「進む」を設定したマウスのボタンをクリックすると無反応になります。
そこで、1password無効のまま、Mac自体を再起動したのち、マウスのボタンをクリックすると正常に動作しました。

このような、特殊な環境で利用している方も少ないかもしれませんが、参考までに。

Microsoft Intellipoint をEl Capitanで使う方法

下記の手順で作動するようになるが、動作が不安定になったためアンインストールした。

<手順1>
El CapitanのSIP機能を無効化する。
1.Command + R を押しながら起動
2.ターミナルで下記のコマンドを実行
csrutil disable
3.再起動

<手順2>
https://www.microsoft.com/accessories/ja-jp/d/intellimouse-optical
にアクセスして、intellipoint 8.2をダウンロードしてインストールする。
※すでにインストールしている場合は、一旦アンインストールして再度インストールする。
アンインストール方法:
「アプリケーション」→「ユーティリティ」内のintellipointアンインストールをダブルクリック

Accessのクエリで%表示をする方法

まず、テーブルを作成します。

オブジェクト欄で「テーブル」を選択し、右欄「デザインビューでテーブルを作成する」を選択します。その上で、「デザイン」をクリックします。

テーブルのデザインビューが表示されるので、赤枠のように設定をします。

上の画面で、×ボタンをクリックすると、下記ダイアログが表示されるので「はい」をクリックします。

任意のテーブル名を入力して「OK」をクリックします。

下記ダイアログが表示されるので、「いいえ」をクリックします。

下記のように「T_マスタ」というテーブルが作成されます。

オブジェクト欄で「クエリ」を選択し、右欄で「デザインビューでクエリを作成する」を選択します。その上で、「デザイン」をクリックします。

「T_マスタ」が選択された状態で、「追加」をクリックし、「閉じる」をクリックします。

赤矢印のように「割合」をドラッグアンドドロップします。

フィールド欄の「割合」の上で右クリックをして、メニューを表示させ、「プロパティ」を選択します。

フィールドプロパティが表示されるので、書式のところを「パーセント」に設定します。

上記の「フィールドプロパティ」を×ボタンで閉じます。

続けて、クエリのデザインビューの×ボタンをクリックします。

すると、下記のようなダイアログが表示されますので「はい」をクリックします。

人気のクエリ名を入力して「OK」をクリックします。

下記のように、「Q_マスタ」というクエリが作成されます。

「Q_マスタ」をダブルクリックして下記のようにデータを入力します。

このとき、「0.25」と入力すると、表示が「25.00%」となります。

「Q_マスタ」クエリのもとになっている「T_マスタ」テーブルを開いて見ると、下記のように小数点表示となっていることがわかります。

 

<単に、もとの数値の後ろに%をつけたい場合>

先ほどのフィールドプロパティを開いて、書式を「数値」に設定し×ボタンで閉じます。

次に、フィールド「割合」の上で、右クリックをしてメニューを表示し、「ビルド」を選択します。

赤枠のように、設定して「OK」をクリックします。

Q_マスタのデザインビューを×ボタンをクリックすると、下記ダイアログが表示されるので、「はい」をクリックします。


再度、「Q_マスタ」をダブルクリックして開きます。

すると、入力した数値そのものに%がついていることがわかります。

<サンプルダウンロード>
[wpdm_package id=’666113′]

「Q_マスタ1」は、小数点表示、「Q_マスタ2」は、入力数値そのまま表示としています。

Access 抽出フォームの例

抽出フォームの例

「抽出」ボタンをクリックしたとき実行されるVBAコード

<サンプルmdb>

[wpdm_package id=’665977′]

本記事で説明したもののサンプルです。

レコードセットを利用したAccess「検索システム」

下記のような、検索フォームがあるとします。

Snap-0003

今回は、この検索フォームの「部分一致」ボタンをクリックした時に動作するプログラムコードを例に説明します。


「部分一致」ボタンをクリックした時の動作の概要

1. 「氏名」が空白のまま、「部分一致」ボタンをクリックした場合

→ 「氏名を入力してください。」というメッセージボックスを表示する

2. 「氏名」を入力して、「部分一致」ボタンをクリックした場合

(1) 該当者がいない場合

→ 「該当するデータがありません。」というメッセージボックスを表示する

(2) 該当者が1人の場合

→ 単票形式のフォームを開く

(3) 該当者が2人以上の場合

→ 表形式のフォームを開く


その場合のVBAコードを下記に示します。

このコードを理解するためには、レコードセットという概念を理解する必要があります。

レコードセットというのは、レコードの束(集まり)です。

今回の例でいうと、一人分のデータが1レコード、

そして、全員分のデータの集まりがレコードセットということになります。

rs.Open “Q_マスタ”, cn, adOpenKeyset, adLockOptimistic

と定義することで、rsと言う名前のレコードセット変数に「Q_マスタ」クエリのデータがセットされます。

Dim rsCount As Double

は、通常の変数定義です。
ここでは、rsCount(任意名)というレコードセットのレコード数を代入する変数をDouble型で定義しています。

rs.Filter ="氏名 like '*" & Me!氏名 & "*'"

レコードセットに対して、右辺の条件を満たすものを抽出するという意味になります。

ここで、右の条件、”氏名 like ‘*” & Me!氏名 & “*'”について説明します。

まず、一番左の「氏名」は、rsの中身(Q_マスタ)の氏名という項目が、検索フォームの氏名(Me!というのは、このフォーム(部分一致ボタンが配置されているフォーム)自身のということを意味する)に入力した文字を含むことを意味しています。

“とか’とか&がわかりづらいと思うので、それを取り除いて書くと、

氏名 like * Me!氏名 * となります。

ここで、*は、Me!氏名の前後の任意の文字を示します。
今回は、部分一致なので、前後に*がついていることになります。
前方一致なら、後ろにだけ*を後方一致なら前にだけ*をつけることになります。

ここで、「文字そのもの」については、” “で囲む必要があります。
すると、「氏名 like *」と末尾の「*」は、文字そのものをあらわし、「Me!氏名」は、その中身データ(例えば、「吉田」)をあらわす必要があります。

なので、文字そのものだけを” “で囲みます。

“氏名 like *” Me!氏名 “*”

つぎに、「文字そのもの」と「中身の値」を文でつなぐためには、&でつなぐという決まりがあります。なので、

“氏名 like *” & Me!氏名 & “*”

となります。

最後に、Me!氏名がテキスト型なので、その場合は、’ ‘で囲むという決まりがあります。
(番号などの数値型の場合は、”で囲む必要はありません。)
そこで、

“氏名 like ‘*” & Me!氏名 & “*'”

(たとえば、検索フォームに「吉田」と入力した場合には、

氏名 like ‘*吉田*

と解釈されることになります。)

記述の仕方は、以上です。

条件の書き方は、ぱっと見ややこしいですが、分解して理解しておくと混乱しないと思います。

まとめると、

1.文字そのものは、” ”で囲む

2.文字そのものと、データの中身は、&でつなぐ。

3.データの中身がテキスト型の場合は、’ ’で囲む

そして、条件を満たすレコードが、Q_マスタになかった場合は、

rs.EOFの値が真(True)となります。

その場合は、レコードセットの件数(rsCount)に0を代入します。

条件を満たすレコードがあった場合は、

rs.EOFの値が偽(False)となります。

rs.MoveLastを実行すると、レコードセットの最後のレコードの情報へ移動します。

その状態で、rs.RecordCountを実行すると、その最後のレコードの最初のレコードからの件数を得ることが出来、その値をrsCountに代入します

あとは、この値が0のときは、メッセージボックスを表示して、0でないときは、該当するデータを表示するように、if文で処理わけをすればよいわけです。


「部分一致」だけでなく、他の検索についても、VBAを作成したものを下記からダウンロードできます。

<サンプルダウンロード>

[wpdm_package id=’665644′]

この記事で説明したmdbファイルのサンプルです。