Access VBA質問箱 IV

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

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


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

【4604】DAOでテーブルから取得した情報を全て...
質問  バンドルデューケン  - 05/3/15(火) 18:41 -

引用なし
パスワード
   お世話になっております。バンドルデューケンです。
DAOでテーブルから取得した情報を表示する物を作成しました。
実際には「AD-1012K」までしか表示されません。 
「DC-0007P」まで表示したいのですが解りませんどうか教えて下さい
コードマスタ:テーブルの内容
標準価格 価格コード
100000  AD-1012K 
30000   AX-101
40000   AH-506I
70000   DC-0007P

PG
  MsgBox "DBへの接続を開始します。"
  
  '*********************************************************************
  'Excel側でDAOへの参照設定が必要です。
  'VBE画面の「ツール」−「参照設定」で、
  'Microsoft DAO 3.6 Object Library にチェックをつけてください。
  '無ければ、DAO 3.5 でも、大丈夫です。
  '*********************************************************************

  Dim mdb As DAO.Database
  Dim rst As DAO.Recordset
  Dim intCnt As Integer
  Dim str As String
  Dim data As String

'  str = "C:\db1.mdb"
  str = "D:\Documents and Settings\t-umemoto\デスクトップ\テーブル表示\DB\テーブル表示.mdb"
  
  Set mdb = OpenDatabase(str)
  Set rst = mdb.OpenRecordset("コードマスタ")


  For intCnt = 1 To rst.Fields.Count
    
      MsgBox rst.Fields(intCnt - 1).Value
  Next
  
  MsgBox data & "終了!"
  
  rst.Close
  mdb.Close
  Set rst = Nothing
  Set mdb = Nothing
  
  Exit Sub
End Sub  
・ツリー全体表示

【4603】Re:dcount関数について
お礼  情シス初心者  - 05/3/15(火) 18:12 -

引用なし
パスワード
   出来ました!!
本当に有難うございます。

Webやら本やら、いろいろ探していたんですがなかなか見つからなくて。。。
とても感謝しています。
・ツリー全体表示

【4602】Re:dcount関数について
回答  クロ  - 05/3/15(火) 18:04 -

引用なし
パスワード
   SETECT PC名, [1] FROM テーブルB WHERE [1] Is Not Null UNION ALL
SETECT PC名, [2] FROM テーブルB WHERE [2] Is Not Null UNION ALL
SETECT PC名, [3] FROM テーブルB WHERE [3] Is Not Null;

な感じで...
・ツリー全体表示

【4601】Re:dcount関数について
質問  情シス初心者  - 05/3/15(火) 17:58 -

引用なし
パスワード
   できました!!
ご丁寧な回答、有難うございます。とても感謝しています。

先ほど教えて頂いた、テーブルBからユニオンクエリを作成するに当たり、
テーブルBのPC名も一緒に抽出したいのですが、それは出来ますか?
よろしくお願いします。
・ツリー全体表示

【4600】Re:dcount関数について
回答  クロ  - 05/3/15(火) 17:40 -

引用なし
パスワード
   ユニオン内包型
SELECT テーブルA.アプリ名, Count(Q1.[1]) AS 1のカウント, テーブルA.在庫数
FROM [SELECT [1] FROM テーブルB WHERE [1] Is Not Null UNION ALL
SELECT [2] FROM テーブルB WHERE [2] Is Not Null UNION ALL SELECT [3] FROM テーブルB WHERE [3] Is Not Null]. AS Q1 RIGHT JOIN テーブルA ON Q1.[1] = テーブルA.アプリ名
GROUP BY テーブルA.アプリ名, テーブルA.在庫数;

別ユニオン型
SELECT テーブルA.アプリ名, Count(クエリ1.[1]) AS 使用数, テーブルA.在庫数
FROM クエリ1 RIGHT JOIN テーブルA ON クエリ1.[1] = テーブルA.アプリ名
GROUP BY テーブルA.アプリ名, テーブルA.在庫数;

小僧さん型は何にもしなくてもそのようになると思います。
・ツリー全体表示

【4599】Re:dcount関数について
質問  情シス初心者  - 05/3/15(火) 17:21 -

引用なし
パスワード
   もう一点お伺いしたいのですが、
テーブルAでアプリケーション名が登録されていても、インストールしていない場合
(テーブルBで未登録)、在庫はX個で、インストール数は0個と表示できないものなのでしょうか。

現在、テーブルAのレコード数と最終的に作成したクエリのレコード数が一致していないんです。

度々すみません。
よろしくお願いします。
・ツリー全体表示

【4598】Re:dcount関数について
お礼  情シス初心者  - 05/3/15(火) 17:04 -

引用なし
パスワード
   有難うございます!!
できました。見事、成功です!!!

また疑問点が出ましたら、お助けくださいませ。。
・ツリー全体表示

【4597】Re:dcount関数について
回答  クロ  - 05/3/15(火) 16:38 -

引用なし
パスワード
   小僧さんの方はグループ化がされていなかったからだと思います。
SELECT テーブルA.アプリ名 AS ソフト名, DCount("*","テーブルB","[1] = '" & [アプリ名] & "' or [2] = '" & [アプリ名] & "' or [3] = '" & [アプリ名] & "'") & "個" AS 個数
FROM テーブルA, テーブルB
GROUP BY テーブルA.アプリ名;

小僧さんの方法で在庫表示
SELECT テーブルA.アプリ名 AS ソフト名, DCount("*","テーブルB","[1] = '" & [アプリ名] & "' or [2] = '" & [アプリ名] & "' or [3] = '" & [アプリ名] & "'") & "個" AS 個数, テーブルA.在庫数
FROM テーブルA, テーブルB
GROUP BY テーブルA.アプリ名, テーブルA.在庫数;

私の方法で在庫表示
1.別ユニオン
SELECT クエリ1.[1], Count(クエリ1.[1]) AS 1のカウント, テーブルA.在庫数
FROM クエリ1 INNER JOIN テーブルA ON クエリ1.[1] = テーブルA.アプリ名
GROUP BY クエリ1.[1], テーブルA.在庫数;

2.ユニオン内包
SELECT Q1.[1], Count(Q1.[1]) AS 1のカウント, テーブルA.在庫数
FROM (SELECT [1] FROM テーブルB WHERE [1] Is Not Null UNION ALL
SELECT [2] FROM テーブルB WHERE [2] Is Not Null UNION ALL
SELECT [3] FROM テーブルB WHERE [3] Is Not Null) AS Q1 INNER JOIN テーブルA ON Q1.[1]=テーブルA.アプリ名
GROUP BY Q1.[1], テーブルA.在庫数;
・ツリー全体表示

【4596】Re:別システムの立ち上げ
お礼  かめ  - 05/3/15(火) 16:27 -

引用なし
パスワード
   >\\コンピュータ名\パス名\ファイル名
>とかのようにしたら、どうでしょうか?

Gin_II さん,やさしくおしえていただきありがとうございました。
うまくいきました。

感謝,感謝です。
・ツリー全体表示

【4595】Re:dcount関数について
質問  情シス初心者  - 05/3/15(火) 16:23 -

引用なし
パスワード
   小僧さん、クロさん、早速のご回答有難うございました。

クロさんに教えて頂いた方法で見事成功しました!!
有難うございます。

(小僧さん>私のやり方が悪いらしく、上手くいきませんでした。せっかく教えていただいたのにすみません。。)

さらにお聞きしたいのですが、

テーブルA
 アプリ名 在庫数
 ---------------
 Aソフト   5
 Bソフト   4
 Cソフト   8
 Dソフト   6

先ほど作成したインストール数が表示されるクエリに、上のテーブルAの在庫数も一緒に表示したいのですが、どうすれば良いのでしょうか。
よろしくお願いします。
・ツリー全体表示

【4594】Re:dcount関数について
回答  クロ  - 05/3/15(火) 15:20 -

引用なし
パスワード
   テーブルBからユニオンクエリ(仮にクエリ1)を作成

SELECT [1] FROM テーブルB WHERE [1] Is Not Null UNION ALL
SELECT [2] FROM テーブルB WHERE [2] Is Not Null UNION ALL
SELECT [3] FROM テーブルB WHERE [3] Is Not Null;

これで縦方向にアプリ名が登録数だけ並びます。

これを利用して集計クエリで
SELECT クエリ1.[1], Count(クエリ1.[1]) AS 1のカウント
FROM クエリ1
GROUP BY クエリ1.[1];

これで出せます。

更に
ユニオンクエリをサブクエリ化して内包すると...
SELECT Q1.[1], Count(Q1.[1]) AS 1のカウント
FROM (SELECT [1] FROM テーブルB WHERE [1] Is Not Null UNION ALL
SELECT [2] FROM テーブルB WHERE [2] Is Not Null UNION ALL
SELECT [3] FROM テーブルB WHERE [3] Is Not Null) AS Q1
GROUP BY Q1.[1];

こんな感じ?
・ツリー全体表示

【4593】Re:dcount関数について
回答  小僧  - 05/3/15(火) 15:13 -

引用なし
パスワード
   情シス初心者さんはじめまして。

SELECT テーブルA.アプリ名 AS ソフト名,
DCount("*","テーブルB","[1] = '" & [アプリ名] & "' or [2] = '" & [アプリ名] & "' or [3] = '" & [アプリ名] & "'") & "個" AS 個数
FROM テーブルA;

↑のSQL文をクエリに貼り付けて結果を試してみてください。
こちらの勘違いでしたらすみません。
・ツリー全体表示

【4592】dcount関数について
質問  情シス初心者  - 05/3/15(火) 14:36 -

引用なし
パスワード
   DB作成を任されているんですが、クエリがどうも良く分かりません。
アプリケーションソフトの管理DBを作っています。
インストール数のカウントをしたいのですが、どうすれば良いでしょうか?
以下のような構成で実現したいのですが。。。

テーブルA
  アプリ名
  --------
  Aソフト
  Bソフト
  Cソフト
  Dソフト

テーブルB
  PC名  1    2    3
  ----------------------------
  PC1 Aソフト Dソフト
  PC2 Cソフト Dソフト
  PC3 Aソフト Bソフト Cソフト

クエリ1
  ソフト名  個数
  ---------------
  Aソフト  ○個
  Bソフト  ○個
  Cソフト  ○個
  Dソフト  ○個

↑この「クエリ1」において、それぞれのアプリケーションがいくつインストールされているかをカウントしたいのです。(ちなみにテーブルBのソフト名は、テーブルAで登録したものをルックアップウィザードでリンクしてあります。)
Excelであれば、「クエリ1」の中からAソフトに一致するものをテーブルBから検索し、その一致した数をカウントという風に設定できますが、ACCESSはどういう関数になるのでしょうか。

式1: DCount("[1]&[2]&[3]","[テーブルB]","[1]or[2]or[3]='querys![クエリ1]![ソフト名]'")

↑これだと、全部の数をカウントしてしまいます。

長文すみません。解決のヒントを頂けたらと思います。
よろしくお願いします。
・ツリー全体表示

【4591】Re:閉じるボタンを消す方法
お礼    - 05/3/15(火) 13:22 -

引用なし
パスワード
   ▼クロ さん:
>ホイ、こちら
>http://homepage3.nifty.com/_miyabi/technic/access/ac_tec_5.htm


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

【4590】Re:閉じるボタンを消す方法
回答  クロ  - 05/3/15(火) 13:20 -

引用なし
パスワード
   ホイ、こちら
http://homepage3.nifty.com/_miyabi/technic/access/ac_tec_5.htm
・ツリー全体表示

【4589】Re:エクスポート時のファイル名について
お礼  桜坂  - 05/3/15(火) 13:07 -

引用なし
パスワード
   ▼Gin_II さん:
>>ファイル名に環境変数より取得した値を設定したいのですが、
>
>Environ 関数
>をヘルプで確認してみてください。
ありがとうございました。
解決しました。
お世話になりました。
・ツリー全体表示

【4588】Re:SQLで非表示
回答  umebaind E-MAIL  - 05/3/15(火) 13:03 -

引用なし
パスワード
   ▼T さん:
>▼umebaind さん:
>>始めましてumebaindです。
>>SELECT DISTINCT B,C FROM A;
>>じゃ駄目ですか?
>>他GROUP BYって手もありですが。
>その方法だとレコードそのものがなくなってしまうんです。
>
>指定フィールドだけ空欄にしたいんです。
>なんとか、ならないものでしょうか?

umebaind GROUP BY してみては
それ以外は私は解りません。
・ツリー全体表示

【4587】Re:SQLで非表示
発言    - 05/3/15(火) 12:51 -

引用なし
パスワード
   ▼umebaind さん:
>始めましてumebaindです。
>SELECT DISTINCT B,C FROM A;
>じゃ駄目ですか?
>他GROUP BYって手もありですが。
その方法だとレコードそのものがなくなってしまうんです。

指定フィールドだけ空欄にしたいんです。
なんとか、ならないものでしょうか?
・ツリー全体表示

【4586】Re:エクスポート時のファイル名について
回答  Gin_II  - 05/3/15(火) 12:33 -

引用なし
パスワード
   >ファイル名に環境変数より取得した値を設定したいのですが、

Environ 関数
をヘルプで確認してみてください。
・ツリー全体表示

【4585】Re:SQLで非表示
回答  umebaind E-MAIL  - 05/3/15(火) 12:33 -

引用なし
パスワード
   始めましてumebaindです。
SELECT DISTINCT B,C FROM A;
じゃ駄目ですか?
他GROUP BYって手もありですが。
・ツリー全体表示

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