Accessでフォームを利用しているとき、一つ一つの内容を確認するにはフォームビューが便利なのですが、見たいフォームが一つでは無いとき、一覧で探しつつも内容を確認するなら、データシートビューの方がやはり便利で、ビューを切り替えつつ作業したいときがあるんですよね。
もちろん、ツールバーのボタンからビューを切り替えれば良い話なのですが、私はレコードセレクタをダブルクリックしたときに、フォームビューとデータシートビューが切り替わるよう、以下の様に簡単に設定することにしました。
フォームのプロパティを開いて、「ダブルクリック時」のイベント欄で「▼」のボタンを押して、コンボボックスから「イベント プロシージャ」を選択します。
その後、「…」ボタンを押して、VBAの編集画面を開き、「Private Sub Form_DblClick(Cancel As Integer)」から「End Sub」までが自動的に入力されていると思いますので、その間に記述を追加し、以下の様に変更しました。
Private Sub Form_DblClick(Cancel As Integer)
If Me.CurrentView = 2 Then
DoCmd.RunCommand acCmdFormView
Else
DoCmd.RunCommand acCmdDatasheetView
End If
End Sub
意味的には、このフォームのレコードセレクタをダブルクリックした際、現在のビューが何になっているかを判断し、今がデータシートビューなら、フォームビューに切り替え、違うなら、データシートビューに切り替える、ということだけを記載しています。
(CurrentViewで現在の表示モードを判断しています。0がデザイン ビュー、1がフォーム ビュー、2がデータシート ビューとのことです。)
これで作業は完了です♪ エラー処理なども無視しちゃってますが。。。(^-^;ゞ
ボタンより私はこの方が早く切り替えられる気がするので、結構利用しています^^
もちろん、ツールバーのボタンからビューを切り替えれば良い話なのですが、私はレコードセレクタをダブルクリックしたときに、フォームビューとデータシートビューが切り替わるよう、以下の様に簡単に設定することにしました。
フォームのプロパティを開いて、「ダブルクリック時」のイベント欄で「▼」のボタンを押して、コンボボックスから「イベント プロシージャ」を選択します。
その後、「…」ボタンを押して、VBAの編集画面を開き、「Private Sub Form_DblClick(Cancel As Integer)」から「End Sub」までが自動的に入力されていると思いますので、その間に記述を追加し、以下の様に変更しました。
Private Sub Form_DblClick(Cancel As Integer)
If Me.CurrentView = 2 Then
DoCmd.RunCommand acCmdFormView
Else
DoCmd.RunCommand acCmdDatasheetView
End If
End Sub
意味的には、このフォームのレコードセレクタをダブルクリックした際、現在のビューが何になっているかを判断し、今がデータシートビューなら、フォームビューに切り替え、違うなら、データシートビューに切り替える、ということだけを記載しています。
(CurrentViewで現在の表示モードを判断しています。0がデザイン ビュー、1がフォーム ビュー、2がデータシート ビューとのことです。)
これで作業は完了です♪ エラー処理なども無視しちゃってますが。。。(^-^;ゞ
ボタンより私はこの方が早く切り替えられる気がするので、結構利用しています^^
スポンサーサイト
2014.11.04 | Access |
トラックバック(0) | コメント(0) |
先日、Access2010のフォームをデータシートビューで使用している環境で、項目のフィールド名(データシート先頭のラベル名)を変更したいのに、プロパティの設定画面から項目の名前を別の物に変えても、フィールド名が変わらない、との質問がありました。
通常、フィールド名は自動で認識されたものが付きますし、私が良く使うフォームビューでは、ラベルを別に用意するので、あまり気にしたことは無かったのですが、確か以前は名前を変更したら、ちゃんとデータシートビューの名前も変わっていたはずなので、おかしいですねぇ?なんて話をしていました(^-^;ゞ
気になったので調べてみたところ、あら。旧バージョンのAccessでは確かに名前の変更がそのままデータシートビューのフィールド名に反映されていたのですが、Access2007あたりから、データシートビューの名前は、ちゃんとその設定項目が、名前とは別に用意されていたのですね(ノ∀`)
「データシートの表題」という項目がプロパティにあり、そちらに変更したい名前を入れたらきちんと反映されました♪
その「データシートの表題」が空になっていると、自動認識した表題が設定されるようです。
プロパティの「すべて」タブは項目が多いので、探しにくい場合、「その他」タブに切り替えれば、項目も少ないのですぐに見つかると思います^^
あまりバージョン上げてから増えたプロパティについて気にしてなかったのですが、時間があるときにでも、もうちょっと確認しておきたいと思います( ̄▽ ̄〃)
通常、フィールド名は自動で認識されたものが付きますし、私が良く使うフォームビューでは、ラベルを別に用意するので、あまり気にしたことは無かったのですが、確か以前は名前を変更したら、ちゃんとデータシートビューの名前も変わっていたはずなので、おかしいですねぇ?なんて話をしていました(^-^;ゞ
気になったので調べてみたところ、あら。旧バージョンのAccessでは確かに名前の変更がそのままデータシートビューのフィールド名に反映されていたのですが、Access2007あたりから、データシートビューの名前は、ちゃんとその設定項目が、名前とは別に用意されていたのですね(ノ∀`)
「データシートの表題」という項目がプロパティにあり、そちらに変更したい名前を入れたらきちんと反映されました♪
その「データシートの表題」が空になっていると、自動認識した表題が設定されるようです。
プロパティの「すべて」タブは項目が多いので、探しにくい場合、「その他」タブに切り替えれば、項目も少ないのですぐに見つかると思います^^
あまりバージョン上げてから増えたプロパティについて気にしてなかったのですが、時間があるときにでも、もうちょっと確認しておきたいと思います( ̄▽ ̄〃)
2013.07.13 | Access |
トラックバック(0) | コメント(0) |
以前のAccessで、フォームの大きさを設定画面から数値で指定したり、大きさを見ながらドラッグでちょうど良いサイズに変更したりしていたのに、2010になってから、フォームもクエリも、レポートも全てがタブで表示されてしまい、折角指定していた大きさを無視するようになってしまいました☆
これを以前と同じように、個別の窓で表示させるには、以下の設定を変更すればOKでした^^
まず、メニューバーの「ファイル」→「オプション」を開き、「カレント データベース」の項目を選択します。
次に、「ドキュメント ウィンドウ オプション」の欄を見ると、「タブ付きドキュメント」が選択されていると思いますので、そこを「ウィンドウを重ねて表示する」に変更します。
最後に「OK」ボタンで画面を閉じます。すると「指定したオプションを有効にするには、現在のデータベースを閉じて再度開く必要があります」というメッセージが出ますので、「OK」ボタンを押して画面を閉じてください。
メッセージ通りに該当データベースを閉じ、再度開くと今までと同じようなフォームで開くことが出来ると思います(* ^-^)ノ
これを以前と同じように、個別の窓で表示させるには、以下の設定を変更すればOKでした^^
まず、メニューバーの「ファイル」→「オプション」を開き、「カレント データベース」の項目を選択します。
次に、「ドキュメント ウィンドウ オプション」の欄を見ると、「タブ付きドキュメント」が選択されていると思いますので、そこを「ウィンドウを重ねて表示する」に変更します。
最後に「OK」ボタンで画面を閉じます。すると「指定したオプションを有効にするには、現在のデータベースを閉じて再度開く必要があります」というメッセージが出ますので、「OK」ボタンを押して画面を閉じてください。
メッセージ通りに該当データベースを閉じ、再度開くと今までと同じようなフォームで開くことが出来ると思います(* ^-^)ノ
2012.10.15 | Access |
トラックバック(0) | コメント(0) |
Access2000時代、データベースの特定オブジェクト(フォームやクエリ等)へのショートカットを作成しようと思ったら、そのオブジェクトを右クリックして、「ショートカットの作成」を選択し、ウィザードに従って設定すれば作成可能だったのですが、Access2003以降って「ショートカットの作成」が右クリックのメニューに出てこなくなっちゃったんですよね☆
このショートカットよく使ってたので、どうしたらいいのかしら???と検索していたら、作成方法が判明。
ただ単に、Accessのウィンドウを小さくして、デスクトップや保存したいフォルダを背後に見えるようにしておき、そこにデータベースウィンドウのオブジェクトのアイコンをドラッグ&ドロップしてやれば良いんですね( ̄▽ ̄〃)
ちなみにこの方法、Access2000でも使えました☆ もしかして知らなかったの私だけ?(; ̄ー ̄川
今まで面倒な方法で作成しちゃってましたので、これからはこの方法オンリーで行きたいと思います(笑)
このショートカットよく使ってたので、どうしたらいいのかしら???と検索していたら、作成方法が判明。
ただ単に、Accessのウィンドウを小さくして、デスクトップや保存したいフォルダを背後に見えるようにしておき、そこにデータベースウィンドウのオブジェクトのアイコンをドラッグ&ドロップしてやれば良いんですね( ̄▽ ̄〃)
ちなみにこの方法、Access2000でも使えました☆ もしかして知らなかったの私だけ?(; ̄ー ̄川
今まで面倒な方法で作成しちゃってましたので、これからはこの方法オンリーで行きたいと思います(笑)
2011.08.10 | Access |
トラックバック(0) | コメント(0) |
旧バージョンのAccessとAccess2007ではデータベースの最適化を実行するボタンの位置も変わりましたね☆
旧バージョンではツールバーの「ツール」→「データベース ユーティリティ」の中に「最適化/修復」の項目があり、
そこをクリックすると実行出来たのですが、Office2007の場合は以下の手順で実行できますよ^^
最適化したいデータベースを開いた状態で、左上隅の丸い「Officeボタン」をクリックします。メニューが出てきますので、その中から「管理」を選択します。
すると「データベースの最適化/修復」という項目がありますので、それをクリックすればOKです♪
最適化をいつもかけておきたいときは、データベースを閉じるときに、自動的に最適化をかける、という方法もあります。
設定の手順としては、毎回最適化したいデータベースを開いた状態で、同じく「Officeボタン」をクリックします。
次に、出てきたメニューの右下の方にある、「Accessのオプション」ボタンを押して下さい。
オプションの設定画面が開いたら、「カレントデータベース」の項目を押します。すると「アプリケーション オプション」の項目の中に、「閉じるときに最適化する」という項目があると思いますので、そこにチェックをつけて「OK」ボタンを押せばOKです。
最適化を実行すると、ファイル容量もだいぶ軽量化されたりすることがあって良いと思いますが、でも以前バグもあったそうですし、まぁ、自動化して毎回かけるほどでもないかな?と思い、気になったときに手動でかけてることが多いですw
データベースは重くなりがちなので、最適化だけでなく、こまめに構成チェックしたりするのは重要なんじゃないでしょうか^^
旧バージョンではツールバーの「ツール」→「データベース ユーティリティ」の中に「最適化/修復」の項目があり、
そこをクリックすると実行出来たのですが、Office2007の場合は以下の手順で実行できますよ^^
最適化したいデータベースを開いた状態で、左上隅の丸い「Officeボタン」をクリックします。メニューが出てきますので、その中から「管理」を選択します。
すると「データベースの最適化/修復」という項目がありますので、それをクリックすればOKです♪
最適化をいつもかけておきたいときは、データベースを閉じるときに、自動的に最適化をかける、という方法もあります。
設定の手順としては、毎回最適化したいデータベースを開いた状態で、同じく「Officeボタン」をクリックします。
次に、出てきたメニューの右下の方にある、「Accessのオプション」ボタンを押して下さい。
オプションの設定画面が開いたら、「カレントデータベース」の項目を押します。すると「アプリケーション オプション」の項目の中に、「閉じるときに最適化する」という項目があると思いますので、そこにチェックをつけて「OK」ボタンを押せばOKです。
最適化を実行すると、ファイル容量もだいぶ軽量化されたりすることがあって良いと思いますが、でも以前バグもあったそうですし、まぁ、自動化して毎回かけるほどでもないかな?と思い、気になったときに手動でかけてることが多いですw
データベースは重くなりがちなので、最適化だけでなく、こまめに構成チェックしたりするのは重要なんじゃないでしょうか^^
2010.05.19 | Access |
トラックバック(0) | コメント(0) |
私VBAってあまり勉強してないのでよくしらないのですが、今作成しているAccessのDBがあって、特定フォームだけ開くときにパスワードを入力して開くようにしたいな、と思って調べてみると、簡易的ならInputBoxを使い、そのフォームを開く際(Form_Load)に、
Private Sub Form_Load()
If InputBox("パスワードを入力して下さい。", "認証") <> "1234" Then
MsgBox ("パスワードが違います")
DoCmd.Close
End If
End Sub
※ パスワード1234の場合。
というように記載すればOKとのことで試してみました。
確かにそれで使えることは使えるのですが、これ、InputBoxを使っているから、普通のパスワード入力欄のように、入力済みの文字が伏せ字のアスタリスク(*)表示になってくれないんですよね☆
まぁ、パスワード入力の際のフォームを別に作成して、その時のテキストボックスのプロパティを変えれば出来る、と言うことはわかるのですが、フォーム作成しなくてもこのInputBoxでなんとか出来ないかなぁ、とさらに調べてみると、海外の方がコードを公開してくださっている、という記事を見かけて、私も早速使わせていただきましたw
こちらのDaniel Klannさんのコードを丸ごとコピーし、標準モジュールにを追加して貼り付け。
その後、入力済みだったパスワード認証の為のコードの「InputBox」部分を「InputBoxDK」に書き換えたら作業完了♪
あっさりとパスワード部分がマスクになってくれましたw
こういうの、たくさん公開してくださるのは凄く助かりますね^^
さて。気になる部分がクリアできたので、また続きの部分を作っていきたいと思います(*^-^*)
Private Sub Form_Load()
If InputBox("パスワードを入力して下さい。", "認証") <> "1234" Then
MsgBox ("パスワードが違います")
DoCmd.Close
End If
End Sub
※ パスワード1234の場合。
というように記載すればOKとのことで試してみました。
確かにそれで使えることは使えるのですが、これ、InputBoxを使っているから、普通のパスワード入力欄のように、入力済みの文字が伏せ字のアスタリスク(*)表示になってくれないんですよね☆
まぁ、パスワード入力の際のフォームを別に作成して、その時のテキストボックスのプロパティを変えれば出来る、と言うことはわかるのですが、フォーム作成しなくてもこのInputBoxでなんとか出来ないかなぁ、とさらに調べてみると、海外の方がコードを公開してくださっている、という記事を見かけて、私も早速使わせていただきましたw
こちらのDaniel Klannさんのコードを丸ごとコピーし、標準モジュールにを追加して貼り付け。
その後、入力済みだったパスワード認証の為のコードの「InputBox」部分を「InputBoxDK」に書き換えたら作業完了♪
あっさりとパスワード部分がマスクになってくれましたw
こういうの、たくさん公開してくださるのは凄く助かりますね^^
さて。気になる部分がクリアできたので、また続きの部分を作っていきたいと思います(*^-^*)
2009.03.16 | Access |
トラックバック(0) | コメント(2) |
2003までは、AccessのDBを起動したときに自動的に特定フォームを表示したりする設定が、メニューバーの「ツール」→「起動時の設定」で行えたのですが、2007ではどこで設定するのかってちょっとわかりにくいですよね^^;;;
2007でそのような設定を行うには、「Office ボタン」→「Access のオプション」→「カレント データベース」の順にボタンを押して設定画面を表示します。
この画面で今までと同様にフォームの表示やタイトルの変更などが行えるようですよ(*^-^*)
参考URL:http://d.hatena.ne.jp/ogohnohito/20080322
************************************
今年のblog更新は本日で終了です。
本年もお付き合い頂きましてありがとうございました♪
どうぞ良いお年をお迎え下さいね^^
************************************
2007でそのような設定を行うには、「Office ボタン」→「Access のオプション」→「カレント データベース」の順にボタンを押して設定画面を表示します。
この画面で今までと同様にフォームの表示やタイトルの変更などが行えるようですよ(*^-^*)
参考URL:http://d.hatena.ne.jp/ogohnohito/20080322
************************************
今年のblog更新は本日で終了です。
本年もお付き合い頂きましてありがとうございました♪
どうぞ良いお年をお迎え下さいね^^
************************************
2008.12.31 | Access |
トラックバック(0) | コメント(0) |
フォームの位置ってドラッグで移動できますが、たまにドラッグしすぎて、「いつもの画面が見あたらなくなりました☆」って連絡が来ることがあるんですよね^^;;;
フォームの位置をマウスでドラッグ出来ないようにするには、まずそのフォームをデザインビューで開いて下さい。
そして、そのフォームのプロパティーを表示し、「移動可能」という項目の値を「いいえ」に変更してから、そのフォームを閉じて下さい。
すると、そのフォームの位置が固定され、ドラッグでは移動出来ないようになりますよ♪
フォームの位置をマウスでドラッグ出来ないようにするには、まずそのフォームをデザインビューで開いて下さい。
そして、そのフォームのプロパティーを表示し、「移動可能」という項目の値を「いいえ」に変更してから、そのフォームを閉じて下さい。
すると、そのフォームの位置が固定され、ドラッグでは移動出来ないようになりますよ♪
2008.01.24 | Access |
トラックバック(0) | コメント(0) |
通常、テーブルの主キーは1つの場合が多いですが、単一のフィールドではレコードを特定できない場合は、複数の主キーを設定する事も可能です。
方法としては、設定したいテーブルをデザインビューで開き、主キーを設定したいフィールドの行セレクタをCtrlキーを押しながら選択し、右クリックして出てきたメニューから「主キー」を選択すればOKです。
※ 複数の主キーを設定している場合、フィールドの並びが重要になる事があります。
方法としては、設定したいテーブルをデザインビューで開き、主キーを設定したいフィールドの行セレクタをCtrlキーを押しながら選択し、右クリックして出てきたメニューから「主キー」を選択すればOKです。
※ 複数の主キーを設定している場合、フィールドの並びが重要になる事があります。
2007.10.26 | Access |
トラックバック(0) | コメント(0) |
Accessのデータベースを使っていたら、いつの間にか見慣れないテーブルがたくさん出来ていて、しかもグレーになっていて消そうと思っても消えない、との相談を先日受けました。
テーブルの名前は「MSysObjects」や「MSysACEs」、「MSysQueries」などいつくかあり、中身を表示しても心当たりが無いとのこと。
実は、これらはAccessのシステム オブジェクトにあたり、デフォルトでは表示されない設定になっているだけでそもそも存在していたファイルなのです。
これらの表示の切り替えはプロパティ画面から可能です。メニューバーの「ツール」から「オプション」を選択し、画面が開いたら「表示」タブに移動すれば、中に「システム オブジェクト」というチェック項目がありますので、ここで表示のON/OFFを切り替えて「OK」ボタンを押せば設定変更となります。
テーブルの名前は「MSysObjects」や「MSysACEs」、「MSysQueries」などいつくかあり、中身を表示しても心当たりが無いとのこと。
実は、これらはAccessのシステム オブジェクトにあたり、デフォルトでは表示されない設定になっているだけでそもそも存在していたファイルなのです。
これらの表示の切り替えはプロパティ画面から可能です。メニューバーの「ツール」から「オプション」を選択し、画面が開いたら「表示」タブに移動すれば、中に「システム オブジェクト」というチェック項目がありますので、ここで表示のON/OFFを切り替えて「OK」ボタンを押せば設定変更となります。
2007.06.20 | Access |
トラックバック(0) | コメント(0) |