Access VBA質問箱 IV

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

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


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

【3329】タブコントロールについて
質問  カキ氷  - 04/8/25(水) 10:52 -

引用なし
パスワード
   質問いたします。
いま、フォームに3個のタブが付いたタブコントロールをはりつけ、「タブ1」上にボタンを2つ貼り付けています。
「ボタン1」を押すと「タブ2」が開き、「ボタン2」を押すと「タブ3」が開くようにしたいのですが、どうしたらいいでしょうか?
・ツリー全体表示

【3328】Re:クロス集計クエリのようなフォームを作...
お礼  パンダまん  - 04/8/25(水) 7:26 -

引用なし
パスワード
   こもれび さんご連絡ありがとうございます。
また、返答が遅れてしまい、申し訳ございません。

全部テキストボックスで関数だけうを使ってやろうとしていました。サブフォームを使えば簡単にできることでしたね。なんか、すごく難しく考えていました。無事に解決です。大変ありがとうございました。
・ツリー全体表示

【3327】Re:テキストボックスの中の値の表示変更
回答  こもれび  - 04/8/24(火) 20:54 -

引用なし
パスワード
   こもれびです

フォームはクエリと連結しているのですね?
そうしますと、現在のクエリは「入荷済みチェック」で表示
することになっているかと思います。
解決方法は、次のようにクエリを作ります。
QBEグリッド(デザイングリッド)の「入荷済みチェック」の
表示チェックを外します。
次に、グリッドの空いている列のフィールドに次のように式を
記述してください。

Disp: IIf([入荷済みチェック]="1","OK","NG")

そして、この式を記述した列の表示チェックボックスをチェック
してください。

クエリのデザインが完了しましたら、フォームに配したテキストボックス
のコントロールソースを式に記述した「Disp」としてください。

蛇足ですが…
お初様の最初の投稿を読ませていただいたとき、何のことか
よく理解しないまま発言していました。ご勘弁願います。<m(__)m>
・ツリー全体表示

【3326】Re:メインフォームとサブフォームの関連に...
発言  KKK  - 04/8/24(火) 20:32 -

引用なし
パスワード
   こもれびさん

ご返信ありがとうございます!

>1.フォームを開く
>2.顧客を選ぶ
>  サブフォームには選ばれた顧客のデータのみ表示される。
>3.新たな対応内容を記述するときは「>*」で新規レコードに移動して記述する
↑こもれびさんのおっしゃる通りです。

>上の流れの1は問題ないのですが、2からが問題でユーザーが選んだ顧客でデータの
>集合を作れという指令を出してあげないと上の2は実現しません。
>(リレーションはあくまで関連付けだけです)
↑というところで、集合を作る指令とは具体的にどうすればよいでしょうか・・?
ご回答どうぞよろしくお願い致します。

>
・ツリー全体表示

【3325】Re:テキストボックスの中の値の表示変更
質問  お初  - 04/8/24(火) 20:01 -

引用なし
パスワード
   ▼こもれび さん:
早速のお返事ありがとうございます。
こもれびさんのおっしゃるとおり
コマンドボタンを設けております。
そこで、商品名と入荷済みに加え、担当者コードもあります。
現在選択クエリで、
入荷したものを担当した者毎に分けるクエリがありますが、
それに連結したフォームを作成したのですが、入荷済みのところをOKかNGと
したいのですが、1か2で表示されてしまいます。
フォーム上で担当者コードを入力し入荷確認というボタンを押すと
商品名、入荷済みが表示されるようにしたいです。

最初はテーブルに連結したフォームを作成し、
担当者コードを入力して、入荷確認ボタンでOKかNGを表示させようとして
ました。

できれば、クロさんのような方法でお願いしたいのですが、
クロさんの方法ですと「#Erro」と出てしまいます。

ちなみに1,2はテキスト型です。

お手数お掛け致しますが、ご教授お願い致します。


>お初 さん、はじめまして こもれびと申します
>
>>フォームのテキストボックスの中の値の表示を変更したいのですが
>>可能でしょうか?
>>たぶん、テキストボックスのプロパティで行うのだと思いますが、
>>分かりません。
>
>ご質問はテキストボックスの表示をコマンドボタンか何かで
>切り替えたいということなのでしょうか?
>何かのイベントがないとデータの表示は切り替わらないと思いますが…
>そのあたりの操作を教えてください。
・ツリー全体表示

【3324】Re:レポートのデータがないとき2
発言  クロ  - 04/8/24(火) 18:38 -

引用なし
パスワード
   図書貸し出し簿にパスワード用テキストボックスを配置して
パスワードを入れると各テキストボックスが使用可になるよ
うな仕様にするのも一案かと...
・ツリー全体表示

【3323】Re:レポートのデータがないとき2
お礼  ponpon  - 04/8/24(火) 18:33 -

引用なし
パスワード
   ▼クロ さん:
うまくいきました(⌒∇⌒)ノ。
大変ありがとうございました。
ただ、期間を入力する抽出ではForm_年月日入力3のように
Form_年月日入力4・5・6……と必要になってくるような気がして
番号からわかるように「Form_年月日入力3」これは同じフォーム3個目です。
やはり、フォーム「図書貸し出し簿」に年月日入力のテキストボックスを設けた方がいいのかなと思っています。
 面倒なことを大変ありがとうございました。


>cmdボタン児童別貸出簿のクリック時のイベントには
> If IsNull(Me.tx児童名検索) Then
>  MsgBox "児童名を選択してください", vbCritical
>  Me.tx児童名検索.SetFocus
> Else
>  DoCmd.OpenForm "年月日入力3"
> End If
>
>これだけにして
>
>フォーム「年月日入力3」にコマンドボタンを設置して
>クリック時のイベントに
>
>Dim i As Integer
>i = DCount("*", "クエリ児童別図書貸出簿")
>
>  If i = 0 Then
>    MsgBox "対象児童名の貸し出しはありません。"
>  Else
>   DoCmd.OpenReport "児童別図書貸出簿レポート", acViewPreview
>   If MsgBox("印刷しますか?", vbYesNo) = vbYes Then
>    DoCmd.Close acReport, "児童別図書貸出簿レポート"
>   
>    DoCmd.OpenReport "児童別図書貸出簿レポート", acViewNormal
>   End If
>  End If
> DoCmd.Close acForm, "年月日入力3"
>
>としてはどうでしょうか?
・ツリー全体表示

【3322】Re:レポートのデータがないとき2
回答  クロ  - 04/8/24(火) 18:27 -

引用なし
パスワード
   かぶっちゃったようで...
以下ではどうでしょう?

>cmdボタン児童別貸出簿のクリック時のイベントには
> If IsNull(Me.tx児童名検索) Then
>  MsgBox "児童名を選択してください", vbCritical
>  Me.tx児童名検索.SetFocus
> Else
>  DoCmd.OpenForm "年月日入力3"
> End If
>
>これだけにして
>
>フォーム「年月日入力3」にコマンドボタンを設置して
>クリック時のイベントに

Private Sub コマンド9_Click()   ’OKボタン
Dim i As Integer
  If IsNull(Me.開始年月日) Or IsNull(Me.終了年月日) Then
   MsgBox ("開始年月日と終了年月日を入力してください。")
   Me.開始年月日.SetFocus
  ElseIf Me.開始年月日 > Date Or Me.終了年月日 > Date Then
   MsgBox ("有効な年月日をを入力してください。")
   Me.開始年月日.SetFocus
  Else
  i = DCount("*", "クエリ児童別図書貸出簿")
  If i = 0 Then
   MsgBox "対象児童名の貸し出しはありません。"
  Else
   DoCmd.OpenReport "児童別図書貸出簿レポート", acViewPreview
   If MsgBox("印刷しますか?", vbYesNo) = vbYes Then
    DoCmd.Close acReport, "児童別図書貸出簿レポート"
    DoCmd.OpenReport "児童別図書貸出簿レポート", acViewNormal
   End If
  End If
  DoCmd.Close acForm, "年月日入力3"
 End If
・ツリー全体表示

【3321】Re:レポートのデータがないとき
質問  ponpon  - 04/8/24(火) 18:17 -

引用なし
パスワード
   ▼クロ さん:
>Private Sub 児童別貸出簿_Click()
>Dim i As Integer
>DoCmd.OpenForm "年月日入力3"
> If IsNull(Me.tx児童名検索) Then
>   MsgBox "児童名を選択してください", vbCritical
>  Me.tx児童名検索.SetFocus
> Else
><以下省略>
>
>Ifの前で「年月日入力3」を開いてはどうでしょうか?

Ifの前で「年月日入力3」を開いたのですが、結果は同じようです。
同時に二つ「対象児童名の貸し出しはありません」と「年月日入力3」が表示されます。

ちなみに「年月日入力3」のコードを書きますので何か気がついたことはありませんでしょうか。

  テキストボックス開始年月日
  テキストボックス終了年月日
  コマンドボタン閉じる
  コマンドボタンOK

Private Sub Form_Load()
  Me.終了年月日 = Date

End Sub

Private Sub コマンド10_Click()  ’閉じるボタン
 DoCmd.Close
End Sub

Private Sub コマンド9_Click()   ’OKボタン
  If IsNull(Me.開始年月日) Or IsNull(Me.終了年月日) Then
   MsgBox ("開始年月日と終了年月日を入力してください。")
   Me.開始年月日.SetFocus
  ElseIf Me.開始年月日 > Date Or Me.終了年月日 > Date Then
   MsgBox ("有効な年月日をを入力してください。")
   Me.開始年月日.SetFocus

  Else
   Me.Visible = False
 
  End If


End Sub
・ツリー全体表示

【3320】Re:レポートのデータがないとき2
回答  クロ  - 04/8/24(火) 18:15 -

引用なし
パスワード
   cmdボタン児童別貸出簿のクリック時のイベントには
 If IsNull(Me.tx児童名検索) Then
  MsgBox "児童名を選択してください", vbCritical
  Me.tx児童名検索.SetFocus
 Else
  DoCmd.OpenForm "年月日入力3"
 End If

これだけにして

フォーム「年月日入力3」にコマンドボタンを設置して
クリック時のイベントに

Dim i As Integer
i = DCount("*", "クエリ児童別図書貸出簿")

  If i = 0 Then
    MsgBox "対象児童名の貸し出しはありません。"
  Else
   DoCmd.OpenReport "児童別図書貸出簿レポート", acViewPreview
   If MsgBox("印刷しますか?", vbYesNo) = vbYes Then
    DoCmd.Close acReport, "児童別図書貸出簿レポート"
   
    DoCmd.OpenReport "児童別図書貸出簿レポート", acViewNormal
   End If
  End If
 DoCmd.Close acForm, "年月日入力3"

としてはどうでしょうか?
・ツリー全体表示

【3319】Re:レポートのデータがないとき
回答  クロ  - 04/8/24(火) 17:59 -

引用なし
パスワード
   Private Sub 児童別貸出簿_Click()
Dim i As Integer
DoCmd.OpenForm "年月日入力3"
 If IsNull(Me.tx児童名検索) Then
   MsgBox "児童名を選択してください", vbCritical
  Me.tx児童名検索.SetFocus
 Else
<以下省略>

Ifの前で「年月日入力3」を開いてはどうでしょうか?
・ツリー全体表示

【3318】Re:レポートのデータがないとき
質問  ponpon  - 04/8/24(火) 17:52 -

引用なし
パスワード
   ▼クロ さん:
早速の回答ありがとうございます。

>クエリ児童別図書貸出簿の抽出条件にフォーム「年月日入力3」のテキストボックスを
>入れましたか?
>期間であるから
>Between [Forms]![年月日入力3]![期間初] And [Forms]![年月日入力3]![期間終]
>みたいに
>この部分にパラメータがあるなら上記のように書き換えてください。

きちんと入れています。


>※期間初/期間終は仮称ですので注意
>
>※フォーム「図書貸し出し簿」もフォーム「年月日入力3」も閉じてはダメですよ。

 期間を入れてOKをクリックすると閉じるようにしていましたのでやめました。
 このようにすると、はじめに「年月日入力3」のフォームと「対象児童名の貸し出しはありません」が同時に出てきます。「対象児童名の貸し出しはありません」をOKをクリックすると「年月日入力3」が残るので年月日を入力して、もう一度cmd児童別貸出簿をクリックすると、貸し出しのある児童のレポートが表示されます。
「年月日入力3」の入力が確定するまで、Dcoun・・・・にいかない方法は、何のですかね?


> 不可視にするのは可(Me.Visible = False)
>
>※DoCmd.Close acForm, "年月日入力3"を入れるなら
> DoCmd.OpenReport "児童別図書貸出簿レポート", acViewNormalの後に...
>
>私的にはフォーム「図書貸し出し簿」内に期間を入れるテキストボックスを配置した
>方が楽ではないかと思うのですが...その他の条件があるならそれも

フォーム「図書貸し出し簿」は児童が操作するように考えて作りました。パスワード入力で先生用のコマンド出てくるように考えたのですが・・・もう一度考え直して児童用と先生用と作った方が手っ取り早いみたいですね。
・ツリー全体表示

【3317】VBAプロジェクトでパスワード
質問  参院交代  - 04/8/24(火) 17:39 -

引用なし
パスワード
   はじめまして。

VBAプロジェクトでパスワードで保護されたmdbに対して
外部mdbから、DeleteObject、CopyObjectメソッドを
を実行したいと思います。しかしパスワードをの送り方が
わからないので、当然エラーになります。
どなたか、パスワードの送り方を教えて下さい。
・ツリー全体表示

【3316】Re:テキストボックスの中の値の表示変更
回答  クロ  - 04/8/24(火) 17:32 -

引用なし
パスワード
   表示だけなら非連結テキストボックスのコントロールソースに
=IIf([入荷済みチェック]=1,"OK","NG")
でいいのでは?
※入荷済みチェックのデータ型が数値型の場合
 テキスト型なら[入荷済みチェック]="1"としてください。
・ツリー全体表示

【3315】Re:レポートのデータがないとき
回答  クロ  - 04/8/24(火) 17:29 -

引用なし
パスワード
   クエリ児童別図書貸出簿の抽出条件にフォーム「年月日入力3」のテキストボックスを
入れましたか?
期間であるから
Between [Forms]![年月日入力3]![期間初] And [Forms]![年月日入力3]![期間終]
みたいに
この部分にパラメータがあるなら上記のように書き換えてください。
※期間初/期間終は仮称ですので注意

※フォーム「図書貸し出し簿」もフォーム「年月日入力3」も閉じてはダメですよ。
 不可視にするのは可(Me.Visible = False)

※DoCmd.Close acForm, "年月日入力3"を入れるなら
 DoCmd.OpenReport "児童別図書貸出簿レポート", acViewNormalの後に...

私的にはフォーム「図書貸し出し簿」内に期間を入れるテキストボックスを配置した
方が楽ではないかと思うのですが...その他の条件があるならそれも
・ツリー全体表示

【3314】Re:レポートのデータがないとき
質問  ponpon  - 04/8/24(火) 17:12 -

引用なし
パスワード
   ▼クロ さん:
>単なるパラメータでは件のエラーが出ますので、フォームのテキストボックス等を配置されてはどうでしょうか?
 ユーザーフォームの「図書貸し出し簿」で児童名を選択し、cmdボタン児童別貸出簿をクリックすると、ユーザーフォーム「年月日入力3」を開いて期間を入力するようにしましたが、今度はエラーはでなかったのですが、どの児童を選択しても「対象児童の貸し出しはありません」が表示されてしまいます。おそらく年月日の入力が確定する前に Dcount・・・・に進んでしまうのではないかと思うのですが、どうしたらよいのでしょうか?

Private Sub 児童別貸出簿_Click()
Dim i As Integer
 If IsNull(Me.tx児童名検索) Then
   MsgBox "児童名を選択してください", vbCritical
  Me.tx児童名検索.SetFocus
 Else
  DoCmd.OpenForm "年月日入力3"

   i = DCount("*", "クエリ児童別図書貸出簿")

  If i = 0 Then
    MsgBox "対象児童名の貸し出しはありません。"
    DoCmd.Close acForm, "年月日入力3"
    
    Exit Sub
  Else
   DoCmd.OpenReport "児童別図書貸出簿レポート", acViewPreview
   If MsgBox("印刷しますか?", vbYesNo) = vbYes Then
    DoCmd.Close acReport, "児童別図書貸出簿レポート"
   
    DoCmd.OpenReport "児童別図書貸出簿レポート", acViewNormal
   End If
  End If
End If
End Sub
・ツリー全体表示

【3313】Re:テキストボックスの中の値の表示変更
発言  こもれび  - 04/8/24(火) 16:57 -

引用なし
パスワード
   お初 さん、はじめまして こもれびと申します

>フォームのテキストボックスの中の値の表示を変更したいのですが
>可能でしょうか?
>たぶん、テキストボックスのプロパティで行うのだと思いますが、
>分かりません。

ご質問はテキストボックスの表示をコマンドボタンか何かで
切り替えたいということなのでしょうか?
何かのイベントがないとデータの表示は切り替わらないと思いますが…
そのあたりの操作を教えてください。
・ツリー全体表示

【3312】Re:レポートのデータがないとき
回答  クロ  - 04/8/24(火) 16:05 -

引用なし
パスワード
   単なるパラメータでは件のエラーが出ますので、フォームのテキストボックス等を配置されてはどうでしょうか?
・ツリー全体表示

【3311】テキストボックスの中の値の表示変更
質問  お初  - 04/8/24(火) 15:54 -

引用なし
パスワード
   こんにちは。
access初心者のお初です。

早速で申し訳ありませんが、
フォームのテキストボックスの中の値の表示を変更したいのですが
可能でしょうか?
たぶん、テキストボックスのプロパティで行うのだと思いますが、
分かりません。

例:
テーブル1
商品名 入荷済みチェック
りんご  1
みかん  1
ぶどう  2
なし   1
めろん  2
数字の1,2は入荷済みは1、未入荷は2の時、
フォーム上では
商品名  入荷済みチェック
りんご  OK
みかん  OK
ぶどう  NG
なし   OK
めろん  NG

と表示させていたいのですが、可能でしょうか?
もし可能でしたら、ご教授お願い致します。
・ツリー全体表示

【3310】Re:レポートのデータがないとき
質問  ponpon  - 04/8/24(火) 15:54 -

引用なし
パスワード
   ▼クロ さん:
>Access2000なら以下のURLが参考になるかと...
>http://support.microsoft.com/default.aspx?scid=kb;ja;416357&Product=accJPN

Access2002、Access2003で作っています。
 読んでみたのですが、日本名を多くしたりするといろいろと不具合があるようですね。解決できないようです。

ところで、
 「図書貸し出し簿」というフォームから期間を指定して、未返却者や学級別、個人別にデータを抽出し、印刷しようとしたのですが、データがないときの処理がわからず、一つわかればいろいろと応用できると考えていました。
 教えていただいた、Dcountをいろいろと使ってコードを書いてみたのですが、パラメータクエリをソースとしたものはだめでしたが、ふつうのパラメータを使わない選択(?)クエリでは、思った通りにうまくデータがないときには、抜けることができました。何か違いがあるのでしょうか?
  

>
>上記はフォームを閉じるときにとありますがそういう場合以外にも発生するようです。
>
>メニュー>ツール>オプションの全般タブの「名前の自動修正を行う」のチェックを外す
>と言う手も有りみたいです。
>
>※ちなみに私の方では「直前のコマンドがキャンセルされました。」のエラーは出ませ 
> ん。
>PS:Exit Subは要りませんでした
・ツリー全体表示

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