Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


373 / 500 ページ ←次へ | 前へ→

【5745】Re:レポート内のガンチャート
発言  じーや  - 05/8/3(水) 17:14 -

引用なし
パスワード
   ▼小僧 さん:

整理がつきました。小僧さんの教えて頂いた方法で出来ました。
有難うございます。テキストで1日〜31日までを表示させていたため、
混乱していました。。。

あと一点お聞きしたいのですが、
今日の日付の日だけを表示させる関数はありますでしょうか。
・ツリー全体表示

【5744】Re:レポート内のガンチャート
お礼  じーや  - 05/8/3(水) 16:35 -

引用なし
パスワード
   ▼小僧 さん:

なんだか自分でも分からなくなってきてしまいました。
ちょっと考え直してみます。すみません。。。
・ツリー全体表示

【5743】Re:レポート内のガンチャート
発言  小僧  - 05/8/3(水) 14:41 -

引用なし
パスワード
   ▼じーや さん:
こんにちは。

>この日付はマクロ上で指定しています。

がちょっと解らないのですが、

>xWidth1 = Me.LINE_1.Left + (DateDiff("d", "2005/05/06", Me.開始日) * sWidth)

xWidth1 = Me.LINE_1.Left + (DateDiff("d", Date, Me.開始日) * sWidth)

で行けませんでしょうか?
・ツリー全体表示

【5742】Re:レポート内のガンチャート
質問  じーや  - 05/8/3(水) 14:31 -

引用なし
パスワード
   ▼小僧 さん:

xWidth1 = Me.LINE_1.Left + (DateDiff("d", "2005/05/06", Me.開始日) * sWidth)

コードを抜粋したものですが、上のように2005/05/06からという指定では
問題なく表示されています。

この日付はマクロ上で指定しています。

このような形でお分かり頂けますでしょうか?
・ツリー全体表示

【5741】Re:レポート内のガンチャート
発言  小僧  - 05/8/3(水) 14:26 -

引用なし
パスワード
   ▼じーや さん:
こんにちは。

>レポートを表示する際、あらかじめ何月何日〜というのを
>指定しなければなりませんが

ここが当方には良く解りません。

A) 固定の日付でしたら問題なくレポートが開けるところまでは
  完成されているのでしょうか?

B) 固定の日付をどこで指定されていますか?
  (フォーム上にテキストボックスがある、
  レポートを開いたらメッセージボックスで聞かれる等)
・ツリー全体表示

【5740】Re:レポート内のガンチャート
質問  じーや  - 05/8/3(水) 14:07 -

引用なし
パスワード
   小僧さん、有難うございます。

私の説明が下手なようでして、すみません。。。

レポートを表示する際、あらかじめ何月何日〜というのを
指定しなければなりませんが、それを自動で今日の日付にしたいのです。

例えば今日、そのレポートを表示するとガンチャートの左端は今日の日付になり、
明日そのレポートを表示するとガンチャートの左端は明日の日付に自動的に変化するというものです。
このような説明でお分かり頂けますでしょうか?
・ツリー全体表示

【5739】Re:最終項目の最後の移動
回答  小僧  - 05/8/3(水) 13:55 -

引用なし
パスワード
   ▼安久 さん:
こんにちは。

>しかし、エラーはでないのですが凄く重くてデータの移動を確認できません。
> (30分ぐらいしても無理でした)

DLookup関数でクエリ(ですよね?)を開いているため、
クエリを開く時間 + 検索の時間 なのでしょうかね…。

レコード件数やPCの環境によっても違うと思いますが、
クエリで処理されてみてはいかがでしょうか。

検査コード = 010092 が 「TG」
       020010 が 「WBC」

のような形でしたら、

Private Sub 実行_Click()
'※要参照 DAO x.x Object Library
Dim SQLCode As String
Dim RS As DAO.Recordset
Dim KCode As Variant
Dim KName As Variant
Dim I As Long
  KCode = Array("010092", "020010")
  KName = Array("TG", "WBC")

  For I = 0 To UBound(KCode)
    SQLCode = "SELECT Ka検査q.検査結果 " _
        & "FROM Ka検査q " _
        & "WHERE Ka検査q.検査コード = '" & KCode(I) & "' " _
        & "ORDER BY Ka検査q.[検査日] DESC;"
  
    Set RS = CurrentDb.OpenRecordset(SQLCode, dbOpenSnapshot)
      If Not (RS.NoMatch) Then
        Forms![患者名].Controls(KName(I)) = RS![検査結果]
      End If
    RS.Close
  Next
End Sub

ただこの場合も「Ka検査q」を開いているので、
できれば元テーブルから「SELECT」した方が早い処理になると思います。
・ツリー全体表示

【5738】Re:最終項目の最後の移動
質問  安久  - 05/8/3(水) 12:40 -

引用なし
パスワード
   お返事ありがとうございました。
>
>クエリに「検査日」があります。
今、
>Private Sub データ入力1 Click()
If MsgBOX("追加","vbOKCancel + vbDefaultButton1)=vbOK Then
DoCmd.Hourglass True
>Dim a As Date
If Dlloup("[検査日]", "Ka検査q", "[検査コード]='010092'")=NotNull Then
>  a = DMax("[検査日]", "Ka検査q", "[検査コード]='010092'")
>  Forms!患者名!TG = DLookup("[検査結果]", "Ka検査q", "[検査コード]='010092' " _& "AND [検査日]=#" & a & "#")
End If
Dim b As Date
If Dlloup("[検査日]", "Ka検査q", "[検査コード]='020010'")=NotNull Then
>  a = DMax("[検査日]", "Ka検査q", "[検査コード]='020010'")
>  Forms!患者名!WBC = DLookup("[検査結果]", "Ka検査q", "[検査コード]='020010' " _& "AND [検査日]=#" & b & "#")
End If
後、これと同じようなやつが20個ぐらいあります。

DoCmd.Hourglass False
End If
>End Sub
>というふうに変えました。
 (お返事いただいたやつでしたらa = DMax("[日付]", "Ka検査q", "[検査コード]='010092'") ここで データがなかったらNullになりいかなかったので変えてみました。)
しかし、エラーはでないのですが凄く重くてデータの移動を確認できません。
 (30分ぐらいしても無理でした)
これでできるか教えて下さい。
また、何か別の方法があるのでしたら教えて下さい。
お願いします。
・ツリー全体表示

【5737】Re:IEウィンドウ操作方法
お礼  いなたく  - 05/8/3(水) 11:37 -

引用なし
パスワード
   小僧さん、こんにちは。

うまく動作いたしましたぁo(^v^)o
このような方法もあるんですね!たいへん勉強にもなりました。
本当にどうもありがとうございましたm(__)m
・ツリー全体表示

【5736】Re:レポート内のガンチャート
発言  小僧  - 05/8/3(水) 11:15 -

引用なし
パスワード
   ▼じーや さん:
こんにちは。

Sub Test()
  Debug.Print DateDiff("d", #2005/01/01#, Date)
End Sub

で今日が今年の何日目かが求められますが…。

外していたらすみません。
・ツリー全体表示

【5735】Re:IEウィンドウ操作方法
回答  小僧  - 05/8/3(水) 11:09 -

引用なし
パスワード
   ▼いなたく さん:
こんにちは。

>「IEウィンドウを別ウィンドウで開き最前面に表示」

自分も色々やっていたのですが、
最前面に表示されたり最小化で起動されたりと
同じコードでもうまくいったりいかなかったりでした。

Web検索してみたところ、裏で何かしらの処理が行われていると
最前面で起動されない事があるそうです。
APIを使うと最前面の表示ができる模様です。

'標準モジュールに宣言
Public Declare Function SetWindowPos _
        Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
        ByVal X As Long, ByVal Y As Long, ByVal Cx As Long, _
        ByVal Cy As Long, ByVal wFlags As Long) As Long

'手前に表示のフラグ
Public Const Temae = -1
Public Const Hyouji = &H40

'フォームに記述
Private Sub ボタン_Click()
Dim objIE As Object
  Set objIE = CreateObject("InternetExplorer.application")
  objIE.Navigate "http://www.yahoo.co.jp"
  SetWindowPos objIE.hwnd, Temae, _
      objIE.Left, objIE.Top, objIE.Width, _
      objIE.Height, Hyouji
  Set objIE = Nothing
End Sub


当方の不勉強で申し訳ないのですが、APIについての知識は殆どありません。
うまくいくと良いのですが…。
・ツリー全体表示

【5734】レポート内のガンチャート
質問  じーや  - 05/8/3(水) 10:35 -

引用なし
パスワード
   レポートでガンチャートを作成しているのですが、
表示したい日付を今日からに指定することは可能でしょうか?

xWidth1 = Me.LINE_1.Left + (DateDiff("d", "xxxxx", Me.開始日) * sWidth)

本来、上の式のxxxxxでは、日付を指定するのですが、
ここに自動的にその日の日付を入れて表示させたいのです。

よろしくお願いします。
・ツリー全体表示

【5733】Re:メニューバーの非表示について
お礼  jun E-MAIL  - 05/8/3(水) 10:20 -

引用なし
パスワード
   Gin_IIさん 早速の回答ありがとうございました。
見栄えが良くないので、何とかなればと思ったのですが。
残念ですが仕方ありません。
本当にありがとうございました。
・ツリー全体表示

【5732】IEウィンドウ操作方法
質問  いなたく  - 05/8/3(水) 9:48 -

引用なし
パスワード
   こんにちは。

フォーム上でボタンをクリックしIEが立ち上がる設定をしているのですが、
ボタンをクリックした際に「IEウィンドウを別ウィンドウで開き最前面に表示」
をしたいのですが、現在「IEウィンドウを別ウィンドウで開く方法」と
「IEを最前面で開く方法」と別々の記載方法になることがわかり困っています。

================= IEを別ウィンドウで開く方法 ==================

Private Sub ボタン_Click()
  Dim ObjIE As Object
  Set ObjIE = CreateObject("InternetExplorer.Application")
  ObjIE.Navigate "http://www.yahoo.co.jp"
  ObjIE.Visible = True
  Set ObjIE = Nothing
End Sub

===============================================================
メリット :IEを別ウィンドウで開く。
デメリット:IEウィンドウが最後面で開く。

================= IEを最前面で開く方法 ==================

Private Sub ボタン_Click()
  Dim ObjIE As Object
  Set ObjIE = CreateObject("Wscript.Shell")
  ObjIE.Run "http://www.yahoo.co.jp"
  Set ObjIE = Nothing
End Sub

=========================================================
メリット :IEを最前面で開く。
デメリット:別にIEウィンドウが起動していた場合、そのIEウィンドウを
      私用して画面を開く。

調べたかぎりでは上記どちらかしか現段階では方法が見つからず、
どちらかの機能を捨てなければいけない状態です。
何とかどちらの機能も満たした記載方法はありませんでしょうか?
どうかお力をお貸しください!
よろしくお願い致します。m(__)m
・ツリー全体表示

【5731】Re:メニューバーの非表示について
回答  Gin_II  - 05/8/2(火) 18:09 -

引用なし
パスワード
   >Private sub Form_open()
> CommandBars("Menu Bar").Enabled=False
>End Sub

起動時の設定で、「すべてのメニューを表示する」のチェックをはずした
状態でもダメってことですよね?

AutoExec マクロでも一瞬表示されますので、他に方法はないような
気がしますけど ^^;
・ツリー全体表示

【5730】メニューバーの非表示について
質問  jun E-MAIL  - 05/8/2(火) 14:57 -

引用なし
パスワード
   起動時の設定ウイザードで指定した表示フォームのVBエディタに次のコードを記述しました。 そのフォームをオープンするとメニューバーが瞬間的に表示されて、その後に非表示になります。
 メニューバーが最初から全く表示されないような方法はないでしょうか。どなたか是非教えてください。お願いします。

Private sub Form_open()
 CommandBars("Menu Bar").Enabled=False
End Sub
・ツリー全体表示

【5729】Re:ボタンでIEを開いた時に最前面へ表示す...
質問  いなたく  - 05/8/2(火) 14:26 -

引用なし
パスワード
   こんにちは。再びの質問で申し訳ありませんが、ご教授願います。

現在、前回ご教授頂いたやり方で試しIEを最前面へ開くようには
なったのですが、IEが新しい別ウィンドウ(プロセス)で開いていたのが
同時に複数のIEを起動して利用している場合に実行前に開いていたIEを
使いウィンドウを開くようになってしまいました。
いろいろ調べてみたのですが、私の力不足か(T_T)新たに質問させて
頂くことに至りました。

以下に今わかっている2通りのやり方を記載しています。
この2つの機能を一緒に含める方法はありませんでしょうか?

どうかお力をお貸しください!
よろしくお願い致します。m(__)m

================= IEを別ウィンドウで開く方法 ==================

Private Sub ボタン_Click()
  Dim ObjIE As Object
  Set ObjIE = CreateObject("InternetExplorer.Application")
  ObjIE.Navigate "http://~"
  ObjIE.Visible = True
  Set ObjIE = Nothing
End Sub

===============================================================

================= IEを最前面で開く方法 ==================

Private Sub ボタン_Click()
  Dim ObjIE As Object
  Set ObjIE = CreateObject("Wscript.Shell")
  ObjIE.Run "http://~"
  Set ObjIE = Nothing
End Sub

=========================================================

PS.初心者ゆえに、この場合新たな質問として掲示し直した方がよかったのか?
  わかりませんでしたので、とりあえず余分なレスを増やさないためにも
  こちらに追記しました。
  もし別物であつかった方が良かったり、ここに追記することに間違いが
  ありましたらすみませんm(__)m
・ツリー全体表示

【5728】Re:返信ぐらいきちんとやりましょう。
お礼    - 05/8/2(火) 12:51 -

引用なし
パスワード
   たん様

 すみません。要領得なくて、以後気をつけます。
 それから、ありがとうございました。新規mdbでやってみたら、正常に
 機能しました。もう一度、確認してみます。お手数おかけしました。
・ツリー全体表示

【5727】Re:ボタンでIEを開いた時に最前面へ表示す...
お礼  いなたく  - 05/8/2(火) 11:41 -

引用なし
パスワード
   ▼小僧 さん:
>▼いなたく さん:
小僧さん、こんにちは。
早々な回答ありがとうございます。

小僧さんにご教授頂いたやり方で試したところ
前面表示されうまく動作しました。ありがとうございますm(__)m
ですが、別問題で今までは他にIEのウィンドウを開いていた時には、
新たにIEの別ウィンドウを立ち上げ表示していたのですが、
今回の設定に変えてみると先に別のIEウィンドウを立ち上げていると
そちらをつかんでページを更新してしまうようになりました。
新たにこの点を改善しなければいけなくなりました。(*_*)
この点についてまた調べてみます。
つまずいたらまた質問させて頂くかと思いますのでその時は
よろしくお願いします。どうもありがとうございました。m(__)m

親切な回答を頂き本当にありがとうございました。m(__)m
・ツリー全体表示

【5726】Re:ボタンでIEを開いた時に最前面へ表示す...
お礼  いなたく  - 05/8/2(火) 11:40 -

引用なし
パスワード
   YU-TANGさん、こんにちは。
回答頂きありがとうございます。

YU-TANGさんにご教授頂いた方法で試したところ
デバッグが走りうまくいきませんでした。
おそらくこれは私が未熟な為書き方が悪いのだと思います。
せっかく教えて頂いたのに活用できずすみません。(>_<)

親切な回答を頂き本当にありがとうございました。m(__)m
・ツリー全体表示

373 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1084735
(SS)C-BOARD v3.8 is Free