Access VBA質問箱 IV

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

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


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

【10604】Re:表形式⇒単票形式を呼出す方法
お礼  初心者  - 08/10/17(金) 11:21 -

引用なし
パスワード
   ▼Gin_II様

大変勉強になりました。

(3)を理解していなかったようです。

ありがとうございました。
・ツリー全体表示

【10603】Re:表形式⇒単票形式を呼出す方法
回答  Gin_II  - 08/10/15(水) 20:47 -

引用なし
パスワード
   > "商品番号='Me!商品番号'"ここまでは理解できました。
> なぜ&が入るのか、&の前にダブルクォーテーションが入るのか?
> ん〜わかりません。


Where 条件を設定する場合、いくつかの決まりごとがあります。

フィールド名 = 値

(1)「フィールド名」の型によって、前後に記号を入れる
 テキスト型:シングルクォーテーション(')
 日付/時刻型:いげた(#)

(2)文字列として指定する必要があるため、全体を引用符(")でくくる

(3)VBAの変数(コントロールを参照する場合を含む)は、引用符の外にだす

(4)文字列を結合するためには、& を使う

この決まりごとを踏まえながら。


フォーム上のテキストボックス(Me!商品番号)に、1234 が入っているとします。
で、商品番号フィールドは、テキスト型。

その場合、最終的に必要な形式として、

"商品番号 = '1234'"   ※(1)・(2)の決まりごと

で、1234 の部分は、変数にしたい。

"商品番号 = 'Me!商品番号'"

としたいところですが、(3)・(4)の決まりごとがあるため、

"商品番号 = '" & Me!商品番号 & "'"

となります。
・ツリー全体表示

【10602】Re:表形式⇒単票形式を呼出す方法
質問  [名前なし]  - 08/10/14(火) 11:30 -

引用なし
パスワード
   ▼Gin_II様

ご回答ありがとうございます。
大変参考になりました。

私が購入した参考書の紹介をしているサイトでしたw⇒魔法の開発工房

ただ、理解できたかというとだめでした。
どうしてもこの部分⇒ "商品番号= '" & Me!商品番号 & "'"理解できません。

"商品番号='Me!商品番号'"ここまでは理解できました。
なぜ&が入るのか、&の前にダブルクォーテーションが入るのか?
ん〜わかりません。

ご教示ください。
・ツリー全体表示

【10600】Re:条件付き書式?
お礼  AAA  - 08/10/10(金) 12:31 -

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

>半角カナ以外にも、
> 全角英数
> スペース
> アンダーバー以外の記号
>などについても、オブジェクト名などには使わないようにしてください。


>>気をつけてみます。ご丁寧にありがとうございました。
・ツリー全体表示

【10599】Re:条件付き書式?
発言  Gin_II  - 08/10/10(金) 10:02 -

引用なし
パスワード
   > >と、今回の質問とはまったく関係ありませんが、半角カナなどをAccessの
> >オブジェクト名とかでも使っているのなら、使わないようにした方がいいですよ。
> >
> >Web上でも同様ですが。
>
> オブジェクトに半角で作ってるものが何個かあるかもしれなので見てみます。
> コンパイルエラーとかになる原因ですかね?よく出るんですよ・・・

コンパイルエラーとかは、また違う原因だとは思いますが、mdbファイル破損の
リスクは高くなると思います。

半角カナ以外にも、
 全角英数
 スペース
 アンダーバー以外の記号
などについても、オブジェクト名などには使わないようにしてください。
・ツリー全体表示

【10598】Re:条件付き書式?
お礼  AAA  - 08/10/10(金) 5:46 -

引用なし
パスワード
   ▼Gin_II さん:
>> 変更した日付でデータを拾い、上記テーブルデータを全て斜体の太字もしくは網掛けができればやりたいなと思うんですができるのでしょうか?
>
>変更したデータしかないのであれば、変更用のレポートを作成してもよさそうですが。
>
>>>一覧で出力するので(決められた並び通り)変更したものだけ出すのはダメなんですよ。
>
>> 一つの項目(例えば機械コードのみ)なら条件付き書式で出来そうなんですが。項目全てにっていうのはできるのでしょうか?
>
>すべての項目(コントロール)で、同じように条件付書式を設定すればいいです。
>それが面倒ということであれば、VBAを使うことになると思います。
>
>>>VBAの方が楽そうですよね・・・これを機にVBAも勉強したいんですけどね(笑)


>と、今回の質問とはまったく関係ありませんが、半角カナなどをAccessの
>オブジェクト名とかでも使っているのなら、使わないようにした方がいいですよ。
>
>Web上でも同様ですが。

>>>オブジェクトに半角で作ってるものが何個かあるかもしれなので見てみます。
コンパイルエラーとかになる原因ですかね?よく出るんですよ・・・

仕事の合間にちょっとやってみますね。
ありがとうございました。
・ツリー全体表示

【10597】Re:条件付き書式?
回答  Gin_II  - 08/10/9(木) 23:04 -

引用なし
パスワード
   > 変更した日付でデータを拾い、上記テーブルデータを全て斜体の太字もしくは網掛けができればやりたいなと思うんですができるのでしょうか?

変更したデータしかないのであれば、変更用のレポートを作成してもよさそうですが。


> 一つの項目(例えば機械コードのみ)なら条件付き書式で出来そうなんですが。項目全てにっていうのはできるのでしょうか?

すべての項目(コントロール)で、同じように条件付書式を設定すればいいです。
それが面倒ということであれば、VBAを使うことになると思います。


と、今回の質問とはまったく関係ありませんが、半角カナなどをAccessの
オブジェクト名とかでも使っているのなら、使わないようにした方がいいですよ。

Web上でも同様ですが。
・ツリー全体表示

【10596】条件付き書式?
質問  AAA  - 08/10/9(木) 20:46 -

引用なし
パスワード
   設備管理台帳というものを作成してます。
(個々の機械の型式や製造No.や、購入先、購入日、後廃却や遊休にしたりと管理する為)

テーブルには、
機械コード(主キー)、名称、発注先、製造先、購入月日、製造月日、型式、機番、設置場所、移動No.(廃却や遊休‥選択する)、設備登録日(新規などの設備を登録した日付)、設備変更日(変更した日付)を項目として作ってます。

フォームは単票形式で作成!!

レポートで台帳を出力する時なんですが、変更があった箇所のページを出しているんですけど、どこが変わったか自分はわかるんですけど他の人は分らないので、
変更した日付でデータを拾い、上記テーブルデータを全て斜体の太字もしくは網掛けができればやりたいなと思うんですができるのでしょうか?一つの項目(例えば機械コードのみ)なら条件付き書式で出来そうなんですが。項目全てにっていうのはできるのでしょうか?
・ツリー全体表示

【10595】Re:表形式⇒単票形式を呼出す方法
回答  Gin_II  - 08/10/9(木) 17:15 -

引用なし
パスワード
   > DoCmd.OpenForm "出庫処理", , , "商品番号= '" & Me!商品番号 & "'"

構文
expression.OpenForm(FormName, View, FilterName, WhereCondition, DataMode, WindowMode, OpenArgs)

となっています。で、

> "商品番号= '" & Me!商品番号 & "'"

この部分は、第4引数なので、WhereCondition 引数を指定しています。

WhereCondition
省略可能です。バリアント型 (Variant) の値を指定します。有効な SQL WHERE 句を
文字列式で指定します。ただし、WHERE という語を指定する必要はありません。

とヘルプに記述があるとおり、抽出するための条件を記述しています。

で、この記述方法については、

魔法使いの開発工房
http://www.mahoutsukaino.com/

にある、

MS-Access2000超入門部屋--Where文を書いてみる
http://www.mahoutsukaino.com/ac/ac2000/ac2000/wherebun/w01.htm

こちらの記事を熟読してください。
・ツリー全体表示

【10594】Re:表形式⇒単票形式を呼出す方法
回答  neptune  - 08/10/9(木) 17:10 -

引用なし
パスワード
   ▼エッジ さん:
追記が入ってますね。


>【追記】
>DoCmd.OpenForm "出庫処理", , , "商品番号= '" & Me!商品番号 & "'"
>上記の構文の詳細をやさしくご教示ください。
とりあえず第4引数ならここはWHERE句をそっくりそのまま書いて、
WHEREを取り去ったものと同じ内容になります。

やさしくは・・・私には無理かも。m(_ _)m
・ツリー全体表示

【10593】Re:表形式⇒単票形式を呼出す方法
発言  neptune  - 08/10/9(木) 17:05 -

引用なし
パスワード
   ▼エッジ さん:
こんにちは

長い間使ってないので多分私には詳しくは説明できませんが、
とりあえずMSDNを読んでみては如何ですか?
ht tp://msdn.microsoft.com/ja-jp/library/cc346827.aspx
かなり詳細部分まで詳しく書いていますから、ここを読んだ上で
さらに具体的に質問をされると、もっと良いアドバイスを受けられると思います。

※多少はバージョンにより差があるかもしれませんが、説明自体は
同じか殆ど同じと思います。

>表形式⇒単票形式を呼出す方法
だけに限っていうと、自信はないのですが、
多分呼び出される方のformにそういう設定をするか表示前にそういう
細工をするとか、form内のloadイベント時にそういう細工をするのかな
と思います。(だいぶ忘れているので多分です。^ ^;;)

openform メソッドではそういう機能はなさそう。?
・ツリー全体表示

【10592】Re:表形式⇒単票形式を呼出す方法
質問  エッジ  - 08/10/9(木) 17:01 -

引用なし
パスワード
   ▼エッジ さん:
>題名のとおりなのですが、表形式ファームから、出庫ボタンを押下すると、
>出庫処理フォーム(単票形式)がでてくる。
>
>docmd.openform ,"出庫処理",,,・・・
>
>・・・の部分が理解できません。
>詳しく説明していただけないでしょうか?
>よろしくお願いいたします。

【追記】
DoCmd.OpenForm "出庫処理", , , "商品番号= '" & Me!商品番号 & "'"
上記の構文の詳細をやさしくご教示ください。
・ツリー全体表示

【10591】表形式⇒単票形式を呼出す方法
質問  エッジ  - 08/10/9(木) 15:41 -

引用なし
パスワード
   題名のとおりなのですが、表形式ファームから、出庫ボタンを押下すると、
出庫処理フォーム(単票形式)がでてくる。

docmd.openform ,"出庫処理",,,・・・

・・・の部分が理解できません。
詳しく説明していただけないでしょうか?
よろしくお願いいたします。
・ツリー全体表示

【10590】Re:初心者の疑問
お礼  エッジ  - 08/10/9(木) 15:37 -

引用なし
パスワード
   大変参考になりました。

ありがとうございます。
・ツリー全体表示

【10589】Re:初心者の疑問
回答  Gin_II  - 08/10/8(水) 23:05 -

引用なし
パスワード
   >参考書に記載なかったので、こちらでご質問させて頂きます。

ヘルプを確認してみましょう ^^;

>■DoCmd.GoToControl "数量"
>■Me.数量.SetFocus
>
>上記2文の違いをご教示ください。

基本的には、コントロールにフォーカスを移す命令なので同じものになります。

ただ、ヘルプに

Visual Basic でフォーカスを移動する場合、特にサブフォームやネストされた
サブフォームのコントロールに移動するときは、SetFocus メソッドを使うことを
お勧めします。
SetFocus メソッドでは、移動先のコントロールを指定するのに完全な構文を
使うことができます。

という記載がありますね。
VBAで記述する場合は、SetFocus メソッドだけで問題ないと思います。
・ツリー全体表示

【10588】初心者の疑問
質問  エッジ  - 08/10/8(水) 21:35 -

引用なし
パスワード
   すいません。参考書に記載なかったので、こちらでご質問させて頂きます。

■DoCmd.GoToControl "数量"

■Me.数量.SetFocus

上記2文の違いをご教示ください。

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

【10587】Re:サブフォームのコントロール名の記述...
お礼  RabiRabi  - 08/10/3(金) 12:04 -

引用なし
パスワード
   Gin_II さん、どうもありがとうございました。
サブフォーム名まではあまり意識していなかったです。
確かに名前変ですもんね(^^ゞ
・ツリー全体表示

【10586】Re:サブフォームのコントロール名の記述...
回答  Gin_II  - 08/10/3(金) 11:48 -

引用なし
パスワード
   >サブフォームコントロール名とは何にあたりますか?
>サブフォームのプロパティを開くと、
> 名前:T○× サブフォーム1
> ソースオブジェクト:Fxx入力 サブフォーム
>となっており、

名前プロパティを使う必要があります。
名前の付け方に問題がありますね。

そのままの名前であれば、

With Forms!メインフォーム名![T○× サブフォーム1].Form!コンボ1

のように、してください。

名前付けの規則として、

・全角英数を使わない
・半角カナを使わない
・アンダーバー以外の記号を使わない
・スペースを使わない

などがあります。
・ツリー全体表示

【10585】Re:サブフォームのコントロール名の記述...
質問  RabiRabi  - 08/10/3(金) 11:21 -

引用なし
パスワード
   Gin_II さん、ありがとうございます。
もう少しお願いします。

サブフォームコントロール名とは何にあたりますか?
サブフォームのプロパティを開くと、
 名前:T○× サブフォーム1
 ソースオブジェクト:Fxx入力 サブフォーム
となっており、

With Forms!メインフォーム名!T○× サブフォーム1.Form!コンボ1

With Forms!メインフォーム名!Fxx入力 サブフォーム.Form!コンボ1
もエラーになります。


▼Gin_II さん:
>>サブフォームにあるコンボボックスを呼び出すにはどうしたらよいのでしょうか?
>
>Forms!フォーム名!サブフォームコントロール名.Form!コントロール名
>
>のように記述する必要があります。
>サブフォームコントロール名は、親フォームをデザインビューで開いて、サブフォームのプロパティに表示される、「名前」を使ってください。
>
>ただし、そのフォームのイベントで使う場合は、Me を使うことができますので、
>
>>1.
>>  With Forms!メインフォーム.コンボ1
>With Me!コンボ1
>>    .Value = ""
>>    .RowSource = ソース変数
>>  End With
>>
>>2.
>>  With Forms!メインフォーム サブフォーム.コンボ1
>With Me!サブフォームコントロール名.Form!コンボ1
>
>>    .Value = ""
>>    .RowSource = ソース変数
>>  End With
>
>としてもいいですね。
>
>ちなみに、サブフォーム側のイベントから、親フォームのコントロールを
>参照する場合は、
>
>Me.Parent!コントロール名
>
>のようにします。
・ツリー全体表示

【10584】Re:サブフォームのコントロール名の記述...
回答  Gin_II  - 08/10/3(金) 11:04 -

引用なし
パスワード
   >サブフォームにあるコンボボックスを呼び出すにはどうしたらよいのでしょうか?

Forms!フォーム名!サブフォームコントロール名.Form!コントロール名

のように記述する必要があります。
サブフォームコントロール名は、親フォームをデザインビューで開いて、サブフォームのプロパティに表示される、「名前」を使ってください。

ただし、そのフォームのイベントで使う場合は、Me を使うことができますので、

>1.
>  With Forms!メインフォーム.コンボ1
With Me!コンボ1
>    .Value = ""
>    .RowSource = ソース変数
>  End With
>
>2.
>  With Forms!メインフォーム サブフォーム.コンボ1
With Me!サブフォームコントロール名.Form!コンボ1

>    .Value = ""
>    .RowSource = ソース変数
>  End With

としてもいいですね。

ちなみに、サブフォーム側のイベントから、親フォームのコントロールを
参照する場合は、

Me.Parent!コントロール名

のようにします。
・ツリー全体表示

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