MS Access Tips/Sample and VBA and Blog customize etc...

レコード入力時に「保存」コマンドボタンでのみレコード保存できるようにする

ユーザーがレコードの入力中にマウスホイールを触ってしまって、意図に反してレコード移動して勝手にレコード保存されてしまいます。マウスホイールでレコード移動できないようにできないでしょうか。

最近、立て続けにこのような質問を見かけました。マウスホイールを無効化する方法は、WEBで検索すれば方法は見つかります。例えば、マウスのスクロール --Access Club Access 初・中級者 FORUM--

しかしAPIを使いサブクラス化をするという難易度の高い方法になりますし、理解せずに使うのは危険度も高いです。

そもそも、問題なのは、「意図に反して」「勝手に」レコード保存されてしまうことであり、これはマウスホイール以外でも、キーボード等からでもレコード移動したりレコード保存できますので、マウスホイーの無効化ではこれを完全に防ぐ手段にはなりません。また、入力中でなかったらマウスホイールでレコート移動できるのは便利な機能なので無効化するのはもったいないですよね。

ひとつの方法として、保存前に確認する の記事で紹介したレコード保存する前にメッセージボックスを表示させて確認するというのもあります。ただ、入力中に無意識にマウスホイールを触ってしまい突然メッセージが出るのもユーザーを驚かせるので好ましくないと思う場合もありますね。

そこで、フォーム上に「保存」コマンドボタンを配置して、レコードを入力中はそれをユーザーがクリックしたときのみレコード保存されるという仕様にできればいいと思いませんか。

難易度:

フォーム上に3つのコマンドボタン「cmd保存」「cmd取消」「cmd終了」を配置します。

フォームモジュールを下記のように設定します。

これで、「保存」ボタンをクリックしない限りにはレコード保存されることはありません。更新中はマウスホイールをくるくるしてもレコード移動しません。更新中でなければレコード移動します。また、更新中に×ボタンやCtrl+F4等でフォームを閉じようとすると「レコードを保存できません。」とのシステムメッセージが出てそのまま閉じるかどうか確認してきます。

ロジックの解説
フォームの更新前処理でイベントをキャンセルすることでレコード保存が一切出来なくなります。また、レコード保存へ連鎖するイベント(レコード移動等)もキャンセルされます。このままでは、永久に保存できないので、保存ボタンをクリックしたときだけ、更新前処理とイベントプロシージャの関連付けを解除して保存アクションを実行します。

上記のコードを、更新中のみ「保存」「取消」ボタンが有効なのをユーザーに明確にするために、更新中以外は使用不可になるよう改良します。まず、デザインビューで「保存」「取消」ボタンの「使用可能」を「いいえ」にしておきます。(注: AC2000以前のバージョンでは 取り消し時 イベントが未実装なので動作が不完全です。)

加筆修正(2009/9/25): 終了ボタンを追加した仕様に変更しました。DoCmd.Close で閉じると「保存できません」のシステムメッセージがでないため、終了ボタンクリック時に独自の確認メッセージを出すようしました。

加筆修正(2010/3/18): 新規レコードのとき、更新しても 保存ボタン、取り消しボタンが使用可能にならないという不具合がありました。対策として、挿入前処理のコードを追加しました。

この仕様を複数のフォームに汎用的に適用したい場合は、レコード保存ボタンのクラス化 のクラスモジュールを利用するのをお勧めします。

サンプルファイルが下記からダウンロードできます。
FrmSaveButton_07.zip (Access 2007-2010 形式 - 32kb)
FrmSaveButton.zip (Access 2002-2003 形式 - 25kb)
FrmSaveButton_2k.zip (Access 2000 形式 - 26kb)

拍手する

24 Comments

soone says..."教えてください。"

いつも参考にさせていただいております。

初めてのカキコで恐縮ですが、ひとつ教えてください。

「レコード複製」コマンドボタンをつけたところ、複製したレコードを修正しても保存コマンドボタンが<False>の状態で保存ができません。
どのようなコードを書けば、保存コマンドボタンが<True>の状態になるのか教えていただけないでしょうか?

「レコード複製」コマンドボタンのコードは以下の通りです。
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdRecordsGoToNew
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste

他、必要な情報がありますでしょうか?

すみません、、、よろしくお願いします。

2010.03.18 17:28 | URL | #- [edit]
hatena says..."コードに不足がありました。"

soone さん、はじめまして。

ちょっと調べてみましたら、原因が判明しました。
ダーティイベントで、保存ボタン、取り消しボタンを有効にしているのですが、
新規レコードで入力した場合は ダーティイベントが発生しないのが原因です。
挿入前処理でも保存ボタン、取り消しボタンを有効にするコードを記述すればOKだと思います。

いまはちょっと時間がないので、後で、記事とサンプルを修正しておきます。

とりあえず報告だけ。

2010.03.18 18:59 | URL | #5uE6dEgY [edit]
soone says..."無事解決いたしました。"

(今さらですが・・・)こちらこそ、はじめまして!

ぶしつけな質問に早急にご対応いただき、本当にありがとうございます。
とても助かりました。

今後もこのサイトを見て、勉強したいと思います。

ありがとうございました!!

2010.03.19 11:17 | URL | #- [edit]
初級管理者 says..."助言下さい"

先日、AccessClub内で質問した際にhatenaさんよりこちらを紹介して頂きました。

こちらを参考に考えていたのですが、
既に登録されたレコードを更新する際に
単票形式でレコードを表示して編集をしています。
実際にいくつかあるフィールドを変更した場合はレコード移動を
防げるのですが、開いた直後だとホイール操作でレコードが移動してしまいます。

登録内容の変更は、フォームを開いただけで閉じる事もある(変更しない)ので
このようなフォームにはどう応用したらよいかお教え頂けますでしょうか?

よろしくお願いします

2011.01.05 17:02 | URL | #- [edit]
hatena says..."Re: 助言下さい"

> 既に登録されたレコードを更新する際に
> 単票形式でレコードを表示して編集をしています。

> 防げるのですが、開いた直後だとホイール操作でレコードが移動してしまいます。

このページで紹介している方法は、複数のレコードをキーボードやマウス、マウスホイールで自由に移動できて、かつ、編集中は移動できないようにする方法です。

初級管理者さんが希望されていることは、更新したい1レコードだけを表示して、それ以外のレコードには移動できないようにしたいのではないですか。
もしそうなら、単票フォームを開くときに、更新したい1レコードだけになるように抽出条件を設定するというのが一般的な設計だと思います。

これで、「追加の許可」を「いいえ」にしておけば、このページで紹介している方法は不要です。

状況に応じて、適材適所の方法を使いましょう。

2011.01.07 16:36 | URL | #5uE6dEgY [edit]
初級管理者 says..."理解できました"

>単票フォームを開くときに、更新したい1レコードだけになるように抽出条件を設定するというのが一般的な設計だと思います。

このご指摘で気がつき無事解決する事ができました。

ありがとうございます

2011.01.11 09:55 | URL | #- [edit]
しょこら says..."教えてください。"

はじめまして。
超初心者ですが、よろしくお願いします。

現在作っているフォームの途中にサブフォームを付けているのですが、
このページのコードを使ったうえで、サブフォームにも入力できるようにするには
どうしたらいいのでしょうか?

2013.11.04 17:43 | URL | #MyJ0QW/M [edit]
hatena says..."re:教えてください。"

> 現在作っているフォームの途中にサブフォームを付けているのですが、
> このページのコードを使ったうえで、サブフォームにも入力できるようにするには
> どうしたらいいのでしょうか?

メインフォームで編集中にサブフォームでも入力したいという意味でしたら無理です。

メインフォームでレコード保存後なら入力できます。

メインフォームで編集中にサブフォームへ移動するとメインフォームではレコード保存れれるというのがAccessの仕様ですので。

2013.11.04 21:59 | URL | #5uE6dEgY [edit]
しょこら says..."お返事ありがとうございます。"

お礼が遅くなってしまってすいません。

お返事いただけて、結果としては残念ですが、
できないとわかっただけでも、先に進むことができるので、
よかったです。
こちらのサイトの、いろいろな技術を参考にさせていただいて
本当に助かります。
また行き詰った時には、初歩的な質問をするかもしれませんが、
よろしくお願いします。

2013.11.07 01:35 | URL | #MyJ0QW/M [edit]
ふったん says..."主フォームとサブフォームでの使用について"

はじめまして。突然の質問ですみません。
会社のシステムを作成するのにアクセスを使用するのですが、主フォームの中にサブフォームがあるときに、サブフォームの帳票型の処理にも、上のサンプルの処理を取り入れる場合、どのようにしたら良いのでしょうか?
よろしくお願いいたします。

2014.01.29 22:26 | URL | #zuCundjc [edit]
hatena says..."re:主フォームとサブフォームでの使用について"

> 会社のシステムを作成するのにアクセスを使用するのですが、主フォームの中にサブフォームがあるときに、サブフォームの帳票型の処理にも、上のサンプルの処理を取り入れる場合、どのようにしたら良いのでしょうか?


一レコードを編集中は保存レコードを押すまでレコード移動できないようにしたいということなら、
帳票フォームでもこのページで説明されているよう設定すればOKです。

2014.01.30 01:22 | URL | #5uE6dEgY [edit]
ふったん says..."re:re:主フォームとサブフォームでの使用について"

> > 会社のシステムを作成するのにアクセスを使用するのですが、主フォームの中にサブフォームがあるときに、サブフォームの帳票型の処理にも、上のサンプルの処理を取り入れる場合、どのようにしたら良いのでしょうか?
>
>
> 一レコードを編集中は保存レコードを押すまでレコード移動できないようにしたいということなら、
> 帳票フォームでもこのページで説明されているよう設定すればOKです。

突然の質問にご回答して頂きましてありがとうございます。

帳票ページ(Sub_form)のイベントにも、Main_Formと同じイベントの処理を入れるという事で理解しました。
そのように作ってみたいと思います。もし、また何か分からない事がありましたら、質問をさせて頂きたいです。

ありがとうございました。

2014.02.01 17:42 | URL | #.8Aekpm. [edit]
やっさん says..."終了ボタンクリック時の保存について"

こんにちは。
初めてコメントを投稿させていただきます。

現在顧客管理データベースを作成しており、
御サイトを参考にさせていただいております。

Access2013を利用しているのですが、
上記のフォームモジュールをほぼそのまま入力したところ、
保存ボタンと取消ボタンは正常に動作しているようなのですが、
終了ボタンを押すと、何も動作されません。

下記のように少し変えると、終了ボタンを押したらメッセージボックスが出るようにはなったのですが、
「保存して終了しますか」→「はい」を押しても
テーブルに変更が保存されません。

アクセス超初心者のため、どこをどう直したら保存することができるのかわかりません。

お手数をお掛け致しますが、お教えいただけたら幸いです。
よろしくお願いいたします。


▼少し加筆したモジュール▼

Option Compare Database
Option Explicit

'取消ボタン クリック時
Private Sub cmd取消_Click()
Me.Undo
End Sub

'保存ボタン クリック時
Private Sub cmd保存_Click()
Me.BeforeUpdate = ""
DoCmd.RunCommand acCmdSaveRecord
Me.BeforeUpdate = "[イベント プロシージャ]"
End Sub

'終了ボタン クリック時
Private Sub cmd終了_Click()
If Me.Dirty Then
If MsgBox("データが更新されてます。保存して終了しますか。", vbOKCancel) = vbCancel Then
Exit Sub
End If
End If
DoCmd.Close
End Sub

'フォーム 更新後処理
Private Sub Form_AfterUpdate()
Select Case Me.ActiveControl.Name
Case "cmd保存", "cmd取消"
End Select
Me.cmd取消.Enabled = False
Me.cmd保存.Enabled = False
End Sub

'フォーム 更新前処理
Private Sub Form_BeforeUpdate(Cancel As Integer)
Cancel = True
End Sub

'フォーム ダーティ時
Private Sub Form_Dirty(Cancel As Integer)
Me.cmd取消.Enabled = True
Me.cmd保存.Enabled = True
End Sub

'フォーム 挿入前処理
Private Sub Form_BeforeInsert(Cancel As Integer)
Form_Dirty Cancel
End Sub

'フォーム 取り消し時
Private Sub Form_Undo(Cancel As Integer)
Form_AfterUpdate
End Sub

2014.03.14 13:42 | URL | #0/hcRl9c [edit]
hatena says..."re:終了ボタンクリック時の保存について"

> Access2013を利用しているのですが、
> 上記のフォームモジュールをほぼそのまま入力したところ、
> 保存ボタンと取消ボタンは正常に動作しているようなのですが、
> 終了ボタンを押すと、何も動作されません。
>
> 下記のように少し変えると、終了ボタンを押したらメッセージボックスが出るようにはなったのですが、
> 「保存して終了しますか」→「はい」を押しても
> テーブルに変更が保存されません。

あっ、ほんとだ、コード間違ってました。終了ボタン クリック時のコードを下記のように変更してください。

'終了ボタン クリック時
Private Sub cmd終了_Click()
  If Me.Dirty Then
    If MsgBox("データが更新されてます。保存して終了しますか。", vbOKCancel) = vbCancel Then
      Exit Sub
    Else
      cmd保存_Click
    End If
  End If
  DoCmd.Close
End Sub

2014.03.14 17:19 | URL | #5uE6dEgY [edit]
やっさん says..."ありがとうございます!!"

こんにちは。

お忙しいなかこんなに素早くご対応くださって
本当に本当にありがとうございます!!!

コードを教えていただいた通りに入力したら
正常に動作いたしました!

本当に助かりました!
今後も参考にさせていただきます!
どうぞよろしくお願いいたします!!!

2014.03.14 17:51 | URL | #0/hcRl9c [edit]
ふっくん says..."ダミーテーブのデータを"

ダミーテーブルを作り、そのテーブルに複数のテーブルから取得したレコードをいれ、そのダミーテーブルを編集するフォーム上でユーザに編集(複数行の編集)してもらい、最後に「保存」ボタンを押すと、大本の複数のテーブルにデータを更新するような処理にしたいのですが、それが可能ならば、そのやり方を説明して頂けるととても助かります。

★追記(2014/03/22)
・現在、既にデータベースが存在しますが、そのテーブル設計が良くないのでそこから初めなくてはいけません。しかし、私はアクセスは10年以上前に少しPG経験がある程度です。そこで、もし可能ならば、テーブル設計からアドバイスを頂けると非常に大変助かります。
その場合、ご指定の掲示板などでのやりとりでさせて頂きます。
そして、次の段階の質問とさせて頂けないでしょうか。
会社のアクセスのバージョンは2013です。業種は、住居のリフォームになります。
(1)一例を申しますと、取引会社の情報のテーブルがあるとしますと、作成するテーブルは今のところ以下のように考えていますが、このような作り方でよろしいでしょうか?(*, **は、リレーションをするFieldです)

◆取引先マスターテーブル
 ・取引先マスターID *
 ・取引先名

◆取引先テーブル
 ・取引先ID **
 ・取引先マスターID *
 ・取引先本店支点名
 ・住所
 ・電話番号1
 ・電話番号2
 ・FAX1
 ・FAX2
 ・EMAIL

◆従業員テーブル
 ・従業員ID
 ・取引先ID **
 ・従業員名
 ・所属課名
 ・所属部署名
 ・電話番号
 ・FAX
 ・携帯番号

(2)テーブル設計は、業務の流れ全体を把握して、その業務で使用する書類などの項目を洗い出し、それをまとまったテーブルに種類ごと分けていくというような感じでよろしいですか?


(3)リレーションについてですが、以前、仕事でデータベース関係のPGをしていたとき、リレーションを作らないほうが製造しやすいという案件がありました。
Accessでリレーションを作らずに、テーブルを構成し、実際にPGで作成する時にリレーションを創るやり方は可能でしょうか?

(4)また、キーになるFieldについてですが、アクセスの自動採番をするのではなく、PGで自動採番をする処理は可能でしょうか?
その場合、多分、自動採番用のテーブルを1つ用意して、自動採番処理をするのだと思うのですが、自動採番処理をせずに、複数のマスターとテーブルを連携して、ダミーテーブルにデータを入れて、実際に、フォームにどのうよに読み込んで、処理をしたらよいでしょうか?

漠然とした質問の仕方をしてしまって申し訳ありませんが、よろしくお願い致します。

これらの疑問を解消したのち、具体的にテーブル設計を完成させ
次に、クエリー、または、フォームの作成としていこうと考えています。

2014.03.21 12:08 | URL | #zuCundjc [edit]
hatena says..."re:ダミーテーブのデータを"

下記のような処理をマクロかVBAで記述することになりますね。

ダミーテーブルのデータを削除

ダミーテーブルに複数のテーブルから取得したレコードを入力
(追加クエリの実行 または、VBAのDAOまたはADOを使用して追加)

ダミーテーブルをレコードソースとしてフォームを開く

ユーザーがデータ更新
「保存」ボタンで、ダミーテーブルのデータを各テーブルに書き込む


実際のテーブル構成等が不明なので一般論での回答になります。

なお、少し具体的な応答をするなら、下記の掲示板に移動して続けましょう。

hatena の Microsoft Access 掲示板
http://hatena-access.progoo.com/bbs/

2014.03.21 12:56 | URL | #5uE6dEgY [edit]
hatena says..."re:ダミーテーブのデータを"

(1)
テーブル設計としては問題無いと思います。

(2)
はい、そうなります。

(3)
リレーションシップのことでしょうか。

いろいろ意見の別れるところですが、私はリレーションシップは設定すべき派です。

データベース、VBAのスキルがあって参照整合性の維持をすべて自前で構築できるというのならリレーションシップに頼らず自由度の高い設計ができますが、かなりのコード量になります。

基本はリレーションシップの参照整合性チェックに任せて、それでは対応できないイレギュラーな処理は自前で構築するというように分けるのが理想かなと思います。

下記も参照してください。

http://hatena-access.progoo.com/bbs/?pid=hatena-access&mode=pr&parent_id=2133
hatena の Microsoft Access 掲示板|リレーションシップとクエリ

(4)
PGで自動採番するのは可能です。
単独で使用するのか、共有して使用するのかで、PGの難易度は変わってきます。
共有だと同時書込のばあいの排他処理を考える必要がありますので。

また、共有の場合、同時更新するユーザー数はどのくらいかでも設計が変わってきますね。

> 自動採番処理をせずに、複数のマスターとテーブルを連携して、ダミーテーブルにデータを入れて、・・・・

いろいろなやり方があり、状況によりどれが最適かは変わりますので、テーブル設計が完成して、どのようなフォームで入力するのかが、決まってから、質問してもらったほうがいいですね。

2014.03.22 15:57 | URL | #5uE6dEgY [edit]
ふっくん says..."re:re:ダミーテーブのデータを"

丁寧にご説明して頂き、ありがとうございます。
まずは、テーブル設計をしてから、また、後ほど質問させて頂きたいと思います。

よろしくお願いします。

> (1)
> テーブル設計としては問題無いと思います。
>
> (2)
> はい、そうなります。
>
> (3)
> リレーションシップのことでしょうか。
>
> いろいろ意見の別れるところですが、私はリレーションシップは設定すべき派です。
>
> データベース、VBAのスキルがあって参照整合性の維持をすべて自前で構築できるというのならリレーションシップに頼らず自由度の高い設計ができますが、かなりのコード量になります。
>
> 基本はリレーションシップの参照整合性チェックに任せて、それでは対応できないイレギュラーな処理は自前で構築するというように分けるのが理想かなと思います。
>
> 下記も参照してください。
>
> <a href="http://hatena-access.progoo.com/bbs/?pid=hatena-access&mode=pr&parent_id=2133">hatena の Microsoft Access 掲示板|リレーションシップとクエリ|スレッドNo.2133</a>
>
> (4)
> PGで自動採番するのは可能です。
> 単独で使用するのか、共有して使用するのかで、PGの難易度は変わってきます。
> 共有だと同時書込のばあいの排他処理を考える必要がありますので。
>
> また、共有の場合、同時更新するユーザー数はどのくらいかでも設計が変わってきますね。
>
> > 自動採番処理をせずに、複数のマスターとテーブルを連携して、ダミーテーブルにデータを入れて、・・・・
>
> いろいろなやり方があり、状況によりどれが最適かは変わりますので、テーブル設計が完成して、どのようなフォームで入力するのかが、決まってから、質問してもらったほうがいいですね。
>

2014.03.29 16:27 | URL | #- [edit]
名無し says..."教えいただきたいのですが"

今日は。いつも拝見させて頂いています。

この保存、取消ボタンの処理を、サブフォームを持つメインフォームに作るとすると、その場所はどこにしたらよいでしょうか。

サブフォームの中に保存するのではなく、メインフォームのフッターあたりにつけていれば良いのでしょうか。

そして、フォームのイベント処理は、サブフォームとメインフォームの両方のフォームイベントに記載するのでしょうか。

よろしくお願いします。

2014.11.22 16:41 | URL | #mQop/nM. [edit]
hatena says..."re:教えいただきたいのですが"

> サブフォームの中に保存するのではなく、メインフォームのフッターあたりにつけていれば良いのでしょうか。

メインフォーム1レコードに対して、対応するサブフォームのレコードは複数件ありますよね。

もし、ご希望のことが、メインフォーム、サブフォームの複数レコードに対して、一括して、保存、取り消しをしたいのなら、ここで紹介している方法では無理です。

ここの方法はあくまで1レコードに対してのみですので。

メインフォーム、サブフォーム単独で1レコード単位でいいのなら、それぞれのフォームにボタンとコードを設定すればいいでしょう。

2014.11.22 17:05 | URL | #5uE6dEgY [edit]
ななし says..."re:re:教えいただきたいのですが"

お忙しい中ご回答していただきありがとうございます。

使用するユーザ達が、多忙な状況ですので、サブフォームの帳票型のレコードに、入力しEnterキーを押して次のレコードに行く度に、保存ボタンを押さなくてはいけないのは、おそらく不評となるように思います。

可能性としては、このサブフォームの帳票画面では、保存ボタンは作らない方向に進むかもしれません。

ダミーテーブルにごそっとデータを入れて編集・新規登録後に、元テーブルに更新・新規挿入処理をかける仕組みができれば良いのですが、そのやり方も、まだ明確に頭の中で描けていません。

まだ、考え中ですが。自動採番処理だけは取り入れたいと思います。自動採番処理は、サブフォームと、メインフォームの両方の
Form_BeforeUpdateで処理可能でしょうか?

よろしくお願いします。

2014.11.22 17:34 | URL | #zQHIT1rU [edit]
hatena says..."re:re:re:教えいただきたいのですが"


> ダミーテーブルにごそっとデータを入れて編集・新規登録後に、元テーブルに更新・新規挿入処理をかける仕組みができれば良いのですが、そのやり方も、まだ明確に頭の中で描けていません。

メイン、サブの複数レコードで一括して保存、取り消しをするにはその方法になると思います。


> まだ、考え中ですが。自動採番処理だけは取り入れたいと思います。自動採番処理は、サブフォームと、メインフォームの両方の
> Form_BeforeUpdateで処理可能でしょうか?

上記の一括方式にした場合、複数ユーザーが同時に編集している場合、番号が重複する可能性がでてきますので、その辺の調整がかなり難しくなります。
Form_BeforeUpdateでは、その調整が無理だと思います。
更新・新規挿入はコードで一括してテーブルに書き込むことになりますので、そこで採番処理も同時にすることになるでしょう。

2014.11.22 17:52 | URL | #5uE6dEgY [edit]
ななし says..."re:教えいただきたいのですが"

お忙しい中、ご回答大変ありがとうございます。

最初に書いた内容、少し支離滅裂でしたので、書き直しました。すみません。

↓↓↓
(書き直し版)
もし、ダミーテーブルに一括ごそっと入れる方式をとってダミー編集画面にて作業をしてから、一括登録するとなると、悩んでいるのがダミーテーブル親と子の主キーはどうしたら良いかということです。

親テーブル
・主キー1
子(帳票)テーブル
・主キー2
・親の主キー1

このダミーのテーブルも、フォーム側で自前の採番処理をしなくてはいけないということでしょうか。
すると、

【ダミーのフォームを開くとき】
・ダミーの同テーブルにデータを入れる
・採番テーブルのダミーの親と子の主キーの番号を、入れたデータの主キーと同じ値にする。

ダミーのデータを編集、新規入力したら、
【登録ボタン】
・元テーブルの自動採番処理をして、ダミーの画面に採番を入れる
・データを元テーブルの親と子に更新かける。(更新と新規登録)
→ 同じIDが元にあれば、更新、なければ、新規

【ダミー画面を閉じる時】
・dummyのテーブル親/子のデータを削除
・採番テーブルのdummy親/子の主キーの値をゼロにする。

こんな事をしなくてはいけないでしょうか。
めちゃくちゃ、ややこしいですが。


このやり方で良いと思われますでしょうか?

2014.11.22 19:26 | URL | #mQop/nM. [edit]

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/162-9c61b1b5
該当の記事は見つかりませんでした。