Access VBA質問箱 IV

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

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


1177 / 2272 ツリー ←次へ | 前へ→

【8380】フォームの値を表示させるようにレポートを開くには にしもり 06/7/31(月) 17:38 質問[未読]
【8381】Re:フォームの値を表示させるようにレポート... クロ 06/7/31(月) 17:48 発言[未読]
【8382】Re:フォームの値を表示させるようにレポート... にしもり 06/7/31(月) 18:09 お礼[未読]
【8385】Re:フォームの値を表示させるようにレポート... にしもり 06/8/2(水) 11:28 質問[未読]
【8386】Re:フォームの値を表示させるようにレポート... クロ 06/8/2(水) 15:48 回答[未読]
【8387】Re:フォームの値を表示させるようにレポート... にしもり 06/8/2(水) 17:09 質問[未読]
【8388】Re:フォームの値を表示させるようにレポート... クロ 06/8/2(水) 17:18 回答[未読]
【8389】Re:フォームの値を表示させるようにレポート... にしもり 06/8/2(水) 17:42 質問[未読]
【8390】Re:フォームの値を表示させるようにレポート... クロ 06/8/2(水) 21:46 回答[未読]
【8392】Re:フォームの値を表示させるようにレポート... にしもり 06/8/3(木) 9:16 質問[未読]
【8393】Re:フォームの値を表示させるようにレポート... クロ 06/8/3(木) 9:22 回答[未読]
【8394】Re:フォームの値を表示させるようにレポート... にしもり 06/8/3(木) 9:26 質問[未読]
【8395】Re:フォームの値を表示させるようにレポート... クロ 06/8/3(木) 9:32 発言[未読]
【8396】Re:フォームの値を表示させるようにレポート... にしもり 06/8/3(木) 9:47 質問[未読]
【8397】Re:フォームの値を表示させるようにレポート... クロ 06/8/3(木) 10:02 回答[未読]
【8398】Re:フォームの値を表示させるようにレポート... にしもり 06/8/3(木) 10:14 発言[未読]
【8414】Re:フォームの値を表示させるようにレポート... Gin_II 06/8/3(木) 13:23 発言[未読]
【8399】Re:フォームの値を表示させるようにレポート... クロ 06/8/3(木) 10:22 発言[未読]
【8400】Re:フォームの値を表示させるようにレポート... にしもり 06/8/3(木) 10:47 発言[未読]
【8401】Re:フォームの値を表示させるようにレポート... クロ 06/8/3(木) 10:58 回答[未読]
【8403】Re:フォームの値を表示させるようにレポート... にしもり 06/8/3(木) 11:26 発言[未読]
【8405】Re:フォームの値を表示させるようにレポート... クロ 06/8/3(木) 11:33 発言[未読]
【8406】Re:フォームの値を表示させるようにレポート... にしもり 06/8/3(木) 11:40 質問[未読]
【8407】Re:フォームの値を表示させるようにレポート... クロ 06/8/3(木) 11:45 発言[未読]
【8410】Re:フォームの値を表示させるようにレポート... にしもり 06/8/3(木) 12:03 質問[未読]
【8411】Re:フォームの値を表示させるようにレポート... クロ 06/8/3(木) 12:11 発言[未読]
【8412】Re:フォームの値を表示させるようにレポート... にしもり 06/8/3(木) 12:18 質問[未読]
【8413】Re:フォームの値を表示させるようにレポート... クロ 06/8/3(木) 12:25 発言[未読]
【8416】Re:フォームの値を表示させるようにレポート... にしもり 06/8/3(木) 13:35 発言[未読]
【8418】Re:フォームの値を表示させるようにレポー... 小僧 06/8/3(木) 14:10 発言[未読]
【8419】Re:フォームの値を表示させるようにレポー... にしもり 06/8/3(木) 14:50 質問[未読]
【8420】Re:フォームの値を表示させるようにレポー... にしもり 06/8/3(木) 15:05 発言[未読]
【8430】Re:フォームの値を表示させるようにレポー... にしもり 06/8/8(火) 1:32 質問[未読]
【8431】Re:フォームの値を表示させるようにレポート... クロ 06/8/8(火) 15:21 発言[未読]
【8432】Re:フォームの値を表示させるようにレポート... にしもり 06/8/8(火) 16:10 質問[未読]
【8433】Re:フォームの値を表示させるようにレポート... クロ 06/8/8(火) 16:26 回答[未読]
【8434】Re:フォームの値を表示させるようにレポート... にしもり 06/8/8(火) 16:42 質問[未読]
【8435】Re:フォームの値を表示させるようにレポート... クロ 06/8/8(火) 16:44 発言[未読]
【8436】Re:フォームの値を表示させるようにレポート... にしもり 06/8/8(火) 16:53 質問[未読]
【8439】Re:フォームの値を表示させるようにレポート... クロ 06/8/8(火) 16:59 発言[未読]
【8437】Re:フォームの値を表示させるようにレポート... 通りすがり? 06/8/8(火) 16:54 回答[未読]
【8438】Re:フォームの値を表示させるようにレポート... にしもり 06/8/8(火) 16:57 発言[未読]
【8440】Re:フォームの値を表示させるようにレポート... にしもり 06/8/8(火) 17:06 発言[未読]
【8441】Re:フォームの値を表示させるようにレポート... にしもり 06/8/8(火) 17:10 お礼[未読]

【8380】フォームの値を表示させるようにレポート...
質問  にしもり  - 06/7/31(月) 17:38 -

引用なし
パスワード
   こんにちは。
フォームF_Search中のコマンド7というボタンにこのようなコードを付けました。
つまりReport1のUnit_NameにF_SearchのUnitNameを出したいのです。

Private Sub コマンド7_Click()
DoCmd.OpenReport "Report1", acViewPreview
'1
Reports!Report1.Unit_Name = Forms!F_Search.UnitName
'2
'Reports!Report1.Unit_Name = Me!UnitName
'3
'Reports!Report1.Unit_Name = [Forms]![F_Search]![UnitName]

End Sub

ところが1,2,3を順に試しましたがいずれも
実行時エラー2147352567 このオブジェクトに値を代入することはできません、と出ます。
テキスト型なので前後にシングルクォーテーションをつけるのかと思いましたが、コードが赤くなりエラーになってしまいます。
何が足りないのか、どなたか教えていただけないでしょうか。

【8381】Re:フォームの値を表示させるようにレポー...
発言  クロ  - 06/7/31(月) 17:48 -

引用なし
パスワード
   こんにちは
フォームF_Searchは開いたままで、レポートのUnit_Nameが連結していないという条件下で
Unit_Nameテキストボックスのコントロールソースに
=[Forms]![F_Search]![UnitName]
でいいのでは?

【8382】Re:フォームの値を表示させるようにレポー...
お礼  にしもり  - 06/7/31(月) 18:09 -

引用なし
パスワード
   ▼クロ さん:
いつもありがとうございます。
おっしゃるとおりでできました。

まだまだ力不足でございます。

【8385】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/2(水) 11:28 -

引用なし
パスワード
   すみません。
またわからなくなってしまいました。

あたらしくフォームを基にしたレポート(R_xxx)を作ろうと思い、レポート→新規作成→レポートウィザード と進めたら、基になるテーブルかクエリを指定するようにとありました。

そこであらたにクエリQ_xxxをつくり、フィールドに式1: Forms!F_xxx!xxxxxという風にしてsaveしました。

また、レポートR_xxxのコントロールソースは=Forms!F_xxx!xxxxxという風にしました。

ところが、R_xxxを開くと、クエリの入力には1つ以上のテーブルまたはクエリが
必要です、と出ます。

Q_xxxをしっかりつくったのにどこがいけないのでしょうか。どうかご教示ください。

【8386】Re:フォームの値を表示させるようにレポー...
回答  クロ  - 06/8/2(水) 15:48 -

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

>そこであらたにクエリQ_xxxをつくり、フィールドに式1: Forms!F_xxx!xxxxxという風にしてsaveしました。

としたなら

>また、レポートR_xxxのコントロールソースは=Forms!F_xxx!xxxxxという風にしました。

リポートR_xxxの"何かの"のコントロールのコントロールソースは
「式1」でいいので?

それとレポートのプロパティを確認してレコードソースが「Q_xxx」になってますか?

※取りあえず「焦らず」やってみてください。

【8387】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/2(水) 17:09 -

引用なし
パスワード
   ▼クロ さん:
Q_xxxを開き、テーブルの表示で、すべてのテーブルを追加しました。
そしたら、クエリの入力には1つ以上のテーブルまたはクエリが必要です、というメッセージはでなくなりました。1歩前進しましたが(R_xxxは開くが)、タイトルだけ出て肝心の部分が空白です。おっしゃるとおりリポートR_xxxの"Implement Date"のコントロールのコントロールソースは「式1」にしました。
まだどこかおかしいですか。

-----------------------------------
R_xxx
コントロールの名前:Implement Date
コントロールソース:式1
-----------------------------------

-----------------------------------
F_xxx
コントロールの名前:Date/Time
コントロールソース:Implement_Date
-----------------------------------

-----------------------------------
Q_xxx
フィールド:式1:Forms!F_xxx![Date/Time]

-----------------------------------

【8388】Re:フォームの値を表示させるようにレポー...
回答  クロ  - 06/8/2(水) 17:18 -

引用なし
パスワード
   まず、フォームF_xxは開いてますか?
開いていたらクエリQ_xxxを開いて「式1」にはフォームF_xxの値が
表示されてますか?
表示されていたらレポートR_xxxも表示すると思うのですが…

>あたらしくフォームを基にしたレポート(R_xxx)を作ろうと思い、レポート→
>新規作成→レポートウィザード と進めたら、基になるテーブルかクエリを
>指定するようにとありました。

とありましたが、フォームと同じレコードソースで作成すればいいと思うの
ですがどうでしょうか?

【8389】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/2(水) 17:42 -

引用なし
パスワード
   ▼クロ さん:
F_XXを開き、その状態でQ_XXを開きました。
そうしたら、またこれがでました。

--------------------
| パラメーターの入力      
| Forms!F_XX!Date/Time             
| ------------------    
|
| ------------------    
|               
| ---- ----------- 
| ok  キャンセル 
| ---- ----------- 
---------------------

OKを押したら
--------------------
| 式1      
| ------------------    
|
| ------------------    
|               
| ------------------
| 
| ------------------
|               
| ------------------
| 
| ------------------
|               
| ------------------
| 
| ------------------
---------------------
のようになりました。
F_XXを開いているときのForms!F_XX!Date/Timeには、日付けが入っているのですが。。。

ps.いつもありがとうございます。
小生これから外出しなければいけないのでどうか無理に回答なさらないでください。

【8390】Re:フォームの値を表示させるようにレポー...
回答  クロ  - 06/8/2(水) 21:46 -

引用なし
パスワード
   >F_XXを開いているときのForms!F_XX!Date/Timeには、

このテキストボックスの名前変えるとどうなりますか?
たとえば「txtDT」とかに…

【8392】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/3(木) 9:16 -

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

>このテキストボックスの名前変えるとどうなりますか?
>たとえば「txtDT」とかに…
以下のように変えました。

-----------------------------------
R_xxx
コントロールの名前:Implement Date
コントロールソース:式1
-----------------------------------

-----------------------------------
F_xxx
コントロールの名前:Date/Time→txtDTに変更しました
コントロールソース:Implement_Date
-----------------------------------

-----------------------------------
Q_xxx
フィールド:式1:Forms!F_xxx![Date/Time]→自動的にForms!F_xxx!txtDTになってました。

-----------------------------------

F_XXを開いた状態でQ_XXを開きました。
そうしたら、いきなり
--------------------
| 式1      
| ------------------    
|
| ------------------    
|               
| ------------------
| 
| ------------------
|               
| ------------------
| 
| ------------------
|               
| ------------------
| 
| ------------------
---------------------
がでました。
なんかもう少しのような気がしますが。
理解できていず、すみません。

【8393】Re:フォームの値を表示させるようにレポー...
回答  クロ  - 06/8/3(木) 9:22 -

引用なし
パスワード
   クエリのところを
式1: CDate([Forms]![F_xxx]![txtDT])
とするとどうなります?

【8394】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/3(木) 9:26 -

引用なし
パスワード
   ▼クロ さん:
>クエリのところを
>式1: CDate([Forms]![F_xxx]![txtDT])
>とするとどうなります?
おっしゃるとおりにし、
F_XXを開き、その状態でQ_XXを開きました。
そうしたら、またこれがでました。

--------------------
| パラメーターの入力      
| Forms!F_XX!txtDT             
| ------------------    
|
| ------------------    
|               
| ---- ----------- 
| ok  キャンセル 
| ---- ----------- 
---------------------

【8395】Re:フォームの値を表示させるようにレポー...
発言  クロ  - 06/8/3(木) 9:32 -

引用なし
パスワード
   クエリのSQL文を提示できますか?

【8396】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/3(木) 9:47 -

引用なし
パスワード
   ▼クロ さん:
>クエリのSQL文を提示できますか?
クエリには【8387】にてテーブル(6個)を追加しました。正規化も済ませました。

SELECT CDate(Forms!F_xxx!txtDT) AS 式1
FROM ((((tbl_STAFF_COURSE INNER JOIN tbl_STAFF ON tbl_STAFF_COURSE.Staff_NUM = tbl_STAFF.Staff_ID) INNER JOIN tbl_COURSE ON tbl_STAFF_COURSE.Course_NUM = tbl_COURSE.Course_ID) INNER JOIN tbl_UNIT ON tbl_STAFF.Attached_Unit_Num = tbl_UNIT.Unit_ID) INNER JOIN tbl_TRAINING ON tbl_COURSE.Training_Num = tbl_TRAINING.Program_ID) INNER JOIN tbl_CATEGORY ON tbl_TRAINING.Attached_Category_Num = tbl_CATEGORY.Category_ID;

さきほどのパラメータ入力要求で、なにもいれずにokを押してみました。そしたら、「式が正しく入力されていないか複雑すぎるため評価できません、式に複雑な要素があります、変数に式の一部を割り当て式を簡単にしてください」とでました。このようなMSG初めて見ました。クエリ中にテーブル6個というのががおおすぎるのでしょうか。正規化して複雑になりすぎたのでしょうか。

【8397】Re:フォームの値を表示させるようにレポー...
回答  クロ  - 06/8/3(木) 10:02 -

引用なし
パスワード
   あのですね。このままだと正しく表示されたとしても
式1しか表示しないのですが…
何のためにそんなことをしているのですか?

たとえ、レポートのレコードソースに指定しても意味がないような…

まずは、SELECT句の後に必要なフィールドを記述して

SELECT 何か, 何か, 何か, 何か, 何か
FROM ((((tbl_STAFF_COURSE INNER JOIN tbl_STAFF ON tbl_STAFF_COURSE.Staff_NUM = tbl_STAFF.Staff_ID) INNER JOIN tbl_COURSE ON tbl_STAFF_COURSE.Course_NUM = tbl_COURSE.Course_ID) INNER JOIN tbl_UNIT ON tbl_STAFF.Attached_Unit_Num = tbl_UNIT.Unit_ID) INNER JOIN tbl_TRAINING ON tbl_COURSE.Training_Num = tbl_TRAINING.Program_ID) INNER JOIN tbl_CATEGORY ON tbl_TRAINING.Attached_Category_Num = tbl_CATEGORY.Category_ID;

としたクエリで希望のデータが表示されるか確認してください。

【8398】Re:フォームの値を表示させるようにレポー...
発言  にしもり  - 06/8/3(木) 10:14 -

引用なし
パスワード
   ▼クロ さん:
>あのですね。このままだと正しく表示されたとしても
>式1しか表示しないのですが…
基本ができていません、すみません。

>何のためにそんなことをしているのですか?
元はといえば【8380】で申しましたがフォームF_Search中にのコマンド7というボタンを押したときにReport1がひらき、そのReport1のUnit_NameにF_SearchのUnitNameを出したいと思ったのです。F_XXとは、F_Searchとは別に自分でテスト的につくったフォームです。なお、お察しと思いますがベースのMDBは他者が作ったものです。

何か, 何か, 何か, 何か, 何か というSELECT句の後のところに必要なフィールドを記述してみます。

すっかり泥沼にはまってしまいました。巻き込んでしまい恐縮です。しかしこの壁を乗り越えないと初級者を脱せられません。がんばってまた報告します。

【8399】Re:フォームの値を表示させるようにレポー...
発言  クロ  - 06/8/3(木) 10:22 -

引用なし
パスワード
   あと、フォーム名などを伏せられていますが、こちらに
問題のある文字が使われていることはないですか?

クエリの式1フィールドに
CDate(Forms!F_xxx!txtDT)
を書くと自動的に「[ ]」が付くと思うのですが…つきませんか?

パラメータを聞いてくるということは対象が開いてないとか、フォーム名が
間違っているとか、コントロール名が間違っているなどです。

また、このtxtDTテキストボックスコントロールは連結ですか、非連結で
すか?

※ちなみに当方で式1フィールドだけを表示したクエリでもきちんと
 フォームで入力してある日付が表示されました。

【8400】Re:フォームの値を表示させるようにレポー...
発言  にしもり  - 06/8/3(木) 10:47 -

引用なし
パスワード
   ▼クロ さん:
>あと、フォーム名などを伏せられていますが、こちらに
>問題のある文字が使われていることはないですか?
問題の字はないと思います。

>クエリの式1フィールドに
>CDate(Forms!F_xxx!txtDT)
>を書くと自動的に「[ ]」が付くと思うのですが…つきませんか?
[]はついていませんでした。

>パラメータを聞いてくるということは対象が開いてないとか、フォーム名が
>間違っているとか、コントロール名が間違っているなどです。
>
>また、このtxtDTテキストボックスコントロールは連結ですか、非連結で
>すか?
F_xxのフォームそのもののプロパティで右クリックします。レコードソースにはなにも出ません。ずっと下にスクロールして、開く時の[イベントプロシージャ]にコードが入っています。その場合は「連結」と考えてよいのですよね。

>※ちなみに当方で式1フィールドだけを表示したクエリでもきちんと
> フォームで入力してある日付が表示されました。
それこそわたくしがやりたいことでございます!なぜできるんでしょうかね

【8401】Re:フォームの値を表示させるようにレポー...
回答  クロ  - 06/8/3(木) 10:58 -

引用なし
パスワード
   >>問題のある文字が使われていることはないですか?
>問題の字はないと思います。

ちなみに Date/Time などはかなり問題ありの命名ですが…

>>クエリの式1フィールドに
>>CDate(Forms!F_xxx!txtDT)
>>を書くと自動的に「[ ]」が付くと思うのですが…つきませんか?
>[]はついていませんでした。

なんで付かないんだろ?

>>パラメータを聞いてくるということは対象が開いてないとか、フォーム名が
>>間違っているとか、コントロール名が間違っているなどです。

この辺は確認しましたか?


>F_xxのフォームそのもののプロパティで右クリックします。レコードソースには
>なにも出ません。ずっと下にスクロールして、開く時の[イベントプロシー>
>ジャ]にコードが入っています。その場合は「連結」と考えてよいのですよ>
>ね。

レコードソースでなくコントロールソースです。
txtDTテキストボックスコントロールのコントロールソースは?
ただ、フォームプロパティのレコードソースが空ならtxtDTテキストボックス
コントロールも非連結だと思います。
開く時の[イベントプロシージャ]がチョット気にはなりますが…

【8403】Re:フォームの値を表示させるようにレポー...
発言  にしもり  - 06/8/3(木) 11:26 -

引用なし
パスワード
   ▼クロ さん:
▼クロ さん:

>ちなみに Date/Time などはかなり問題ありの命名ですが…
あ、Date/Timeのときですか。すみません。
下記のパターンのときは、クエリのDate/Timeの前後に[ ]は付きます。

-----------------------------------
R_xxx
コントロールの名前:Implement Date
コントロールソース:式1
-----------------------------------

-----------------------------------
F_xxx
コントロールの名前:Date/Time
コントロールソース:Implement_Date
-----------------------------------

-----------------------------------
Q_xxx
フィールド:式1:Forms!F_xxx![Date/Time]

-----------------------------------

>なんで付かないんだろ?
上記のとおり、付きました。

>この辺は確認しましたか?
名前は間違えのないよう手打ちでなくコピペしています。

>txtDTテキストボックスコントロールのコントロールソースは?
Implement_Dateとなっております。問題ありですか。
開く時の[イベントプロシージャ]があるからといって連結というわけではないのですね。まだわかっていません。すみません。

何が何かわからなくなってきました。ちょっと頭を整理しましす。

【8405】Re:フォームの値を表示させるようにレポー...
発言  クロ  - 06/8/3(木) 11:33 -

引用なし
パスワード
   フォームF_xxxのプロパティでレコードソースがないのに

>-----------------------------------
>F_xxx
>コントロールの名前:Date/Time
>コントロールソース:Implement_Date
>-----------------------------------

のようにコントロールソースがあるのは何故?
コントロールソースの▼でリストが現れますか?

それとまさかと思いますが「Forms」を「Froms」とか書いてませんよね。
oとrが逆。

【8406】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/3(木) 11:40 -

引用なし
パスワード
   ▼クロ さん:

>のようにコントロールソースがあるのは何故?
なぜとおっしゃられましても。。他者のMDBをぱくったからです。

>コントロールソースの▼でリストが現れますか?
▼でリストは何もでませんでした。
変ですか?

>それとまさかと思いますが「Forms」を「Froms」とか書いてませんよね。
Formsです。

【8407】Re:フォームの値を表示させるようにレポー...
発言  クロ  - 06/8/3(木) 11:45 -

引用なし
パスワード
   >>のようにコントロールソースがあるのは何故?
>なぜとおっしゃられましても。。他者のMDBをぱくったからです。

ぱくったのはいいけど、レコードソースのないのにコントロールソースが
あるのは変でないですか?
当然
>変ですか?
だと思うのですが…

ただし、開く時のイベントでレコードソースをセットしているかもしれない
ですが。コードを提示できますか?
あと、「Implement_Date」ってどこかのフィールド名ですよね?

【8410】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/3(木) 12:03 -

引用なし
パスワード
   ▼クロ さん:
>ただし、開く時のイベントでレコードソースをセットしているかもしれない
>ですが。コードを提示できますか?
>あと、「Implement_Date」ってどこかのフィールド名ですよね?

これが出ました。
わたしはまず日付を表出させてみようと思っただけなのですが。
わたしのF_xxはF_Searchの複製でなくF_Searchのサブフォームの複製だったんですかね?

Private Sub Form_Open(Cancel As Integer)
  Dim strCriteria As String
  Dim Today

  Today = Now
  strCriteria = "SELECT tbl_UNIT.*, tbl_STAFF.*, tbl_CATEGORY.*, tbl_TRAINING.*, tbl_COURSE.*, tbl_STAFF_COURSE.* " & _
         "FROM tbl_UNIT, tbl_CATEGORY, tbl_TRAINING, tbl_STAFF, tbl_COURSE, tbl_STAFF_COURSE " & _
         "WHERE tbl_UNIT.Unit_ID = [tbl_STAFF].[Attached_Unit_Num] And tbl_CATEGORY.Category_ID = [tbl_TRAINING].[Attached_Category_Num] " & _
         "And tbl_COURSE.COURSE_ID = [tbl_STAFF_COURSE].[COURSE_NUM] And tbl_STAFF.Staff_ID = [tbl_STAFF_COURSE].[Staff_NUM] " & _
         "And tbl_TRAINING.Program_ID = [tbl_COURSE].[Training_Num] And tbl_UNIT.Unit_Status = 'valid' And tbl_STAFF.Staff_Status = 'valid' " & _
         "And tbl_TRAINING.Program_Status = 'valid' And tbl_COURSE.Training_Status = 'valid' And tbl_CATEGORY.Category_Status = 'valid' "
  
  If IsNull(Forms!F_Search!UnitName.Value) = False Then
    strCriteria = strCriteria & " AND tbl_UNIT.Unit_Name = '" & Forms!F_Search![UnitName] & "' "
  End If
  If IsNull(Forms!F_Search!StaffName.Value) = False Then
    strCriteria = strCriteria & " AND tbl_STAFF.Staff_Name = '" & Forms!F_Search![StaffName] & "' "
  End If
  If IsNull(Forms!F_Search!Category.Value) = False Then
    strCriteria = strCriteria & " AND tbl_CATEGORY.Category_Name = '" & Forms!F_Search![Category] & "' "
  End If
  If IsNull(Forms!F_Search!PgmName.Value) = False Then
    strCriteria = strCriteria & " AND tbl_Training.Program_Name = '" & Forms!F_Search![PgmName] & "' "
  End If
  
  strCriteria = strCriteria & " Order by "
  
  Select Case Forms!F_Search!Order.Value
    Case 1
    strCriteria = strCriteria & " tbl_UNIT.Unit_ID desc;"
    Case 2
    strCriteria = strCriteria & " tbl_STAFF.Staff_ID desc;"
    Case 3
    strCriteria = strCriteria & " tbl_CATEGORY.Category_ID desc; "
    Case 4
    strCriteria = strCriteria & " tbl_TRAINING.Program_ID desc;"
  End Select

  Me.RecordSource = strCriteria
  
End Sub

Implement_Dateは元々tbl_COURSEのフィールド名です。日付/時刻型です。

【8411】Re:フォームの値を表示させるようにレポー...
発言  クロ  - 06/8/3(木) 12:11 -

引用なし
パスワード
   フォームを開いたときにレコードソースをセットしてますね。
Forms!F_Searchも開いて、条件を入れてからF_xxxを開くその上で
クエリを開くとどうなりますか?

【8412】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/3(木) 12:18 -

引用なし
パスワード
   ▼クロ さん:
>フォームを開いたときにレコードソースをセットしてますね。
>Forms!F_Searchも開いて、条件を入れてからF_xxxを開くその上で
>クエリを開くとどうなりますか?
これがでました。

--------------------
| パラメーターの入力      
| Forms!F_XX!txtDT             
| ------------------    
|
| ------------------    
|               
| ---- ----------- 
| ok  キャンセル 
| ---- ----------- 
---------------------

okを押すと次に

--------------------
| パラメーターの入力      
| Implement_Date             
| ------------------    
|
| ------------------    
|               
| ---- ----------- 
| ok  キャンセル 
| ---- ----------- 
---------------------
が出てokを押すと
次に「式が正しく入力されていないか複雑すぎるため評価できません、式に複雑な要素があります、変数に式の一部を割り当て式を簡単にしてください」とでました。

【8413】Re:フォームの値を表示させるようにレポー...
発言  クロ  - 06/8/3(木) 12:25 -

引用なし
パスワード
   うーん。ワカラン...orz
どっかに再現できる最小限サンプルをアップできませんか?

【8414】Re:フォームの値を表示させるようにレポー...
発言  Gin_II  - 06/8/3(木) 13:23 -

引用なし
パスワード
   > Q_xxxを開き、テーブルの表示で、すべてのテーブルを追加しました。

必要なテーブルを追加して、必要なフィールドを選択してください。

複数のテーブルを使うのなら、クエリを使うことが必須ですので、
まずは、クエリできちんと目的のデータが表示できるようにしてください。

フォーム/レポートはその後です。

【8416】Re:フォームの値を表示させるようにレポー...
発言  にしもり  - 06/8/3(木) 13:35 -

引用なし
パスワード
   ▼クロ さん:
どこかにupできるところを準備してみます。
あまり経験がないのでちょっと日にちをください。
一刻を争うわけでないので。
本当にすみません。

【8418】Re:フォームの値を表示させるようにレポー...
発言  小僧  - 06/8/3(木) 14:10 -

引用なし
パスワード
   ▼にしもり さん、みなさま:
こんにちは。

[#8414] にてGin_IIさんが仰られておりますが、
レポートを作るにはまずクエリがきちんと出来ていなければいけません。

先のにしもりさんの投稿にてありましたコードより
SQL文を作ってみましたので
クエリのSQLビューに貼り付けて
フォームと同じ結果が返ってくるかどうか検証してみて下さい。

SELECT
tbl_UNIT.*,
tbl_STAFF.*,
tbl_CATEGORY.*,
tbl_TRAINING.*,
tbl_COURSE.*,
tbl_STAFF_COURSE.*
FROM
(tbl_CATEGORY
INNER JOIN tbl_TRAINING
ON tbl_CATEGORY.Category_ID = tbl_TRAINING.Attached_Category_Num)
INNER JOIN ((tbl_COURSE
INNER JOIN tbl_STAFF_COURSE
ON tbl_COURSE.COURSE_ID = tbl_STAFF_COURSE.COURSE_NUM)
INNER JOIN (tbl_UNIT
INNER JOIN tbl_STAFF
ON tbl_UNIT.Unit_ID = tbl_STAFF.Attached_Unit_Num)
ON tbl_STAFF_COURSE.Staff_NUM = tbl_STAFF.Staff_ID)
ON tbl_TRAINING.Program_ID = tbl_COURSE.COURSE_ID
WHERE
tbl_CATEGORY.Category_Name Like Nz([Forms]![F_Search]![Category],"*") AND
tbl_TRAINING.Program_Name Like Nz([Forms]![F_Search]![PgmName],"*") AND
tbl_UNIT.Unit_Name Like Nz([Forms]![F_Search]![UnitName],"*") AND
tbl_STAFF.Staff_Name Like Nz([Forms]![F_Search]![StaffName],"*") AND
tbl_UNIT.Unit_Status='valid' AND
tbl_STAFF.Staff_Status='valid' AND
tbl_TRAINING.Program_Status='valid' AND
tbl_COURSE.Training_Status='valid' AND
tbl_CATEGORY.Category_Status='valid';

上記クエリでお望みの結果が返ってくる様でしたら
次のステップへと進みやすくなるかと思われます。

【8419】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/3(木) 14:50 -

引用なし
パスワード
   ▼小僧 さん、Gin_IIさん:
ありがとうございます。

Q_xxには式1というフィールドしかありませんでした。レポートはクエリを作ってから、ですね。そのような意識は希薄でした。申し訳ございません。

で、おっしゃるように、Q_xxで、ためしにすべてのtblのすべてのフィールドを表示させるようにしました。が、やはり「式が正しく入力されていないか複雑すぎるため評価できません、式に複雑な要素があります、変数に式の一部を割り当て式を簡単にしてください」とでました。

tbl同士は結合していますが結合プロパティは「両方のテーブルの結合フィールドが同じ行だけを含める」です。それがいけないでしょうか。

【8420】Re:フォームの値を表示させるようにレポー...
発言  にしもり  - 06/8/3(木) 15:05 -

引用なし
パスワード
   ▼にしもり さん:
正直アップアップです。
どこかにアップしますので今しばらくお待ちください。
洒落ではございません。
そのような余裕はございません。

【8430】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/8(火) 1:32 -

引用なし
パスワード
   大変時間がかかり申し訳ありませんでした。
やっとアップできました。

http://nisimori.web.fc2.com/

他者の作ったMDBです。
これにわたしがコマンド72というのを加えようとしています。
フォームF_Searchを開きコマンド72を押すと、レポートReportが開くようにしたいのです。そのとき動くのはクエリReportのはずなのですが、先日来お聞きしているように、思いどおりに動きません。アドバイスよろしくお願いします。

なおF_xxとかR_xxとかはテストでわたしが作ったものでしたので削除しました。
tbl_UnitのUnit_ID1もテストでわたしが作ったものでしたので削除しました。

【8431】Re:フォームの値を表示させるようにレポー...
発言  クロ  - 06/8/8(火) 15:21 -

引用なし
パスワード
   サンプル拝見しましたが…
まず、「フォームを基にしたレポート」はあのままでは出ませんよ。
レポートのレコードソースとなるクエリとフォーム上でWHERE句を指定した
ソースとでは違いがあります。

それとパラメータについてはレポートの
メニュー>表示>並べ替え/グループ化のところで古いフィールド名を
指定しているから不要なパラメータを聞いてくるのでそこを変更した
ものにすればいいと思います。

が、各フィールドのコントロールソースが全部サブフォームのコントロールを
指定しても「フォームを基にしたレポート」にはなりません。
これは以前ワタシが提示した方法ではそのようにならないってことです。

で質問なのですが「Program_ID」の条件は何なのですか?
「フォームを基にしたレポート」であるのなら「Program_ID」の条件は
既に指定済みなのですが…

つまるところ何を出したいのかが見えてきません。

【8432】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/8(火) 16:10 -

引用なし
パスワード
   ▼クロ さん:
>
>で質問なのですが「Program_ID」の条件は何なのですか?
>「フォームを基にしたレポート」であるのなら「Program_ID」の条件は
>既に指定済みなのですが…
>
>つまるところ何を出したいのかが見えてきません。

こんにちは。
質問に的確に答えられるかわかりませんが。。

たとえばF_Searchを開いた状態でUnitNameにLegalを、CategoryにGeneralを、ProgramNameにMarket Overviewを選択したとします。
そしてSearchボタンを押すとLegal,TakedaTetsuya,General,MarketOverview,,09/03/02 0:00, 0.5, Nagashima_Shigeo, KTAと出ると思います。それをコマンド72を押すことによってそのままレポートReportに表出させたいと思ったのです。
たとえばそのときのMarket Overviewに対応するProgramIDは何か?というご質問でしたら、それは「1」ということになると思います。

お答えになっておりますでしょうか?

【8433】Re:フォームの値を表示させるようにレポー...
回答  クロ  - 06/8/8(火) 16:26 -

引用なし
パスワード
   現在のレポートのレコードソースにある「Report」を空欄にしてください。
詳細部分のテキストボックスのコンロールソースを左から
Implement_Date
Implement_Hours
Category_Name
Program_Name
Staff_Name
Unit_Name
Trainer_Name
としてください。

レポートの開く時のイベントにサブフォーム(F_SUB_LIST_RESULT)の
開く時のイベントに書いてあるコード
 Dim strCriteria As String
 Dim Today
<省略>
 Me.RecordSource = strCriteria
をコピペしてください。

これでどうでしょう?
少なくとも前レスに言われたことはできると思います。

【8434】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/8(火) 16:42 -

引用なし
パスワード
   ▼クロ さん:
>現在のレポートのレコードソースにある「Report」を空欄にしてください。
しました。クエリReportはこの際必要なかった、ということですね?

>をコピペしてください。
しました。がコマンド72を実行してもどの項目も#Name?となってしまいます。どうすればよろしいでしょうか?

【8435】Re:フォームの値を表示させるようにレポー...
発言  クロ  - 06/8/8(火) 16:44 -

引用なし
パスワード
   ▼にしもり さん:
レポートの各テキストのコントロールソースは変えましたか?

【8436】Re:フォームの値を表示させるようにレポー...
質問  にしもり  - 06/8/8(火) 16:53 -

引用なし
パスワード
   ▼クロ さん:

>レポートの各テキストのコントロールソースは変えましたか?
変えました。確認も済ませました。
ですが、まだできません。。

【8437】Re:フォームの値を表示させるようにレポー...
回答  通りすがり?  - 06/8/8(火) 16:54 -

引用なし
パスワード
   >しました。クエリReportはこの際必要なかった、ということですね?

クエリのReportを使いたいなら

>レポートの開く時のイベントにサブフォーム(F_SUB_LIST_RESULT)の
>開く時のイベントに書いてあるコード
> Dim strCriteria As String
> Dim Today
><省略>
> Me.RecordSource = strCriteria
>をコピペしてください。

をやめて

サブフォーム(F_SUB_LIST_RESULT)の開く時のイベントに書いてあるコード
 Dim strCriteria As String
 Dim Today
<省略>
 Me.RecordSource = strCriteria
 Application.CurrentDb.QueryDefs("Report").SQL = strCriteria ←これを追加

レポートのレコードソースにある「Report」を消したのなら追加

あとは、レポートのコントロールソースにクエリの項目を選択してやればOK

ようは、レコードソースにクエリを使うか直接SQLを書くかの違い。

【8438】Re:フォームの値を表示させるようにレポー...
発言  にしもり  - 06/8/8(火) 16:57 -

引用なし
パスワード
   ▼通りすがり? さん:

>ようは、レコードソースにクエリを使うか直接SQLを書くかの違い。
貴重なアドバイスありがとうございます。
勉強中ゆえ、大変参考になります。
盆休みに勉強しようと思っています。

【8439】Re:フォームの値を表示させるようにレポー...
発言  クロ  - 06/8/8(火) 16:59 -

引用なし
パスワード
   こっちでは出来てますよ。
http://www.accessclub.jp/fileup/ss1_board/index.html
ここをお借りしてアップしました。拾ってたら速攻削除しますので
教えてください。

【8440】Re:フォームの値を表示させるようにレポー...
発言  にしもり  - 06/8/8(火) 17:06 -

引用なし
パスワード
   ▼クロ さん:
534_1zipピックアップ済みです。

【8441】Re:フォームの値を表示させるようにレポー...
お礼  にしもり  - 06/8/8(火) 17:10 -

引用なし
パスワード
   ▼クロ さん:
うーん、なんでできるんですかね。
比べたところ同じなんですが。
よく調べてみます。
とりあえずありがとうございます。
大・大感謝でございます。

1177 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078216
(SS)C-BOARD v3.8 is Free