Microsoft Accessに、テキストファイルからテーブルにレコードをインポートするフォームがあります。元のコードは次のとおりです。
DoCmd.RunSQL "UPDATE QC_File SET QC_File.ToQC = 'x' " & _
"WHERE (((QC_File.ID) In (Select TOP " & VarPer & " PERCENT ID " & _
"FROM QC_File As DUPE " & _
"WHERE [DUPE].[HIST_USUS_ID] = [QC_File].[HIST_USUS_ID] And [DUPE].[Client1] = 'CLIENT' " & _
"ORDER BY [DUPE].[ID] DESC;)))"`
このコードは、ランダムに10%を取得する場合にのみ、上位10%を取得しているため、次のことを試しましたが、エラー(「クエリ式の構文エラー」)が発生し続け、エラーが発生している行が指定されていません。オンにすると、コード全体が返されます。
DoCmd.RunSQL "UPDATE QC_File SET QC_File.ToQC = 'x' " & _
"WHERE (((QC_File.ID) In (Select ID " & _
"FROM QC_File As DUPE Tablesample(10 PERCENT) " & _
"WHERE [DUPE].[HIST_USUS_ID] = [QC_File].[HIST_USUS_ID] And [DUPE].[Client1] = 'CLIENT' " & _
"ORDER BY [DUPE].[ID] DESC;)))"
私はすでに使用を試みNEWID()
ましたが、それはランダムな順序でトップ10パーセントを返すことだけです。Visual BasicでSQLを作成するときにTablesampleコマンドを使用することはできませんか?