我在查询分析器中写了一段代码【SELECT DISTINCT '派工对象'=A.YG_NAME,(CASE WHEN (A.END_DD>GQ_DD+1 AND GQ_DD IS NOT NULL) THEN '提前完成' WHEN (A.END_DD<=GQ_DD+1 AND A.END_DD>GQ_DD) THEN '按时完成' WHEN (A.END_DD<GQ_DD) THEN '超期完成' ELSE '未完成' END) AS '完成标识', '派工日期'=GP_DD,'要求完工日期'=A.END_DD,'工件检验日期'=GQ_DD,'成品名称'=A.PRD_NAME,'成品代号'=A.PRD_NO,'制程名称'=C.ZC_NAME,'任务数量'=B.QTY,'完成数量'=C.QTY_FIN,'计划号'=E.BAT_NO FROM TF_GP A LEFT JOIN MF_GP B ON A.GP_NO=B.GP_NO LEFT JOIN TF_GQ C ON A.TZ_NO=C.TZ_NO LEFT JOIN MF_GQ D ON C.GQ_NO=D.GQ_NO LEFT JOIN MF_TZ E ON A.TZ_NO=E.TZ_NO WHERE B.DEP='50' AND A.END_DD>= '2010-12-16 00:00:00.000' AND A.END_DD<'2010-12-17 00:00:00.000' ORDER BY '完成标识'】,请问怎么做成EXE文件,EXE文件中最好可以设定查询起止时间。查询结果最好可以保存为EXCEL文件。服务器名192.168.0.2,登陆名SA,密码空,数据库名DB_01。 俺是小白,光和俺说大体操作路线还是不明白,最好详细点,有代码哈,先谢过了。 我需要一个完整的软件,软件界面有如下内容, 起止日期输入或设定控件,还有两个按钮控件(一个是生成数据,显示在软件窗口内,一个是导出,将结果生成电子表格文件,自动保存到我的文档。)要求编程软件为C#或者VB。起止日期就是WHERE语句中的A.END_DD。请高手帮忙了。小弟急用,有能力者,请将程序及源代码发到我的邮箱victor3168@163.com。结果满意后再送上50分,表示感谢。另外,服务器是同一局域网内的远程连接。
和这密码。 放入数据库控件adoquery1,设置connection=adoconnection1;SQL=你的SQL句语句 放入数据库控件DataSource1,设置DataSet=adoquery1 放入数据库控件DBGrid1,设置DataSource=DataSource1 放两个按钮:一个“查询”一个“导出EXCEL” 查询按钮代码为: adoquery1.active:=False; //表示关闭查询分析器 adoquery1.active:=True; //表示激活查询分析器,这时会显示数据出来。 导出EXCEL代码为(先建一个函数,再调用): 调用代码: if savedialog1.execute then //执行保存文件对话框 DBtoExcel(adoquery1,savedialog1.filename) //保存文件到EXCEL 函数: Function TfrmMain.DbtoExcel(FromDb:TDataSet;toExcelFileName:string):boolean; var eclApp,WorkBook:Variant; xlsFileName:string; i,j:integer; begin result:=true; xlsFileName:=toExcelFilename; try //创建OLE对象Excel Application与 WorkBook eclApp:=CreateOleObject('Excel.Application'); WorkBook:=CreateOleobject('Excel.Sheet'); except Result:=false; Exit; end; try workBook:=eclApp.workBooks.Add; eclapp.cells.select; eclapp.Selection.NumberFormatLocal := '@'; for i:=0 to fromdb.fields.Count -1 do begin eclApp.Cells(1,i+1):=fromdb.fields[i].DisplayName; eclApp.Columns[i+1].ColumnWidth:=12; end; fromdb.First ; j:=2; while not fromdb.Eof do begin for i:=0 to fromdb.FieldCount -1 do if i>=9 then eclApp.Cells(j,i+1):=ConvertTime(fromdb.Fields[i].AsInteger) else eclApp.Cells(j,i+1):=fromdb.Fields[i].AsString;
j:=j+1; fromdb.Next ; end; if FileExists(xlsFileName) then DeleteFile(xlsFileName); WorkBook.saveas(xlsFileName); WorkBook.close; eclApp.Quit; except eclApp.Quit; result:=false; end; end; 编译之后,就可以得到一个exe文件! 这已经是最简化的你想得到的答案了!