Access VBA質問箱 IV

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

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


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

【5234】テキストボックスに日付型の値のみを入力...
質問  小僧  - 05/6/3(金) 13:19 -

引用なし
パスワード
   [#5231] バリューさんの質問の中で新しい質問がありましたので
    スレッドを立て直します。

>日付の入力規制をかけたいのですが、
>どんなふうに入力しても「YYYY/MM/DD」の形にさせたいのですが、
>テーブルから設定させるものでしょうか?

連結型のコントロールでしたら基になるフィールドが日付型でしたら
日付型と判断される値しか代入できなくなります。

非連結でしたら、コントロールのプロパティにある
書式  :yyyy/mm/dd
定型入力:0000/00/00

とすると入力に規制がかかると思います。
・ツリー全体表示

【5233】Re:フォーム作成
回答  小僧  - 05/6/3(金) 13:18 -

引用なし
パスワード
   ▼バリュー さん:
こんにちは。

骨格となる部分は見えてきたと思われますので、
後は細かい部分を過去ログ、ヘルプ等を見ながら
作っていきましょう。

>そこで、日付の入力規制をかけたいのですが、
>どんなふうに入力しても「YYYY/MM/DD」の形にさせたいのですが、
>テーブルから設定させるものでしょうか?

こちらは新しく発生した質問なので、スレッドを立て直して
再度質問の形がよいかと思われます。
今回は当方がスレッドを立てますが、次回から「ご自分で調べても」
解決できない事がありましたら新しいスレッドを立てて他の回答者も
回答しやすいようにしていきましょう。
・ツリー全体表示

【5232】Re:フォーム作成
発言  バリュー  - 05/6/3(金) 13:11 -

引用なし
パスワード
   度々すみません。

追加のお伺いになってしまうのですが、
テーブルに入ってきて欲しい値が入ってきていなくて困っています。。

コンボボックスで他テーブルのデータを表示させて選択して入力する、
という操作がフォーム上でできるのですが、
テーブルにはフォームで入力した他テーブルの値ではなく、
主キーが入力してきてしまっています。

こちらにはどう対処したらよいでしょうか?
・ツリー全体表示

【5231】Re:フォーム作成
質問  バリュー  - 05/6/3(金) 12:21 -

引用なし
パスワード
   ▼小僧 さん:
こんにちは。
返信誠にありがとうございます。


>コンボボックス・テキストボックスに「検索_XXX」という名前をつけ、
>ラベルは…「XXXラベル」とでも名前を変えてみてください。

修正し、動きました!!
そこで、日付の入力規制をかけたいのですが、
どんなふうに入力しても「YYYY/MM/DD」の形にさせたいのですが、
テーブルから設定させるものでしょうか?
・ツリー全体表示

【5230】Re:合計して1行にするには
お礼  にしもり  - 05/6/3(金) 12:14 -

引用なし
パスワード
   ▼クロ さん:
>集計フィールドを「グループ化」から「Where条件」にすれば
>いいかと思います。

おかげさまでできました。
いままでWhere条件の使い方をよく知りませんでした。
どうもありがとうございました。
・ツリー全体表示

【5229】連結オブジェクトフォーム
質問  T  - 05/6/3(金) 11:15 -

引用なし
パスワード
   連結オブジェクトの検索画面を修正しています。

簡単に言うと、キー入力した値を元にDB検索を行いたいのですが
画面のテキストボックスが連結オブジェクトなために
うまく動いてくれません。
検索をするにはどうしたらよいでしょうか?
・ツリー全体表示

【5228】仮想ドライブ
質問  ワイングラス  - 05/6/3(金) 11:09 -

引用なし
パスワード
   AccessVBAほぼ初心者です。ですが、VBAの質問からはそれます。
目的は、G_Driveという名のフォルダを仮想ドライブとして使用するということです。
あるフォルダを、[右クリック]→[プロパティ]→共有タブで[このフォルダを共有する]オプションボタンを選択してそのプロパティを終了したんですが、フォルダの[ツール]→
[ネットワークドライブの割り当て(N)]→[ネットワークドライブの割り当て]において、
ドライブ(D):G:\
フォルダ(O):\\COmputer\G_Drive
と各々設定して[完了]ボタンをクリックしたのですが、「ネットーワークパス \\Computer\G_Drive\ はみつかりませんでした。」というメッセージが帰ってきて
仮想ドライブの設定が行われません。何かいけない設定をしているのでしょうか?
どうかよきアドバイスをお願いします。
・ツリー全体表示

【5227】Re:シェア率の算出方法
回答  小僧  - 05/6/3(金) 10:43 -

引用なし
パスワード
   ▼sakaiII さん:
おはようございます。

以下のSQLを、クエリのSQLビューに記述し実行してみて下さい。

SELECT '合計' AS メーカー名, Sum(Table_Area.数量) AS 数量の合計,
100 AS 数量シェア%, Sum(Table_Area.金額) AS 金額の合計, 100 AS 金額シェア%
FROM Table_Area
GROUP BY '合計', 100, 100
UNION ALL SELECT Table_Area.メーカー名, Table_Area.数量,
[数量]/DSum('数量',"Table_Area")*100 AS 数量シェア%,
Table_Area.金額, Format([金額]/DSum('金額',"Table_Area")*100,"#.##") AS 金額シェア%
FROM Table_Area;

ソートするキーがない為、合計が一番上に出ると思いますが…。
・ツリー全体表示

【5226】Re:フォーム作成
回答  小僧  - 05/6/3(金) 10:30 -

引用なし
パスワード
   ▼バリュー さん:
おはようございます。
>ラベル名が入っていなかったので修正しました。

ラベルはあってもなくても構わないのですが

>RERUNしてみたところ、
>「コンパイルエラー:メソッドまたはデータメンバが見つかりません」
>というメッセージがでて、
>「Private Sub 検索_実行_Click()」の場所が矢印つきで黄色の表示、
>「.Value」の場所が青色の表示になりました。

↑の事象から推測されるのがテキストボックス・コンボボックスに名前をつけるのでなく、
ラベルに名前をつけてしまっている可能性があります。
というのもラベルには「.Value」というプロパティが存在しないからです。

コンボボックス・テキストボックスに「検索_XXX」という名前をつけ、
ラベルは…「XXXラベル」とでも名前を変えてみてください。
・ツリー全体表示

【5225】Re:エラー番号
発言  たん  - 05/6/3(金) 9:32 -

引用なし
パスワード
   >実は、そのコマンドは一切使用していません。

少なくとも、どういう処理を実行中に、どのタイミングで
出たのか、その時に動いているコードの流れ、
エラーが出たコードの位置、そのコード自体の記載等が
明示されていない状況で、「コマンドは使用していません」と
書かれても、誰も何も推測・判断できませんが。

それとも、質問者自身がその状況すら把握していないという
ことなのでしょうか?
もし、そうなのであれば、きちんと状況把握して、質問者が
状況から推測・判断ができなければ、公開可能な情報を提示
した上で協力を求めるべきと思いますが。
・ツリー全体表示

【5224】Re:フォーム作成
質問  バリュー  - 05/6/3(金) 9:23 -

引用なし
パスワード
   ▼小僧 さん:
おはようございます。


>実行後の「検索_発生場所」の▼マークを押すと
>「検索_開始日」「検索_終了日」の間で抽出された
>発生場所が表示されるコードなのですが…。
>考える要因:
>1) コマンドボタンの名前を変えたので、クリックしても
>  コードが実行されていない。
>2) 元のテーブルにデータがない。もしくは「検索_開始日」〜「検索_終了日」間に
>  該当するレコードが1件もない。
>上記2つの点を確認してみて下さい。

ラベル名が入っていなかったので修正しました。
RERUNしてみたところ、
「コンパイルエラー:メソッドまたはデータメンバが見つかりません」
というメッセージがでて、
「Private Sub 検索_実行_Click()」の場所が矢印つきで黄色の表示、
「.Value」の場所が青色の表示になりました。

度々すみません。
どう対処したらよいでしょうか?
・ツリー全体表示

【5223】Re:合計して1行にするには
回答  クロ  - 05/6/3(金) 9:05 -

引用なし
パスワード
   品目1は表示されなくなりますが、品目1の
集計フィールドを「グループ化」から「Where条件」にすれば
いいかと思います。

SELECT 回数.申請者ID, 回数.月, Sum(回数.申請コードのカウント) AS 申請コードのカウントの合計, 人員.氏名
FROM 回数 INNER JOIN 人員 ON 回数.申請者ID = 人員.申請者ID
WHERE (((回数.品目1)="M")) OR (((回数.品目1)="Z"))
GROUP BY 回数.申請者ID, 回数.月, 人員.氏名
HAVING (((回数.月)=4)) OR (((回数.月)=4));
・ツリー全体表示

【5222】シェア率の算出方法
質問  sakaiII  - 05/6/3(金) 7:14 -

引用なし
パスワード
   以下のような計算結果を求めたいのですが、どうすればよろしいでしょうか?
ご伝授ください。よろしくお願いします。

Table_Aria
メーカー名    数量    金額
AAA      800     15000
BBB      200     8000 

結果(クエリ_Aria)
メーカー名    数量    数量シェア%   金額    金額シェア%
AAA      800     80       15000    65.2
BBB      200     20       8000    34.8
合計       1000    100       23000    100 
・ツリー全体表示

【5221】合計して1行にするには
質問  にしもり  - 05/6/2(木) 18:06 -

引用なし
パスワード
   こんにちは。
クエリについて質問です。
回数というテーブルがあり、以下のとおりです。
申請者ID、 品目1、申請コードのカウント、月。
また、人員というテーブルがあり、以下のとおりです。
申請者ID、氏名。


SELECT 回数.申請者ID, 回数.月, Sum(回数.申請コードのカウント) AS 申請コードのカウントの合計, 回数.品目1, 人員.氏名
FROM 回数 INNER JOIN 人員 ON 回数.申請者ID = 人員.申請者ID
GROUP BY 回数.申請者ID, 回数.月, 回数.品目1, 人員.氏名
HAVING (((回数.月)=4) AND ((回数.品目1)="M")) OR (((回数.月)=4) AND ((回数.品目1)="Z"));

このように書くと、ある氏名のMとZが、別個の行に抽出されてしまいます。
ある氏名のMとZを合計して1行にしたいとき、どう記述すればよいでしょうか?
・ツリー全体表示

【5220】Re:Excelへのエキスポート
お礼  smith E-MAIL  - 05/6/2(木) 17:04 -

引用なし
パスワード
   うぉ!すばらしいです。
スマートに書けちゃいますね。
ありがとうございます。
・ツリー全体表示

【5219】Re:MS-ACCESSの本体未インストールマシン...
お礼  うさこ  - 05/6/2(木) 15:10 -

引用なし
パスワード
  

やってみたらできることがわかりました。
また、よろしくお願いします。
・ツリー全体表示

【5218】Re:フォーム作成
回答  小僧  - 05/6/2(木) 13:49 -

引用なし
パスワード
   ▼バリュー さん:
こんにちは。

実行後の「検索_発生場所」の▼マークを押すと
「検索_開始日」「検索_終了日」の間で抽出された
発生場所が表示されるコードなのですが…。

考える要因:
1) コマンドボタンの名前を変えたので、クリックしても
  コードが実行されていない。

2) 元のテーブルにデータがない。もしくは「検索_開始日」〜「検索_終了日」間に
  該当するレコードが1件もない。

上記2つの点を確認してみて下さい。
 
・ツリー全体表示

【5217】Re:フォーム作成
質問  バリュー  - 05/6/2(木) 13:35 -

引用なし
パスワード
   ▼小僧 さん:
こんにちは。
返信誠にありがとうございます。


>ヘッダー部のコントロールが
>>>検索_開始日  テキストボックス
>>>検索_終了日  テキストボックス
>>>検索_実行   コマンドボタン
>>>検索_発生場所 コンボボックス
>>>検索_是正先  コンボボックス
>>>検索_不具合  コンボボックス
>として検索_実行ボタンのクリックのコードビルダに以下のコードで試してください。
>Private Sub 検索_実行_Click()
>'開始日と終了日が空だった場合は実行させません
>  If IsNull(Me.検索_開始日.Value) Or IsNull(Me.検索_終了日.Value) Then
>    MsgBox "開始日と終了日を入れて下さい"
>    Exit Sub
>  End If
>
>'開始日と終了日が日付型でなかった場合は実行させません
>  If Not IsDate(Me.検索_開始日.Value) Or Not IsDate(Me.検索_終了日.Value) Then
>    MsgBox "開始日と終了日を正しく入力して下さい"
>    Exit Sub
>  End If
>
>'発生場所・是正先・不具合のコンボボックスを空にします
>  Me.検索_発生場所.Value = ""
>  Me.検索_是正先.Value = ""
>  Me.検索_不具合.Value = ""
>
>'日付でフィルタを掛けます
>  Me.Filter = _
>    "[発行日] Between #" & Me.検索_開始日.Value & "# AND #" _
>               & Me.検索_終了日.Value & "#"
>  Me.FilterOn = True
>  
>'発生場所・是正先・不具合のコンボボックスの値集合ソースを設定します
>  Me.検索_発生場所.RowSource = _
>    "SELECT 発生場所 FROM テーブルA " _
>   & "WHERE 発行日 Between #" & Me.検索_開始日.Value & "# AND #" _
>                 & Me.検索_終了日.Value & "#"
>End Sub

上記の通りやってみたのですが、
エラーメッセージこそ出ないのですが、
何も変化がおきません。。

どうしたらよいものでしょうか?
・ツリー全体表示

【5216】Re:データシート表示で、上にボタン表示は?
お礼  サチチ  - 05/6/2(木) 13:18 -

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

出来ました!!いい感じにできました!ありがとうございます!!
・ツリー全体表示

【5215】Re:フォーム作成
回答  小僧  - 05/6/2(木) 12:50 -

引用なし
パスワード
   ▼バリュー さん:
こんにちは。

Shift キーを押しながら「ろ」(キーボードの右下)ですね。
半角で使ってください。
・ツリー全体表示

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