だから私はMS Access 2010データベースを使用してC#でVisual Studio 2012に取り組んでおり、特定の制限(WHERE句に見られるもの)に従ってテーブルのデータを使用して年を計画したいと考えていました。Access からのこのクエリはすべて、C# プログラムで使用する準備が整っていましたが、「有効な SQL 命令」ではないため使用できないという問題に遭遇しました。
OleDbConnection l = OleDbConnectionDAO.createConnection();
DataTable dt;
l.Open();
OleDbCommand cmd = l.CreateCommand();
string transform = "TRANSFORM Max( IIf([frequência calibração] Is Not Null,(Format(DateAdd('m',Val([frequência calibração]),[Data Saida]),'yyyy/mm')),'Faltam dados')) AS MaxProximaCalib";
string select = "SELECT Codigo, B_DSC AS Artigo, Marca_ AS Marca, Modelo, N_Serie";
string from = "FROM APP_Equipamento_Geral";
string where = "WHERE YEAR(DateAdd('m',Val([frequência calibração]),[Data Saida])) = " + ano + " AND [Descrição Serviço] like "+servico+ "";
string groupby = "GROUP BY APP_Equipamento_Geral.Codigo, APP_Equipamento_Geral.B_DSC, APP_Equipamento_Geral.Marca_," +
"APP_Equipamento_Geral.Modelo, APP_Equipamento_Geral.N_Serie, Year(DateAdd('m',Val([frequência calibração]),[Data Saida]))";
string pivot = "PIVOT IIf([frequência calibração] Is Not Null,(Format(DateAdd('m',Val([frequência calibração]),[Data Saida]),'yyyy/mm')),'Faltam dados');";
string query = transform + select + from + where + groupby + pivot;
cmd = new OleDbCommand(query, l);
dt = new DataTable();
dt.Load(cmd.ExecuteReader());
これに頼らずにこのクエリを実行する簡単な方法はありますか?
編集:トランスフォームが追加されました。