Access VBA質問箱 IV

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

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


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

【5499】フォームに貼り付けた、クロス集計の画面...
質問  サチチ  - 05/6/24(金) 10:35 -

引用なし
パスワード
   こんにちは。
以前、作成していたものなのですが、年齢等のクロス集計をして、
そのクロス集計をサブフォームとして貼り付けたのですが、
以前はデータを入力されていて、見るとOKだったのですが、
今回データをカラにしたら(他事業所に送る為)、
クロス集計の画面が表示されなくなりました。フォームは分析です。

クエリ画面で、年齢クロス集計は、開くと表示されているのですが、
サブフォームの分析画面を開くと、
'年齢クロス集計,バイト' を有効なフィールド名、または式として認識できません
と出てしまいます。

どうすれば、更新した時など(変更時など)、この分析フォームで開きますか?
クエリのクロス集計では、増えた場合もきちんと追加できてます。

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

【5498】Re:リストボックス
発言  小僧  - 05/6/24(金) 1:20 -

引用なし
パスワード
   ▼アヤ さん:
こんばんは。

>Forms!フォームA.社員番号=Me.社員一覧
>Forms!フォームA.社員名=T社員マスタ
>   ・
>   ・
>   Forms!フォームA。Requery
>   Docmd.Close

さきほどから状況が進まないのですが…。

ご提示されたコードからは

フォームAに社員番号と社員名というコントロールがあって
フォームBの社員一覧というコントロールからフォームAの社員番号へ
T社員マスタという変数(?)からフォームAの社員名へ
値を代入している

事しか読み取れないです。

ただ…フォームBの「Close」イベント発生時に
フォームAの社員コードに値が代入されたかどうかを確認して
他のコントロールを使用可能にするかどうかの処理を加えてみれば
いけそうな気がします。
・ツリー全体表示

【5497】Re:リストボックス
質問  アヤ  - 05/6/23(木) 18:24 -

引用なし
パスワード
   ▼小僧 さん:
>▼アヤ さん:
>こんにちは。
>
>>LEN(社員CD)=0の結果になります
>
>とご提示されても、こちらは突如でてきた「社員CD」が何なのか解りません。
>
>↑で提示させて頂いた
>
>>>(ここのタイミングは?)
>
>のところで何を持ってフォームBを閉じているのか、
>VBAで処理をしているのであればどういったコードであるかを
>ご提示して頂くと回答がつきやすくなるかもしれません。

小僧さん。 説明不足ですみません。

フォームBで次のようなコーデで記述しています

   Forms!フォームA.社員番号=Me.社員一覧
   Forms!フォームA.社員名=T社員マスタ
   ・
   ・
   Forms!フォームA。Requery
   Docmd.Close
よろしくおねがいします
・ツリー全体表示

【5496】Re:更新日時のSET方法
発言  小僧  - 05/6/23(木) 17:33 -

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

>レコードの中のいずれかのフィールドに変更があった場合、

レコードを更新するにも色々方法がありますよね。

A) 連結フォームの値を変える
B) SQL(クエリ)を発行
C) VBAでADOやDAOで操作
D) 直接テーブルを開いて値を代入

D) 以外であれば、各々の処理の際に更新日時フィールドに
値を格納する事は可能だと思います。
・ツリー全体表示

【5495】Re:リストボックス
発言  小僧  - 05/6/23(木) 17:28 -

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

>LEN(社員CD)=0の結果になります

とご提示されても、こちらは突如でてきた「社員CD」が何なのか解りません。

↑で提示させて頂いた

>>(ここのタイミングは?)

のところで何を持ってフォームBを閉じているのか、
VBAで処理をしているのであればどういったコードであるかを
ご提示して頂くと回答がつきやすくなるかもしれません。
・ツリー全体表示

【5494】更新日時のSET方法
質問  pinetree  - 05/6/23(木) 17:09 -

引用なし
パスワード
   レコードの中のいずれかのフィールドに変更があった場合、
同じレコードの中にある更新日時のフィールドをマシンデートで置き換えたい
のですが、どのような方法がありますかご教示ください。
ねらいはレコード単位で最終更新日はいつかを知りたいためです。
・ツリー全体表示

【5493】Re:リストボックス
質問  アヤ  - 05/6/23(木) 16:38 -

引用なし
パスワード
   ▼小僧 さん:
>▼アヤ さん,、かみちゃん さん:
>おはようございます。
>
>フォームAの社員番号(テキストボックス?)をダブルクリック。
>↓
>フォームBが起動される。
>↓
>フォームBにあるリストボックスから社員を選ぶ。
>↓
>(ここのタイミングは?)
>↓
>フォームAの社員番号に選ばれた社員の社員番号が入り、
>その他の項目が使用可能になる。
>
ありがとうございます。
でも、上手くいかないのです。
正確に申し上げますと、1回目は上手くできますが、2回、3回と繰返しテストをしますと 社員コードがセットされているにもかかわらず LEN(社員CD)=0の結果になります。


>こんな感じの流れなのでしょうか?
>
>それであれば
>
>選択しないでフォームBを閉じる → 社員番号が空白
>選択してからフォームBを閉じる → 社員番号が入っている
>
>で判断できると思うのですがいかがでしょう?
・ツリー全体表示

【5492】Re:テーブル作成
お礼  サチチ  - 05/6/23(木) 16:26 -

引用なし
パスワード
   ▼クロ さん:
>そういうことですね。
>そうすれば、同じ薬でも何処の会社のものか判定できますでしょ?

なるほど!!OKです。
では、クエリーの作成をしていきます。まだ、何を抽出するかなど
固まってないので、また疑問がでましたら、違う題名にて、ご質問を
出します。

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

【5491】Re:テーブル作成
発言  クロ  - 05/6/23(木) 16:21 -

引用なし
パスワード
   そういうことですね。
そうすれば、同じ薬でも何処の会社のものか判定できますでしょ?
・ツリー全体表示

【5490】Re:テーブル作成
質問  サチチ  - 05/6/23(木) 16:15 -

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

>商品テーブル
>商品ID・商品名・種類・一般名・単位・原価・薬価・底値・商品分類ID・製薬会社ID
>
>としたなら「製薬会社ID」でフジサワなのか大正製薬なのか後は他社なのか判定できると思います。

初心者なので、分らないのですが、となると、例えば
商品ID  商品名  種類  一般名  単位  原価  薬価  底値  商品分類ID  製薬会社ID
1   ポララミン   内服   ホララ   1個   100   50   50   222   2(大正製薬)
1   ポララミン   内服   ホララ   1個   100   80   70   222   3(藤沢製薬)

の様に、同じ薬がある場合、薬価と底値・製薬会社IDを変えれば、いいのですね?
・ツリー全体表示

【5489】Re:テーブル作成
回答  クロ  - 05/6/23(木) 15:51 -

引用なし
パスワード
   横レス失礼します。

商品テーブル
商品ID・商品名・種類・一般名・単位・原価・薬価・底値・商品分類ID・製薬会社ID

としたなら「製薬会社ID」でフジサワなのか大正製薬なのか後は他社なのか判定でき
ると思います。

商品名は固有名詞なるでしょうし、一般名も然りこの薬品の同一性を何処で判断するか
に依りますね。
例えば「種類」に「感冒薬」と入っていたとして
クエリで抽出条件に"感冒薬"とすれば全感冒薬レコードが見られます。
次に同一線上の「薬価」の抽出条件に
=DMin("薬価","商品テーブル")
とすればいいかと思います。
・ツリー全体表示

【5488】Re:テーブル作成
質問  サチチ  - 05/6/23(木) 13:17 -

引用なし
パスワード
   ▼かみちゃん さん:
うまく説明できてなく、スミマセン。

>> 薬局で、薬品をドコに商品を発注して、価格はいくらかというのを
>> 作成しています。安い製薬会社に発注がしたいのです。
>
>基本的なところを教えてください。
>これは、同じ商品IDで異なる製薬会社IDがあり、そのうち一番
>安い薬価?は、どれか?ということでしょうか?

そうです!!

>そのときに同じ薬価?があれば、どうするのですか?

同じ価格があれば、こちらの薬局で決めますので、選択できる様に
したいです。
こんな感じかしら?と思ってます。
フォームか何かで3つの製薬会社が比較でき、
(比較できる、これだけのフォーム)そこを見ながら、
発注していき、最後には、ドコに何を発注したかが分ればいいな
と思ってます。

>あと、製薬会社ごとにテーブルをわける理由は何ですか?

・・・いや、これの作り方がわからなかったので、分けたのですが・・・。
やはり1つでOKなんですね!ここを教えて下さい!
お願いします!!
・ツリー全体表示

【5487】Re:テーブル作成
発言  かみちゃん E-MAIL  - 05/6/23(木) 13:01 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 薬局で、薬品をドコに商品を発注して、価格はいくらかというのを
> 作成しています。安い製薬会社に発注がしたいのです。

基本的なところを教えてください。
これは、同じ商品IDで異なる製薬会社IDがあり、そのうち一番
安い薬価?は、どれか?ということでしょうか?
そのときに同じ薬価?があれば、どうするのですか?
あと、製薬会社ごとにテーブルをわける理由は何ですか?
・ツリー全体表示

【5486】テーブル作成
質問  サチチ  - 05/6/23(木) 11:58 -

引用なし
パスワード
   基本的な事を教えて下さい。教科書本を参考に初めから作成しています。

薬局で、薬品をドコに商品を発注して、価格はいくらかというのを
作成しています。安い製薬会社に発注がしたいのです。

・製薬会社は3つ---今後増えるかもしれません
 ★ただし、製薬会社によって、薬の単価が違います。
  ここをなんとかしたいのです。

今、作成しているテーブルを確認していただけますか?
●T製薬会社−−製薬会社ID・会社名・住所・TEL・担当者
●T注文−−注文日・製薬会社ID・商品ID・数量
●T藤沢商品−−商品ID・商品名・種類・一般名・単位・原価・薬価・底値
        ・商品分類ID・製薬会社ID
●T大正商品−−(上記と同じ・薬価が変わる)
●T商品分類−−商品分類ID・商品分類

としています。これでOKなのでしょうか?
ただ、●T製薬会社が増えると(今3つですが・・・)、●T○○商品として
作成し、リレーションを組んで・・・となってしまいます。

製薬会社によって、薬の単価が違う場合は、どうすればいいでしょうか?
薬価は、1年ごとによって、変動します。これは、クエリでやろうと
思っていますが、まずは基本より、ご教授願います。
・ツリー全体表示

【5485】Re:リストボックス
発言  小僧  - 05/6/23(木) 9:45 -

引用なし
パスワード
   ▼アヤ さん,、かみちゃん さん:
おはようございます。

フォームAの社員番号(テキストボックス?)をダブルクリック。

フォームBが起動される。

フォームBにあるリストボックスから社員を選ぶ。

(ここのタイミングは?)

フォームAの社員番号に選ばれた社員の社員番号が入り、
その他の項目が使用可能になる。

こんな感じの流れなのでしょうか?

それであれば

選択しないでフォームBを閉じる → 社員番号が空白
選択してからフォームBを閉じる → 社員番号が入っている

で判断できると思うのですがいかがでしょう?
・ツリー全体表示

【5484】Re:リストボックス
質問  アヤ  - 05/6/23(木) 9:16 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>フォームAの社員番号をダブルクリックして社員一覧のある(リストボックス)
>>フォームBを表示し、どれか社員を選択するか、選択を中止して元のフォーム
>>Aへ戻った場合に、
>>フォームAの処理で 社員を選択して復帰したのか、選択を中止して復帰したの
>>かを判断する方法
>
>日本語の表現の問題かもしれませんが、確認させてください。
>「フォームAの処理で社員を選択して復帰したのか、選択を中止して復帰したの
>か」は、「フォームAの処理において、フォームBで社員を選択して復帰したの
>か、選択を中止して復帰したのか」ということなのでしょうか?
>なぜなら、フォームAは社員番号をダブルクリックして、いったんは、フォーム
>Bを表示しているのですよね?


すみません。復帰後のフォームAで 選択して復帰したか、どうかをを判断したいのですが。 また、続きのしょりとしては、社員を選択できたなら 社員名とか住所とかの項目を使用 可に設定したいのです。
こんな説明でおわかりになりますか?
・ツリー全体表示

【5483】Re:リストボックス
発言  かみちゃん  - 05/6/22(水) 19:52 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>フォームAの社員番号をダブルクリックして社員一覧のある(リストボックス)
>フォームBを表示し、どれか社員を選択するか、選択を中止して元のフォーム
>Aへ戻った場合に、
>フォームAの処理で 社員を選択して復帰したのか、選択を中止して復帰したの
>かを判断する方法

日本語の表現の問題かもしれませんが、確認させてください。
「フォームAの処理で社員を選択して復帰したのか、選択を中止して復帰したの
か」は、「フォームAの処理において、フォームBで社員を選択して復帰したの
か、選択を中止して復帰したのか」ということなのでしょうか?
なぜなら、フォームAは社員番号をダブルクリックして、いったんは、フォーム
Bを表示しているのですよね?
・ツリー全体表示

【5482】リストボックス
質問  アヤ  - 05/6/22(水) 19:03 -

引用なし
パスワード
   フォームAの社員番号をダブルクリックして社員一覧のある(リストボックス)フォームBを表示し、どれか社員を選択するか、選択を中止して元のフォームAへ戻った場合に、
フォームAの処理で 社員を選択して復帰したのか、選択を中止して復帰したのかを判断する方法を どなたか教えて下さいませんでしょうか お願いします。
・ツリー全体表示

【5481】Re:ページ計のあるレポートの作成について
お礼  あおぎん  - 05/6/22(水) 17:32 -

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


>最初のページの上に表示されるのは「レポートヘッダー」
>最後のページの下に表示されるのは「レポートフッター」
>
>でなく、1ページ目のフッターに表示させたい、と言う事ですよね?

ごめんなさい。
慌てるあまり
ヘッダーとフッター、ページとレポートを混同してました。
おっしゃるとおりで、1ページ目のフッターに表示させたかったのです。

で、おっしゃるとおりにしたら、ページ計、レポート計ともに
うまくいきました。

本やヘルプを見てもわからず
すがる思いで投稿したのですが、
丁寧に教えていただきほんとうに助かりました。
ほんとうにありがとうございました。
・ツリー全体表示

【5480】Re:テーブルの作成方法
回答  小僧  - 05/6/22(水) 17:20 -

引用なし
パスワード
   ▼小僧 さん:
DAOでなんとかできました。

※要参照設定 Microsoft DAO x.x Object Library

Sub DAOで処理()
  Dim tdfs As DAO.TableDefs
  Dim tdf As DAO.TableDef
  Dim flds As DAO.Fields
  Dim fld As DAO.Field
  Dim TName As String
  Dim FName As String
  
  TName = "T_Test"
  FName = "可否"
  
  Set tdf = CurrentDb.CreateTableDef(TName)

  With tdf
    .Fields.Append .CreateField("備考", dbText, 50)
    .Fields.Append .CreateField("配布週", dbText, 255)
    .Fields.Append .CreateField("回収期限", dbText, 255)
    .Fields.Append .CreateField(FName, dbBoolean)
  End With
  
  CurrentDb.TableDefs.Append tdf

  Set tdfs = CurrentDb.TableDefs
  Set tdf = tdfs(TName)
  Set flds = tdf.Fields
  Set fld = flds(FName)
    fld.Properties.Append fld.CreateProperty _
             ("DisplayControl", dbInteger, acCheckBox, True)
  Set fld = Nothing: Set flds = Nothing
  Set tdf = Nothing: Set tdfs = Nothing

End Sub
・ツリー全体表示

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