0

Google経由で答えが見つかりませんでした。このコードを SQL Server ストアド プロシージャから実行する必要があります。

tblReports というテーブルを含む 100 以上のアクセス データベースを持つフォルダーがあります。一部のアクセス データベースには、tblReports に AdminReport という追加の列があります。

余分な列が存在する場合はキャプチャする必要があるため、tblReports にある列の数をテストして、sp で if/else ステートメントを使用して、列数に基づいて正しい SQL を生成できるようにする必要があります。

私はあなたの考えを読みたいです、ここに関連するスニペットがあります.

set @sql = 'Insert into CustomerServiceIntranet.dbo.ReportCriteria
            (UserInfo,RptNbr,RptType,RptDesc,GroupCDBrk,ClientCDBrk,CategoryCDBrk,
            UserIDBrk,UnitCDBrk,WrkTypeBrk,StatCDBrk,StatDatBrk,
            ExperBrk,GroupList,ClientList,CategoryList,UserIDList,BusAreaList,
            WrkTypList,StatusList,QueueList,ReviewDay,ReviewDayNA,
            ErrorImpact,DateRange,DataSource,RptPathFile)' 
        + 'Select '''+ @userfilename + ''', ors.* ' 
        + 'from (select * From Openrowset(''Microsoft.ACE.OLEDB.12.0'',''' 
        + @CurrentName 
        + ''';''Admin'';,''select * from tblReports'')) ors'
4

1 に答える 1

0

標準的なアプローチは、DoCmd.TransferDatabase を呼び出して tblReports にリンクすることです。その後、SQL に着手する前に、テーブル内のフィールドの数を数えることができます。ルックの最後で、DoCmd.DeleteObject を呼び出してリンクを削除します。

それは確かにあなたがやろうとしていることよりもきれいに見えます.

于 2012-03-17T00:20:37.493 に答える