Access VBA質問箱 IV

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

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


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

【6030】Re:オブジェクトのコピー
発言  小僧  - 05/8/26(金) 9:29 -

引用なし
パスワード
   ▼リキラリアット さん:
おはようございます。

別mdb から 自mdb へのコピーが可能 (インポート)
自mdb から 別mdb へのコピーが可能 (エクスポート)

であれば、

別mdb から 自mdb を通じて 他mdb にオブジェクトを
コピーできると思うのですが…。

的を外していたらすみません。
・ツリー全体表示

【6029】Re:毎年の集計について
質問  サチチ  - 05/8/26(金) 9:29 -

引用なし
パスワード
   ▼小僧 さん:
おはようございます!!昨日より、長々ご指導願います。

>こちらが再現されないですね。(Ac97 と Ac2002で確認)
残念です。こちらは、Acs202です。

>一度 SQL を記載して頂けませんでしょうか

TRANSFORM Count(T_疾病管理.ID) AS 人数
SELECT T_疾病管理.診断名, ms_msg
FROM T_疾病管理
GROUP BY T_疾病管理.診断名, ms_msg
PIVOT 1+DateDiff('yyyy',[年度を入力] & '/01/01',CDate(Left(T_疾病管理.管理開始,4) & ' /01/01')) & '年目' In ('1年目','2年目','3年目');

↑クエリ3年です。貼り付けさせていただきました。
よろしくお願いします。
・ツリー全体表示

【6028】Re:テーブルのレコード重複チェック方法?
回答  小僧  - 05/8/26(金) 9:20 -

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

抽出だけで良いのでしたら

SELECT テーブルA.*
FROM [
SELECT テーブルA.A, テーブルA.B, テーブルA.C
FROM テーブルA
GROUP BY テーブルA.A, テーブルA.B, テーブルA.C
HAVING (Count(テーブルA.D))>1
]. AS P INNER JOIN テーブルA
ON (P.A = テーブルA.A) AND (P.B = テーブルA.B) AND (P.C = テーブルA.C);

こんな感じですかね…。
・ツリー全体表示

【6027】Re:検索用のフォーム作成
発言  小僧  - 05/8/26(金) 9:03 -

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

フォームに配置しているコントロールの名前のせいだと思うのですが…。

もう一度確認させて頂きたいのですが、

検索用のコンボボックス:
「cmb年」、「cmb月」、「cmb種別」 → フォームヘッダー

結果が表示されるテキストボックス:
「年」「月」「種別」  →  詳細

で間違いありませんよね?
・ツリー全体表示

【6026】Re:クエリの抽出条件
回答  まっち  - 05/8/26(金) 8:46 -

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

>>「グラフ期間」フォームにある[開始日]と[終了日]に
>>日付を入れるときにどう入力されてますか?

>「グラフ期間」フォームを作成すると、グラフ作成の段階でパラメータの入力と
>いうダイアログボックスが表示され、そこで[開始日]に200001[終了日]に
>200012と入力するはずなんですが・・。パラメータの入力というダイアログボッ
>クスが表示されません。
・ツリー全体表示

【6025】Re:クエリの抽出条件
回答  クロ  - 05/8/26(金) 5:55 -

引用なし
パスワード
   ▼まっち さん:
「グラフ期間」フォームにある[開始日]と[終了日]に
日付を入れるときにどう入力されてますか?
・ツリー全体表示

【6024】Re:数値のみ入力したい場合
発言  YU-TANG WEB  - 05/8/25(木) 21:39 -

引用なし
パスワード
   ▼Seri さん:
>ご意見ありがとうございます。

ということは、後出し NG 路線を変える気は無い、ということですね。
ま、何をもって使いやすいとするかは人それぞれなので、それも良い
でしょう。

前回のレスにも書いたとおり、入力規則で対応する方法は分かりません
ので、後はフォームの [エラー時] イベントを使うくらいでしょうか。

# ヘルプの使用例そのまんまですが。

Private Sub Form_Error(DataErr As Integer, Response As Integer)

  Const conInvalidDataType = 2113
  Dim strMsg As String

  If DataErr = conInvalidDataType Then
    Response = acDataErrContinue
    strMsg = "数値を入力してください。"
    MsgBox strMsg
    ActiveControl.Undo
  End If

End Sub

それでは、頑張ってください。
・ツリー全体表示

【6023】オブジェクトのコピー
質問  リキラリアット  - 05/8/25(木) 20:24 -

引用なし
パスワード
   ちょっと質問なのですが。別のデータベースからオブジェクトをインポート及びエクスポートすることは出来ますが。自mdbから操作して別データベースから別データベースにオブジェクトをコピーすることは出来ますか。
・ツリー全体表示

【6022】Re:クエリの抽出条件
発言  まっち  - 05/8/25(木) 19:35 -

引用なし
パスワード
   ▼まっち さん
>▼クロさん
>書き込みの仕方も間違っていたみたいで・・。失礼しました。ごめんなさい。
>きちんと勉強しないと駄目ですね。グラフ期間フォームの開始日と終了日の書式
>っていうのが分かりません。テキストには書式を設定するよ指示がないのです
>が。どうすればよいのですか?
>よろしくお願いします。
・ツリー全体表示

【6021】Re:クエリの抽出条件
回答  クロ  - 05/8/25(木) 17:55 -

引用なし
パスワード
   ▼まっち さん:
引用は(>付き文章)は最小限で
>>また「グラフ期間」フォームにある[開始日]と[終了日]の書式も併せて提示く
>>ださい。
↑この返事は?

>年月日・・・数値型
これが数値型なら[開始日]と[終了日]には
20050801という具合に入れないとダメですよ?
・ツリー全体表示

【6020】Re:検索用のフォーム作成
質問  QOO  - 05/8/25(木) 17:36 -

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

>cmb年に「2005」
>cmb月に「8」
>cmb種別に「正式」
>
>と入れた時に、
>メッセージボックスの「strFil」にどのような値が入っていますでしょうか?

→年は「05」表記としています。
最初のレコードでない条件(上記の条件)で入れるとmsgは「年=‘05’AND 月=‘2’AND 種別=‘概算’」と表示されます。(これは最初のレコードの内容そのままです)
・ツリー全体表示

【6019】Re:毎年の集計について
発言  小僧  - 05/8/25(木) 17:34 -

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

>こんにちは。同じ現象が出ると、心強いです。それ以前に教えていただける事が
>ありがたいです。

いえいえ、こちらも自分の勉強になりますから。


>『式が正しく入力されていないか、複雑すぎる為に評価できません。
>例えば、数式に複雑な要素が多すぎます。変数に式の一部を割り当て、式を
>簡単にして下さい。』

こちらが再現されないですね。(Ac97 と Ac2002で確認)

>それと、診断名は9890など番号なので、
>SELECT T_疾病管理.診断名, ms_msg←これを追加しました。

という事なので、一度 SQL を記載して頂けませんでしょうか。
改行がうまくいかなくても良いので、コピー&ペーストそのままで
載せて頂きたいです。
・ツリー全体表示

【6018】Re:検索用のフォーム作成
発言  小僧  - 05/8/25(木) 17:18 -

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

うーん、何故でしょう…。

cmb年に「2005」
cmb月に「8」
cmb種別に「正式」

と入れた時に、
メッセージボックスの「strFil」にどのような値が入っていますでしょうか?
・ツリー全体表示

【6017】Re:毎年の集計について
質問  サチチ  - 05/8/25(木) 17:15 -

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

こんにちは。同じ現象が出ると、心強いです。それ以前に教えていただける事が
ありがたいです。

>'/01/01',CDate…」のように前のスペースを削除して下さい。
削除しました!!「年度を入力」が出て、1990と入力したら、今度は・・・
『式が正しく入力されていないか、複雑すぎる為に評価できません。
例えば、数式に複雑な要素が多すぎます。変数に式の一部を割り当て、式を
簡単にして下さい。』
と出てしまいました。なんじゃ???評価できないって〜どういう事よ!と
ついつい・・・。

それと、診断名は9890など番号なので、
SELECT T_疾病管理.診断名, ms_msg←これを追加しました。
・ツリー全体表示

【6016】Re:検索用のフォーム作成
質問  QOO  - 05/8/25(木) 17:10 -

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


>>  strFil = "年 = '" & Me.年 & "' AND " _
>>      & "月 = '" & Me.月 & "' AND " _
>>      & "種別 = '" & Me.種別 & "'"
>
>のままですが、一つ思い当たることが…。
>
>ヘッダに配置している検索用の「年」を表すコンボボックス名の名前を
>
>cmb年
>cmb月
>cmb種別
>
>として、
>
>  strFil = "年 = '" & Me.cmb年 & "' AND " _
>      & "月 = '" & Me.cmb月 & "' AND " _
>      & "種別 = '" & Me.cmb種別 & "'"
>
>でどうでしょうか。

コンボボックスの名前を変更をcmb〜と変更して上記を試してもやはり、NO,1のレコードだけを抽出してしまいます。
検索条件の「種別」「年」「月」はどれも値リストで、値集合ソースは手で入れました。
クエリからうまくコンボが作れなかったので、手で入れているのですが、これがまずいのでしょうか?(入力はクエリと一致するよう半角でいれてるのですが・・・)
・ツリー全体表示

【6015】Re:毎年の集計について
発言  小僧  - 05/8/25(木) 16:54 -

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

>『式に未定義関数  '   CDate'があります』とでます。

こちらでも再現致しました!

…。
'   CDate'って …なんか離れすぎていません?

と言う事で、「 '/01/01',CDate…」のように前のスペースを削除して下さい。
・ツリー全体表示

【6014】Re:毎年の集計について
質問  サチチ  - 05/8/25(木) 16:39 -

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

貼り付けてみました。エラーがでました。
クエリ3年を実行すると、
『式に未定義関数  '  CDate'があります』とでます。

一つ、これが原因?と思うものがあるのですが、管理開始の日にち(他も)は
数値型にしている事。日付/時刻にしてません。元データが、19991010の
様に、日付になっていないデータを使っているためです。
これが原因ですか?
その為、前作ったクエリに、左から4コ目をという関数を組みました。
なお、日付は全て8ケタです。
・ツリー全体表示

【6013】Re:毎年の集計について
回答  小僧  - 05/8/25(木) 16:10 -

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

>ちなみに、これは小僧さんが作成していただけたSQlをモジュールに貼り付け、
>ボタンを作れば、フォームが出来るという事ですか?

そんなにAccess君は便利ではありません(笑)
ですが、SQL(クエリ)さえしっかりしてれば、フォームを作るのはかなり楽になるはずです。

なので 希望となる SQL(クエリ)をまず作ってみましょう。

>T_疾病管理で診断名・管理開始 を使いたいです。そこから、人数を
>もとめたいです。他に、治療開始・治療終了も作成は管理開始を参考に
>作成してみます。

まずは全年の集計クエリです。

クエリ全年:

TRANSFORM Count(T_疾病管理.ID) AS 人数
SELECT T_疾病管理.診断名
FROM T_疾病管理
GROUP BY T_疾病管理.診断名
PIVOT Left([管理開始],4);

次に指定した年から3年分のデータを集計するクエリです。

クエリ3年:

TRANSFORM Count(T_疾病管理.ID) AS 人数
SELECT T_疾病管理.診断名
FROM T_疾病管理
GROUP BY T_疾病管理.診断名
PIVOT 1+DateDiff('yyyy',[年度を入力] & '/01/01',
   CDate(Left(T_疾病管理.管理開始,4) & ' /01/01')) & '年目'
In ('1年目','2年目','3年目');

クエリ3年を実行すると「年度を入力」ときかれますので、
「1990」のような数字4桁を返すと「1990」「1991」「1992」の3年分のデータが
抽出されるはずです。 ※クエリ全年と比較してみてください。


まずはここまでがうまくいかないと進まないので確認してみて下さい。
・ツリー全体表示

【6012】Re:毎年の集計について
質問  サチチ  - 05/8/25(木) 15:22 -

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

ご返答ありがとうございます。すみませんが、私SQLを作成して
作った事がないので、作成しているテーブルを書かせてもらいます。

T_疾病管理

ID  職番   氏名  s_hantei s_type 診断名  ms_msg  疑い 
1  123456  サチチ  B     1    2859   貧血   1 

管理開始  治療開始  治療終了 
19901010  19901101  20011010  

と、T_ID

ID  職番   氏名  生年月日   事業所  組織   健管  退職日
1  123456  サチチ  19801111   10   9999999  S  20050930

があります。
T_疾病管理で診断名・管理開始 を使いたいです。そこから、人数を
もとめたいです。他に、治療開始・治療終了も作成は管理開始を参考に
作成してみます。

T_IDの職番とT_疾病管理の職番をくっつけて、まとめのクエリ
(退職年: Left([退職日],4)などの関数を作成しただけですが、年だけが
でるようにしました。
これでなくても、SQLで出来る様でしたら、是非!!

ちなみに、これは小僧さんが作成していただけたSQlをモジュールに貼り付け、
ボタンを作れば、フォームが出来るという事ですか?
先に、フォームを診断名・管理開始・人数というカラのものを作成しておくの
ですか?
初心者すぎて申し訳ないのですが、よろしくお願いします。
 
・ツリー全体表示

【6011】Re:クエリの抽出条件
発言  まっち  - 05/8/25(木) 15:11 -

引用なし
パスワード
   ▼クロ さん:
>▼まっち さん:
>>どうしても「データ型が一致しません。」と表示されます。条件は2つです。
>>1.Like[Forms]![グラフ期間]![会社コード]!
>
>これも式がおかしいですよ?最後の「!」は要りません。
>この式のままですと会社コードを「グラフ期間」フォームで入力する場合
>「*11」とか「11*」あるいは「*1*」のように入力することになりますが
>それでいいのでしょうか?
>
>
>>2.Between[Forms]![グラフ期間]![開始日]And[Forms]![グラフ期間]![終了日]
>
>
>まず、この抽出条件を入れる対象フィールドのデータ型を提示し、実際どのように
>格納されていますか?
>また「グラフ期間」フォームにある[開始日]と[終了日]の書式も併せて提示く
>ださい。
>「データ型が一致しません」のメッセージは文字通り「データ型が違うからできない
>よ」ということです。


返信ありがとうございます。アドバイスをいただいたのですが・・・よくわかりません(;;)
データ載せてみます。
1、会社情報テーブル
ID・・・オートナンバー
業種コード・・・数値型
会社コード・・・数値型
会社名・・・テキスト型

2、株価テーブル
ID・・・オートナンバー
会社コード・・・数値型
年月日・・・数値型
終値・・・数値型

★株価グラフクエリ
テーブル・・・会社情報−株価
結合線・・・会社コード
抽出条件・・・会社コード Like[Forms]![グラフ期間]![会社コード]
       年月日 Between[Forms]![グラフ期間]![開始日]And[Forms]![グラフ期間]![終了日]


長くなってすみません。。よろしくお願いします。
・ツリー全体表示

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