|
▼hyot さん:
おはようございます。
>Access勉強中です。
Accessの事だけでなく、RDB(リレーショナルデータベース)についても
知識を付けられたほうが良いかと思われます。
ご提示した内容は RDBを扱う上で必要となる
「テーブルの正規化」という概念に思い切り反しているモノです。
Accessにおいては正規化されていないテーブルでも
VBAを駆使してデータを操作する事は可能ですが、
フォームやクエリを作る上で都度面倒な処理を行う事になります。
>元テーブル:T1
>Code Name Fild_1 Fild_2 Fild_3 Fild_4
>A1 A あ い う え
>A1 A あ いい うう ええ
>A1 A あ いいい うう え
>
>結果クエリ:Q1
>Code Name Fild_1 Fild_2 Fild_3 Fild_4
>A1 A あ い,いい,いいい う,うう え,ええ
上記の様な事をどうしても行いたいのでしたら
まず標準モジュールに下記コードを転記し、保存して下さい。
Function Chofuku(FName As String, strCode As String, _
strName As String, strField As String)
'要参照 Microsoft DAO x.x Object Library
Dim strSQL As String
Dim RS As DAO.Recordset
Dim strF As String
strSQL = "SELECT DISTINCT " & FName & " FROM T1 " _
& "WHERE Code='" & strCode & "' AND Name ='" & strName & "'"
Set RS = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
Do Until RS.EOF
strF = strF & "," & RS(FName)
RS.MoveNext
Loop
RS.Close
Chofuku = Mid(strF, 2)
End Function
上記コードが保存されましたら、
クエリのSQLビューに下記SQLを記述し実行されてみて下さい。
SELECT DISTINCT T1.Code, T1.Name,
Chofuku("Field_1",[Code],[Name],[Field_1]) AS F1,
Chofuku("Field_2",[Code],[Name],[Field_2]) AS F2,
Chofuku("Field_3",[Code],[Name],[Field_3]) AS F3,
Chofuku("Field_4",[Code],[Name],[Field_4]) AS F4
FROM T1;
|
|