Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将DAO QueryDef保存到临时查询并将结果输出到Excel_Mysql_Vba_Ms Access_Dao - Fatal编程技术网

Mysql 将DAO QueryDef保存到临时查询并将结果输出到Excel

Mysql 将DAO QueryDef保存到临时查询并将结果输出到Excel,mysql,vba,ms-access,dao,Mysql,Vba,Ms Access,Dao,所以我有一个Access项目,首先我创建了一个TempQuery,并使用该查询将结果输出到一个Excel文件,效果非常好 以下是代码: 将qdf设置为QueryDef DoCmd.DeleteObject acQuery,qryTemp 设置qdf=CurrentDb.CreateQueryDefcryTemp,Me.Child13.Form.RecordSource DoCmd.outputtoacoutputquery,qryTemp,acFormatXLS,True 出口接头 我现在尝试做

所以我有一个Access项目,首先我创建了一个TempQuery,并使用该查询将结果输出到一个Excel文件,效果非常好

以下是代码:

将qdf设置为QueryDef DoCmd.DeleteObject acQuery,qryTemp 设置qdf=CurrentDb.CreateQueryDefcryTemp,Me.Child13.Form.RecordSource DoCmd.outputtoacoutputquery,qryTemp,acFormatXLS,True 出口接头 我现在尝试做的是相同的事情,但是通过DAO连接使用MySQL数据库,因为我只将此Access文件用作前端

到目前为止,我得到的是:

Dim数据库作为DAO.Database 将qdf设置为DAO.QueryDef 将SQL设置为字符串 Set db=OpenDatabase,False,False,Globales.ConnString SQL=选择TBL1 Facturas.Verificado、TBL1 Facturas.Facturas、TBL1 Facturas.Fecha、tbl5Localidades.NombreLocalidad、tbl6Suplidores.NombreSuplidor、TBL1 Facturas.Subtotal、TBL1 Facturas.[IVU市政)、TBL1 Facturas.[IVU Estattal],TBL1 Facturas.[Total de Compra],TBL1 Facturas.[Exento al IVU ESTATAL],TBL1 Facturas.[Credito al Subtotal],TBL1 Facturas。[Credito IVU市政]、TBLfacturas、[Credito IVU ESTATAL]、TBLfacturas、[Metodo de Pago]、TBLfacturas、[ID Metodo Pago]、TBLfacturas.MetodoPago\u PDF、TBLfacturas.Factura\u PDF_ &从tbl1Facturas内部连接tbl1Facturas.Localidad\u ID=tbl5Localidades.ID上的tbl6Suplidores内部连接tbl1Facturas.Suplidor\u ID=tbl6Suplidores.ID上的tbl6Suplidores_ &其中MONTHtbl1Facturas.Fecha=Month&Me.Text19&_ &和yeartbl1 facturas.Fecha=Year&Me.Text19&_ &和tbl1Facturas.Localidad_ID=&Me.Combo23.Column0&_ &由TBL1 Facturas.Fecha订购; 设置qdf=db.createQueryDefcryTemp,SQL DoCmd.outputtoacoutputquery,qryTemp,acFormatXLS,True 出口接头
欢迎所有帮助!:p

修改后的导出代码在远程数据库中创建或尝试创建查询。由于远程数据库是MySQL,我希望尝试使用QueryDefs创建查询失败。即使创建了查询,OutputTo也会在本地数据库中查找查询,但找不到

考虑以下示例:从另一个成功导出的Access db中提取:

将qdf设置为DAO.QueryDef DoCmd.DeleteObject acQuery,qryTemp 设置qdf=CurrentDb.CreateQueryDefcryTemp,从“\\servername\path\DBname.accdb”中的某个表中选择* DoCmd.outputtoacoutputquery,qryTemp,acFormatXLS,True 过程完成后,前端有一个已保存的查询对象,尽管它不会立即显示在导航窗格中。由于创建了一个对象,因此只能创建一个表并导出该表。不幸的是,我看不到如何在QueryDefs中引用MySQL数据库或选择执行操作,以便在前端创建该对象。可能会循环遍历一个记录集,并将数据一次写入表中的一条记录

我能看到的唯一其他选择是使用Excel自动化。打开Excel对象并使用CopyFromRecordset方法导出到工作表范围

Dim db作为DAO.Database,rs作为DAO.Recordset Dim xl作为Excel.Application,wb作为Excel.Workbook Set db=OpenDatabase,False,False,Globales.ConnString Set rs=db.OpenRecordsetSELECT Verificado,Factura,Fecha,nombresolidad,NombreSuplidor,小计,[IVU市政],[IVU地产],[IVU地产],[Total de Compra],[Exento al IVU地产],[Credito IVU市政],[Credito IVU地产],[Metodo de Pago],[ID Metodo Pago],MetodoPago\u PDF,Factura\PDF_ &从tbl1Facturas内部连接tbl1Facturas.Localidad_ID=tbl5Localidades.ID上的tbl5Localidades_ &tbl1Facturas.Suplidor_ID=tbl6Suplidores.ID上的内部联接tbl6Suplidores_ &其中MONTHtbl1Facturas.Fecha=Month&Me.Text19&_ &和yeartbl1 facturas.Fecha=Year&Me.Text19&_ &和tbl1Facturas.Localidad_ID=&Me.Combo23.Column0&_ &由TBL1 Facturas.Fecha订购; Set xl=CreateObjectExcel.Application 设置wb=工作簿。添加 wb.SheetsSheet1.RangeA1.CopyFrom记录集 xl.Visible=True
好奇在以前的代码中使用的方法不起作用吗?你正在危险地将数据库从Access表单上的用户输入打开,以SQL注入到MySQL数据库。回想一下;。感谢您的快速响应。我在一个更简单的表单上使用了它,但在整个项目中还没有使用它。我正在尝试按现在的方式完成演示d在未来的版本中进行参数化。对当前的工作有什么建议吗?:锁定你的Access数据库,你能链接到MySQL表吗?不,我直接连接到MySQL服务器..6月7日你太棒了!非常感谢!只是做了一个编辑来回答,确保你阅读了最新版本。