Excel (VBA) |
![]() ![]() |
(Windows 7 Home Premium : Excel 2013)
ADOでAccessに接続 クロス集計をする
投稿日時: 18/04/05 09:28:28
投稿者: mmiwa
|
---|---|
jetSQLで
|
![]() |
投稿日時: 18/04/05 13:22:17
投稿者: sk
|
---|---|
引用: 「Jet SQL の記述だけで解決する方法はないか」というのが ご質問の趣旨ならば、「Jet SQL では列番号を指定して 任意のフィールドを参照することが出来ないので不可能である」 という回答になります。 引用: ADO を使用されているのであれば、上記のユニオンクエリの結果を Recordset として参照し、Fields プロパティ(コレクション)を介して n番目のフィールドの名前( Name プロパティの値)を取得した上、 引用: 取得したフィールド名を PIVOT 句で指定する 列見出しとして文字列連結するようになさればよいはず。 |
![]() |
投稿日時: 18/04/05 18:14:58
投稿者: mmiwa
|
---|---|
ありがとうございます
|
![]() |
投稿日時: 18/04/06 09:19:16
投稿者: sk
|
---|---|
引用: 実際にどのようなコードを記述されているのでしょうか。 |
![]() |
投稿日時: 18/04/06 09:28:44
投稿者: mmiwa
|
---|---|
昨晩、access内に
|
![]() |
投稿日時: 18/04/06 10:14:18
投稿者: sk
|
---|---|
引用: 「 n番目のフィールドの名前」を取得する際の SQL 文と クロス集計クエリの FROM 句に記述されている SQL 文(サブクエリ)が 一致していないからではないですかね。 (実際に記述されたコードを見れば分かることなのですが) 引用: 例えば、このステートメント単体を String 型の変数に 代入するような処理になっているかどうかなど。 |
![]() |
投稿日時: 18/04/09 11:58:22
投稿者: mmiwa
|
---|---|
SK様
|
![]() |
投稿日時: 18/04/09 13:14:13
投稿者: Suzu
|
---|---|
こんにちは。
|
![]() |
投稿日時: 18/04/09 15:43:49
投稿者: mmiwa
|
---|---|
Suzu様
|
![]() |
投稿日時: 18/04/09 15:59:29
投稿者: sk
|
---|---|
引用: ・各 SELECT 文を囲んでいる () が余計。 ------------------------------------------------------------------------------ myTable = _ "select [result].[rdate], [result].[smpno], [hik].[sname], [result].[iname] & ' A' as [iiname], [result].[result] from result " & _ "left join hik on [result].[smpno] = [hik].[smpno] and [result].[rdate] = [hik].[rdate] " & _ "where clng([result].[rdate]) > " & Val(UserForm1.ComboBox1.Value & "01") & " " & _ "and [hik].[tikind] = 'A' " & _ "and [result].[iname] in (select 表示項目 from 項目名) " & _ "union " & _ "select [result].[rdate], [result].[smpno], [hik].[sname], [result].[iname] & ' B' as [iiname], [result].[result] from result " & _ "left join hik on [result].[smpno] = [hik].[smpno] and [result].[rdate] = [hik].[rdate] " & _ "where clng([result].[rdate]) > " & Val(UserForm1.ComboBox1.Value & "01") & " " & _ "and [hik].[tikind] = 'B' " & _ "and [result].[iname] in (select 表示項目 from 項目名)" 引用: ・メインクエリ側の FROM 句のサブクエリ全体を囲む () がない。 ・FROM 句のサブクエリには出来れば別名を付ける。 ------------------------------------------------------------------------------ mySQL = _ "transform min(val(qry1.result)) " & _ "select qry1.sname, qry1.rdate " & _ "from (" & myTable & ") qry1 " & _ "group by qry1.sname, qry1.rdate " & _ "pivot qry1.[iiname];" |
![]() |
投稿日時: 18/04/09 16:54:40
投稿者: Suzu
|
---|---|
Accessに接続という事は、Accessを使用できる環境はお持ちと推測し回答します。
|
![]() |
投稿日時: 18/04/10 17:30:30
投稿者: mmiwa
|
---|---|
SK様 Suzu様
|