レポート目的で接続されているMS access 2010
データベースがあります。ExcelのオプションをMS Excel 2010
使用して、ExcelをAccessにリンクしました。Get External Data
レポート要件にほとんど変更がなかったため、new query
Access で を作成する必要がありました (いくつかの がありますcustom function
)。Custom Function is a VBA module in Access
。_
残念ながらGet External Data
、Excel で を使用して新しいアクセス クエリをリンクすると、新しいクエリ (ビュー) がテーブル/ビュー (インポート ウィザード) のリストに表示されません。Custom Function
クエリを削除すると、ウィザードに表示されます。
行を連結するカスタム関数 (別のサイトから取得)
Public Function ConcatADO(strSQL As String, strColDelim, _
strRowDelim, ParamArray NameList() As Variant)
Dim rs As New ADODB.Recordset
Dim strList As String
On Error GoTo Proc_Err
If strSQL <> "" Then
rs.Open strSQL, CurrentProject.Connection
strList = rs.GetString(, , strColDelim, strRowDelim)
strList = Mid(strList, 1, Len(strList) - Len(strRowDelim))
Else
strList = Join(NameList, strColDelim)
End If
ConcatADO = strList
Exit Function
Proc_Err:
ConcatADO = "***" & UCase(Err.Description)
End Function
以下は、新しいクエリで使用される JET SQL です (これは Access 内で完全に正常に動作します)。
SELECT DISTINCT
D.[Ref ID],
D.[ENTRYDATE],
D.[AUDITOR LID],
D.[Process],
D.[Auditee],
D.[Auditee Name],
D.[Account No],
D.[Auditee Manager],
D.[MaxScore],
D.[Score],
D.[Result],
ConcatADO("SELECT [COMMENTS] FROM ycube WHERE [Ref ID]=" & "'" & [d].[Ref ID] & "'" ,", "," : ") AS [Master Comment]
FROM ycube AS D;
- カスタム関数を使用する際の Excel の制限でしょうか。
- 上記の Access クエリを Excel にインポートする方法はありますか (むしろリンク)