|
▼MK&db さん、Gin_II さん:
おはようございます。
>>以下のクエリADがあるとします、クエリADを使って、列の縦方向の合計が
>>ゼロの列を除外したいです。このような煩雑な処理は可能でしょうか?
Null値があるとうまくいかないかもしれませんが、
Sub 動的SQLを作成()
'要参照設定 Microsoft DAO x.x Object Library
Dim SQLCode As String
Dim QD As DAO.QueryDef
Dim FName(1 To 4) As Variant
Dim RecCNT As Long
Dim I As Long
FName(1) = "Fe"
FName(2) = "Cu"
FName(3) = "Si"
FName(4) = "Ca"
SQLCode = "SELECT ModelNo, NameNo, "
RecCNT = DCount("*", "テーブルAD_Group")
For I = 1 To UBound(FName, 1)
If DSum(FName(I), "テーブルAD_Group") > 0 Then
SQLCode = SQLCode & FName(I) & ", "
End If
Next
SQLCode = Left(SQLCode, Len(SQLCode) - 2) _
& " FROM テーブルAD_Group"
Set QD = CurrentDb.CreateQueryDef("クエリADNew", SQLCode)
QD.Close
Set QD = Nothing
End Sub
「CreateQueryDef」メソッドでわざわざクエリを作成しているため、
同名のクエリが存在するとエラーになります。
「クエリADNew」をフォームやレポートの基にしたい場合であれば
クエリを作成しなくても 変数:SQLCode をレコードソースに代入すれば
結果が表示されると思います。
|
|