Microsoft Access 掲示板

views
4 フォロー
6,349 件中 2,841 から 2,880 までを表示しています。
22

If Me(rs!略).Value = "関" Then

If rs!略.Value = "関" Then
に変更してみてください。

あと、
Me(rs!略 & rs!氏名).ForeColor
もエラーになりそうです。

略の条件によって色を変えるように指定したいのですが、

とのことですが、なんの色を変えたいのかよく考えてみてください。

21
CROSS 2022/02/13 (日) 17:16:21 dd71f@d523b

 hatena様
お手数をおかけいたします。

    If Me(rs!略).Value = "関" Then

が選択されます。

20

エラーメッセージが出たときに、[デバッグ]ボタンを押すとどの行が選択表示されますか。

5
名前なし 2022/02/13 (日) 15:13:15 27818@a9346

お二方ともご回答ありがとうございます。さすがです。
Aさん、Bさん、CさんともそれぞれログインIDとパスワードを設定していますので、ログインボタンでそれをトリガーにしてリンク先を切り替えるように組んでみます。

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

19
CROSS 2022/02/13 (日) 11:27:40 dd71f@d523b

たびたびになりますが、ご教授ください。
略の条件によって色を変えるように指定したいのですが、

実行時エラー2465
指定した式で参照されている”関”フィールドが見つかりません。
と表示されてしまいます。

VBAは以下になります。できれば、時間、略、氏名を一緒に変えたいのですが
よろしくお願いいたします。

ublic Sub SetSchedule()
Dim i As Integer, rs As DAO.Recordset
     For i = 1 To 42
         Me("T" & i).Caption = ""
     Next
      Set rs = CurrentDb.OpenRecordset( _
         "SELECT 日付, 時刻, 略, 氏名 FROM T予定 WHERE " &
         "日付>#" & FirstDay & "# AND 日付<=#" & FirstDay + 42 & "# ORDER BY
時刻", _
         dbOpenForwardOnly, dbReadOnly)
     Do Until rs.EOF
         With Me("T" & rs!日付 - FirstDay)
             .Caption = .Caption & Format(rs!時刻, "hh:nn") & " " & rs!略 &
rs!氏名 & vbCrLf
             If Me(rs!略).Value = "関" Then
       Me(rs!略 & rs!氏名).ForeColor = 8388608
     Else
       Me(rs!略 & rs!氏名).ForeColor = 0

End If

         End With
         rs.MoveNext
     Loop
     rs.Close: Set rs = Nothing
End Sub

4
りんご 2022/02/13 (日) 04:12:20 c564b@0e907 >> 1

vba内で拡張子だけ変えて自分自身をバックアップしても

 ググったら類似質問回答がありました。確かにあのバックアップの真似では無理そうですね。

フォーム上のボタンでVBAから[ファイル]→[名前を付けて保存]→[ACCDEの作成]は可能でしょうか?

 T'sWare Access Tips #179 ~もう1つのAccessデータベースを開く方法(COM版
 CommandBars.ExecuteMsoメソッド
 idMsoの調べ方
 あれやこれやとやったんですけど、accde作成ダイアログにうまくSendkey出来ずに詰みますね。
【EXCEL VBA | ノート】Windowハンドルを取得して、ファイル選択ダイアログボックスを操作する
 WindowsAPI関数まで手を広げれば出来るのかもしれないけれど、挫折しました。

>> 3

 あぁぁ〜さすがですわ。よく練られていますね。

1

LostFocusではイベントをキャンセルできませんので、Exitイベントを使ってください。

Private Sub フィールドAテキスト_Exit(Cancel As Integer)
    '入力チェック
    If Nz(Me.フィールドAテキスト.Value) = "" Then
        MsgBox "入力して下さいよ"
        Cancel = True 'イベントキャンセル
    End If
End Sub

自動生成されるイベントプロシージャの引数に Cancel As Integer がある場合は Cancel = True でイベントのキャンセルが可能です。LostFocusのイベントプロシージャは引数がないのでキャンセルはできません。

3

50個のACCDEファイルを作成するという考え方ではなく、
ACCDEファイルの起動時にリンクテーブルのリンク先を適切に変更する処理を持たせれば、配布するACCDEファイルは一つですみます。

元のAccdbファイルに、リンクテーブルのリンクが切れていたらリンク先を変更するFunctionを作成しておきます。
変更するリンク先は、データベースファイルと同じフォルダーにあるテキストファイルにリンク先パスを格納しておいて、それを参照するようにします。
このFunctionをAutoExecマクロで起動時に実行するようにします。

最初に配布するときだけ、リンク先パスを格納したテキストファイルと一緒に配布して、同じフォルダーに入れておいてもらいます。

次回から、Accdeファイルのみ配布すれば、最初の起動時にリンク先を変更してくれます。

2
nanana 2022/02/11 (金) 17:33:02 e48ae@6eb0c

ファイルはリンクテーブルで構成しています。Aさん、Bさん、Cさんはそれぞれ遠く離れた別の場所にいて、別々ののサーバーで閲覧をします。しかしそれぞれが別の拠点から大元のリンクテーブルにアクセスすると動作速度が遅くなるため、それぞれのサーバーにリンクテーブルを定期的にコピーし、それを閲覧専用として利用します。そのためそれぞれの環境に応じてリンク先をVBAで変更しています。
変更したものをそれぞれコンパイルして配布しているんですが、それって結局おっしゃるとおり50個のACCDEファイルができるということになりますね。なのでボタン一つでできないかなあという相談です。 

1
りんご 2022/02/11 (金) 15:54:48 c564b@0e907

 配布のやり方、やった事がないのに回答して申し訳ないですが、1回コンパイルして出来上がったファイルをコピペ配布するようなイメージを持っています。状況は、Aさんに配布する為に、1回コンパイル、続けて、Bさんに配布する為に再度もう1回コンパイル…という事なのでしょうか?それとも、例えば、50個のAccessファイルを手作業で50回コンパイルするのは大変という事でしょうか?

15
りんご 2022/02/10 (木) 20:57:48 c564b@0e907

>> 13
>> 14

 もう一度状況を整理するのはどうでしょう?具体的に不具合やエラーコードやコードを含めて質問を立て直すといいですよね。確認済みだと思いますが、ファイル名を参照してあれやこれや動作するような仕組みになっていませんよね?

14
さらもか 2022/02/10 (木) 09:57:09 a2613@2d79d

本日、別の顧客でも同様の不具合が発生しました。環境は、Office365のアクセスです。同様にMDBを作成し直して、実行したところ、不具合が発生しました。原因は、ファイル名にアルファベットとアンダーバーを使用していたことでした。アンダーバーをなくし、アルファベットのみに変更したら、何度起動・終了を繰り返してもOKでした。

14
りんご 2022/02/09 (水) 17:00:37 c564b@0e907 >> 13

Qhp_サイト登録情報_カウントはクエリです。

 了解です。クエリの元になっているテーブルは、Thp_サイト登録情報でしょうか。Thp_サイト情報でしょうか。両方でしょうか。もし、片方だけならば、デザインタブ『テーブルの表示』を押して、両方表示、紐付けておくと便利ですよね。

登録キーワードは普通に複数設定できるようにしたいなと思っています。

 登録キーワードは、Thp_サイト登録情報に保持する、Thp_サイト情報に保持しない。とすればいいのかもしれませんね。
以下、なんちゃってイメージです。

登録サイト名登録キーワード
ほにゃらら掲示板Access
ほにゃらら掲示板VBA
ほにゃらら掲示板

サイトの登録文の文字数をカウントしたい

 フィールド内の文字数を数える(LEN関数) - Accessの使い方みたいな感じと想像します。
 
 

 

13
ワッフル 2022/02/09 (水) 15:29:27 65534@318ee

お返事ありがとうございます。りんごさん。

>横から失礼しますね。登録キーワードは、1つのサイトに1つだけ?それとも、複数設定出来るようにするの?登録キーワードを管理するテーブルはあるの?

これは普通に複数設定できるようにしたいなと思っています。改めて考えると全く妥当ではないかもしれません…
空白を設け、羅列しても。ここは妥当ではないかも。

>何かをカウントしたいの?

これは、サイトの登録文の文字数のカウントです。クエリで設定しました。

>それと、念のために確認ですが,クエリじゃなくて、Qhp_サイト登録情報_カウントという名前のテーブルですか?

これはクエリです。クエリの時に、Qという文字列を入れて分かりやすくしております。

アクセスって奥深いですね。
hatenaさんにせっかくお返事いただいているのに、
私の頭では理解しきれず、混乱している状態です。

でも、何とか頑張りたいと思います。

12
りんご 2022/02/09 (水) 14:43:40 c564b@0e907

>> 10

 横から失礼しますね。登録キーワードは、1つのサイトに1つだけ?それとも、複数設定出来るようにするの?登録キーワードを管理するテーブルはあるの?

「Qhp_サイト登録情報_カウント」

 何かをカウントしたいの?
 それと、念のために確認ですが,クエリじゃなくて、Qhp_サイト登録情報_カウントという名前のテーブルですか?

11

「Thp_サイト情報」がメインテーブルで、「Qhp_サイト登録情報_カウント」にメインテーブルの「登録サイト名」「登録キーワード」を表示させたいということですよね。

「Qhp_サイト登録情報_カウント」に「サイト情報ID」があるので、それをもとに、メインテーブル「Thp_サイト情報」から、「登録サイト名」「登録キーワード」を参照して表示させることが可能なので、「Qhp_サイト登録情報_カウント」には「登録サイト名」「登録キーワード」は不要です。データベースでは同じデータを複数個所に格納しないというのが原則です。

別テーブルのデータを参照する方法はいろいろありますので、その時に応じて使い分けることになります。

基本は「オートルックアップクエリ」という機能です。詳細は下記を参照ください。

Accessの「オートルックアップクエリ」とは | できるネット

これを作っておいて、フォームやレポートのレコードソースに設定すればVBAなしでメインテーブルのデータを表示させることができます。

あと、フォームなとではコンボボックスのColumnプロパティを使う方法もよく使います。
今回のフォームはコンボボックスがあるので、テキストボックスのコントロールソースに、

=サイトID.Column(1)

=サイトID.Column(2)

と設定すれば「登録サイト名」や「登録キーワード」を表示させることが可能です。

10
ワッフル 2022/02/09 (水) 12:23:51 65534@318ee

お世話になっております。

以下が情報です。
フォームのレコードソースのテーブル名、
「Qhp_サイト登録情報_カウント」

フィールド構成
「サイト登録情報ID(主キー)
サイト情報ID
登録サイト名
登録キーワード
備考1」

です。

コンボボックスの値集合ソースのテーブル名
「Thp_サイト情報」

フィールド構成
「サイト情報ID(主キー)
登録サイト名
登録キーワード
登録文
備考1」

となっております。

それではどうぞ、
よろしくお願い致します。

9

連結フォームなら、下記の情報を提示てしもらえますか。
フォームのレコードソースのテーブルのテーブル名、フィールド構成、主キー設定
コンボボックスの値集合ソースのテーブル名、フィールド構成、主キー設定

3
hiroton 2022/02/09 (水) 10:17:19 0741c@f966d

もっと基本的なことの確認が漏れていたんですが

差し込み印刷用のデータ ソースとしてテーブルやクエリを使用する

SELECT TOP1のような)静的なクエリが組めるのであればそのままデータソースにできるのでは?


ついでにサンプルを組んでいたらいろいろハマったのでその辺の情報を追記しておきます

Word文書に差し込みの設定をしておくと、ファイルを開く時に確認ダイアログ(「この文書を開くと、次の SQL コマンドが実行されます。」)が表示されます

回避方法としてレジストリを修正する方法がありますが、影響範囲が大きく望ましくありません。書式の設定だけしたWordファイルを用意して、データソースは動的に読み込むとよさそうです

MailMerge.OpenDataSource メソッド (Word)

一度差し込み設定をしたWord文書を作成したら、差し込み印刷の開始→標準の Word 文書でデータのリンクを解除して保存しなおします(開いてもダイアログの出ない文書にする)
都度ACCESS VBAからWord文書を開く→データソースのリンクをします

Dim wordFilePath As String
Dim objWord As Object
Dim objDoc As Object

wordFilePath = "C:\データ\さしこみ.docx"

Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Open(wordFilePath)

Dim accessFilePath As String
Dim strConnection As String
Dim strSQL As String

accessFilePath = Application.CurrentProject.FullName
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & accessFilePath & ";"
strSQL = "SELECT * FROM `qさしこみ用`"

With objDoc.MailMerge
    .OpenDataSource _
        Name:=accessFilePath, _
        LinkToSource:=True, _
        Connection:=strConnection, _
        SQLStatement:=strSQL
    .ViewMailMergeFieldCodes = False
End With

Set objDoc = Nothing
Set objWord = Nothing

上記リンク先では

Access のデータを検索する場合は、文字列 "Table" または "Query" の後にテーブルまたはクエリの名前を指定します。

とありますが、hirotonの環境(office 2013)ではうまくいきませんでした。サンプルのコードではファイル指定が.mdbなので、古い形式でないとダメなのかもしれません
また、Provider=Microsoft.ACE.OLEDB.12.0;この指定部分はACCESSのバージョンによって変わる可能性があります

8
りんご 2022/02/09 (水) 00:58:40 c564b@0e907 >> 1

プルダウンの二つの値をそれぞれのテーブルに代入

 プルダウン、行を選択、それぞれの列の値をそれぞれのフィールドに登録したい、という事だったのかしら。上手く汲み取れませんでしたね。
 

普通にすると、AかBかどちらかの値をテーブルに入力するようになりますよね?

 普通にすると、主キーの値をテーブルに入力することになりますよね。事前にプルダウンの元になるテーブルを用意し、AかBか適切なフィールドに主キーを設定して、登録先のフィールドに紐付けておきましょう。

Aの値は「あ」にBの値は「い」

 プルダウンのテーブルと登録先のテーブルを主キーで紐付けしておけば、Aの値は「あ」にBの値は「い」なんて必要ないですよね。クエリで参照・表示するだけです。

以上、単独主キーの話でした。複合主キーの場合、どうするかなぁ。
 

 

2
tanappe 2022/02/08 (火) 19:10:41 a7122@43b82

ご回答ありがとうございます。
1→2→3の順で実行するという認識でおります。
作業テーブル(中間テーブル)を用意するという方法は思いつきませんでした。プログラム実行の都度上書きするということで対応しました。1レコードだけを対象にするのはSELECT TOP1でいけました。

https://oshiete.goo.ne.jp/qa/7681553.html
あたりを参考に差し込み部分のVBAを書こうと考えております。

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

7
ワッフル 2022/02/08 (火) 14:06:03 65534@318ee

お返事をありがとうございます。

連結フォームみたいで、
コントロールソースにも、
値集合ソース、値集合タイプにも
データーがありました。

6

フォームの「レコードソース」プロパティの設定はどうなってますか。
空欄ですか、それとも、テーブル名かクエリ名あるはSQLが設定されてますか。
空欄なら、非連結フォームになります。
なにか設定されていれば、連結フォームになります。

まずは、これについて回答してください。

非連結フォームなら、hirotonさんの回答でいいでしょう。ただし、テキストボックスに代入した値は、どこにも保存されないので、それをどのようにするかは、自分で処理を構築する必要があります。

連結フォームならテーブル設計に問題がある可能性が大きいです。
あえて「正規化崩し」で冗長なデータを持たせるという設計もありますが、質問内容からそのレベルでないように感じます。

5
hiroton 2022/02/08 (火) 09:09:16 5132c@f966d

そんな気がしてたので大丈夫ですよ

が、普通にすると、AかBかどちらかの値を
テーブルに入力するようになりますよね?

「普通」が難しい表現ですが、
・コンボボックスの値はそのコントロールソースのフィールドに入力されます
・入力される値は、連結列で指定した列です

質問の内容は一般には上の意味でとられると思います。(やろうとしてることがわからない。テーブル構造おかしくない?という話になる)


コンボボックスの更新後処理イベントで追加の入力処理をしてあげればいいです

コンボボックス
名前:サイトID
コントロールソース:サイトID

の場合、
新たにテキストボックスを設置し

テキストボックス
名前:サイト名
コントロールソース:サイト名

とする

Private Sub サイトID_AfterUpdate()
    Me!サイト名 = Me!サイトID.Column(1)
End Sub

Column(1)の数字は列番号(左端が0)です

4
ワッフル 2022/02/08 (火) 08:44:58 65534@318ee

沢山のお返事ありがとうございます。

あんまりAccessに詳しいほどでもないので、
ご返信を見ながらも頭がこんがらがってます。
すみません。以下的を射てご返信出来て
いなかったらすみません。

フォームでの表示は、
サイトID、サイト名でプルダウンを作り
「1|嬉しいあいうえお」ですね。

そうして、
「1」をサイトIDに
「嬉しいあいうえお」をサイト名に
プルダウンの1アクションで入力したいと思っております。

可能でしょうか?

3

そのフォームは連結フォームでですか。非連結フォームですか。
非連結フォームなら、VBAでテーブル登録することになります。

連結フォームなら、現状のテーブル構成はなるべく実態に近い形で提示してください。
そもそもテーブル設計から間違っている可能性大です。

2
hiroton 2022/02/07 (月) 16:56:45 3d519@f966d

値を入力する場合、入力先のテーブルに加えて、そのテーブルのどのフィールドなのかの情報が必要です。「あ」はテーブル名ですか?フィールド名ですか?残りの不明な情報はどこにありますか?

また、Aに対する「あ」やBに対する「い」はどのように決まっていますか?(何を見たらわかりますか?)

13
さらもか 2022/02/07 (月) 16:33:06 5f240@363ff

全く同じ環境ではないので、断言できませんが、2箇所の顧客のところでこの問題が解決したように思えるので、報告します。ただし、この幻象は突然起こるので本当に解決したかを判断するのはもっと先になると思います。ただ、なにか参考になればと思い報告します。
サーバーのデータベースはSQLサーバー2017でODBCでクライアントと接続しています。
クライアントの環境は、Windows10で、アクセスは、2019開発版のクライアントと2013実行版の方が使用しています。元のアクセスアプリは、2003で作成したMDBです。
まず、2019で新規のデータベースMDBを作成しますが、このとき、フォルダ指定とファイル名指定のボタンを押して、ファイル種類を2000-2003のMDBを選択します。このとき重要なのが、ファイル名はすべてアルファベットにすることです。漢字が入ってると、作成しても同じ不具合が残ってしまいます。
この空のMDBに、元のMDBのテーブルからフォーム等すべてのオブジェクトをインポートします。タブ表示かウィンドウ表示かはオプションであとで選んで下さい。
それと、実行版ですが、2016の実行版ではやはり同じ不具合が残ります。2013の実行版ですとうまく行きました。
この方法で、まだ1週間しか経っていないので、本当にこれで治ったか確信できませんが、今の所2箇所の顧客で正常に動作しています。
この情報がお役に立てば喜ばしいです。

4
ふで 2022/02/07 (月) 15:53:02 a6302@375f9

ご連絡ありがとうございます。
内容を書き込んだところ、こちらがイメージした通りのものが表示されました。
有難うございました。助かりました。

1
りんご 2022/02/07 (月) 15:44:33 c564b@0e907

 Aの値は「あ」に、Bの値は「い」にとそれぞれに適応したテーブルに入力したいです。

 追加クエリを準備しておき、プルダウン操作で値Aが確定したら、追加クエリ1を実行、値Bが確定したら、追加クエリ2を実行。(追加クエリ1: テーブル「あ」に値Aを追加。追加クエリ2: テーブル「い」に値Bを追加。)
 試していませんが、こんな感じの方向性でコードを考えるのはどうでしょう?

3

SQLビューに下記のように記述してください。

SELECT
 T.商品名, SUM(T.A数量) AS A数量, SUM(T.B数量) AS B数量, (A数量 - B数量) AS 差異
FROM
(SELECT 商品名, 数量 AS A数量, 0 AS B数量
 FROM Aテーブル
 UNION ALL
 SELECT 商品名, 0 AS A数量,数量 AS B数量
 FROM Bテーブル) AS T
GROUP BY 商品名;
2
ふで 2022/02/07 (月) 14:24:46 a6302@375f9

hatena様ご連絡ありがとうございます。
ご質問についてですが、
・各テーブル内での商品名の重複について → ありません
・Aテーブルのみ、あるいはBテーブルのみに存在する商品名 → 存在します
以上宜しくお願いします。

1

各テーブル内で商品名は重複している場合があるということでしょうか。
重複している場合は合計値を表示するということでしょうか。
Aテーブルのみ、あるいはBテーブルのみに存在する商品名はありますか。

2
nanana 2022/02/07 (月) 08:50:35 e48ae@6eb0c

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

6
りんご 2022/02/06 (日) 00:14:54 c564b@0e907

エラーメッセージで”91

 ググっただけですが、取り敢えず、これはあれこれ確認出来そうです。
 Setを使わずに変数にオブジェクトを設定していませんか?
 変数にNothingを設定したあとに、使おうとしていませんか?

rst.closeは見た限りできていました

 次に思い付くとすればこんな事でした。既に確認済みだと思いますが。
  Set rst = Nothingは出来ていますか?
  dbs.CloseとSet dbs = Nothingは出来ていますか?

 最後に、かもしれない回答であれですが、アップデート不具合でしょうか。
 正直、力になれませんでした。どなたかのヘルプを待って下さい。

 余談ですが、レコードセットを上限まで開く実験では、カウント数には数え方があるみたいなものもヒットしました。真偽はわかりません。

どうしても分からないので教えてください。MicrosoftAccess2016を使用しています。仕事用のデータベースを作成しました。... - Yahoo!知恵袋
どうしても分からないので教えてください。MicrosoftAccess2016を使用しています。仕事用のデータベースを作成しました。 テーブルは50個、クエリが100個、フォームが130個程度の量です。通常はフォームを20個ほど同時に開いて作業しても問題なく使えていました。このデータベースを社内で共有するためにリンクテーブルに分割したところ、フォームをいくつか開くと「これ以上データベースを開くことはできません...
Yahoo!知恵袋

フォーム:2or4。(サブフォームあり:+2or4×個数。リストボックスやコンボボックス:+0or2×個数)。

5
カルナ 2022/02/05 (土) 09:21:44 03236@cb203

ありがとうございます。
hatena様
調べてみましたが、rst.closeは見た限りできていました。
仰るように、248個もレコードセットはしていないのですが、
お手上げ状態になっております。
りんご様
簡単に言うとデーター入力し(この時テーブルは8個開いている状態の時に、1から2件程打ち込んだ後に出てくるような状態です。あやふやな表現ですが、出てくる場面もまちまちなので申し訳ありません。
その後請求書発行の為に集計をかけるとエラー”3037これ以上データーベースはクエリを開くことができません”
となり、終了すると、閉じることはできるのですが、メッセージで、プログラム名xxxx.accdbは既に使用されているので
使用できません”出てくるのです。そのプログラムが入っているフォルダーには、xxx.laccdbが残っている状態です。
取り留めない状態です。

1

[ファイル]-[オプション]-[現在のデータベース]-[ドキュメントウィンドウオプション]で
「ドキュメントタブの表示」のチェックを外すか、「ウィンドウを重ねて表示する」を選択する、かのどちらかにしたらどうでしょう。

フォームの上部(標題のところ)を右クリックすると、

ようするに、フォームの上部(標題のところ)=「ドキュメントタブ」を表示しないようにする。

5

一例です。

請求書テーブル
 請求書番号 主キー
 請求日
 請求年月
 顧客コード

売上テーブル
 売上ID 主キー
 売上日
 商品コード
 単価
 数量
 請求書番号 ※売上入力時は入力しない

普段は月末にまとめて抽出

請求書テーブルをレコードソースとするメインフォームで、
請求書番号を発行、請求年月、顧客などを入力、
それをもとに売上テーブルから該当売上データをクエリで抽出する、この更新クエリで発行した請求書番号を売上テーブルに入力。
サブフォームのソースは売上テーブルでリンクフィールドは請求書番号。

請求書テーブルと売上テーブルを請求書番号で結合したクエリをレポートのレコードソースにして、請求書番号で抽出してレポート出力。

たまに、今発生した売上をすぐに請求書にする

請求書メインフォームで、請求書番号発行、請求日、顧客などの必要事項を入力、
サブフォームで、今発生した売上を入力、
リンクフィールドは請求書番号なので、売上テーブルに請求書番号は自動で入力される。

レポートを請求書番号で抽出して出力。

自分がするなら上記のような設計になりそうです。

4

リンク先の実験ではレコードセットを248開くとエラーになっているようです。

通常、そんなにレコードセットを開く必要はないはずです。
VBAでレコードセットを開いて、使用後に閉じていないものがないか確認してみてはどうでしょう。