【发布时间】:2019-08-08 03:35:57
【问题描述】:
所以我有这个 Access 项目,起初我创建了一个 TempQuery 并使用该查询将结果输出到一个效果很好的 Excel 文件。
下面是代码:
Dim qdf As QueryDef
DoCmd.DeleteObject acQuery, "qryTemp"
Set qdf = CurrentDb.CreateQueryDef("qryTemp", Me.Child13.Form.RecordSource)
DoCmd.OutputTo acOutputQuery, "qryTemp", acFormatXLS, , True
Exit Sub
我现在要做的是同样的事情,但通过 DAO 连接使用 MySQL 数据库,因为我仅将此 Access 文件用作前端。
这是我到目前为止得到的:
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim SQL As String
Set db = OpenDatabase("", False, False, Globales.ConnString)
SQL = "SELECT tbl1Facturas.Verificado, tbl1Facturas.Factura, tbl1Facturas.Fecha, tbl5Localidades.NombreLocalidad, tbl6Suplidores.NombreSuplidor, tbl1Facturas.Subtotal, tbl1Facturas.[IVU MUNICIPAL], tbl1Facturas.[IVU ESTATAL], tbl1Facturas.[Total de Compra], tbl1Facturas.[Exento al IVU ESTATAL], tbl1Facturas.[Credito al Subtotal], tbl1Facturas.[Credito IVU Municipal], tbl1Facturas.[Credito IVU ESTATAL], tbl1Facturas.[Metodo de Pago], tbl1Facturas.[ID Metodo Pago], tbl1Facturas.MetodoPago_PDF, tbl1Facturas.Factura_PDF " _
& "FROM (tbl1Facturas INNER JOIN tbl5Localidades ON tbl1Facturas.Localidad_ID = tbl5Localidades.ID) INNER JOIN tbl6Suplidores ON tbl1Facturas.Suplidor_ID = tbl6Suplidores.ID " _
& "WHERE MONTH(tbl1Facturas.Fecha) = Month(#" & Me.Text19 & "#) " _
& "AND YEAR(tbl1Facturas.Fecha) = Year(#" & Me.Text19 & "#) " _
& "AND tbl1Facturas.Localidad_ID = " & Me.Combo23.Column(0) & " " _
& "ORDER BY tbl1Facturas.Fecha; "
Set qdf = db.CreateQueryDef("qryTemp", SQL)
DoCmd.OutputTo acOutputQuery, "qryTemp", acFormatXLS, , True
Exit Sub
欢迎大家帮忙! :P
【问题讨论】:
-
好奇之前代码中使用的parameterization 不起作用吗?从 Access 表单上的用户输入到 MySQL 数据库,您正在危险地让您的数据库对 SQL 注入开放。记起; Bobby Tables.
-
感谢您的快速回复。我在一种更简单的形式和作品上使用了它,还没有在整个项目中使用它。我正在尝试按现在的方式完成,以便在未来的版本中展示和处理参数化。
-
对当前的努力有什么建议吗? :P
-
在您的 Access 数据库中,您可以链接到 MySQL 表吗?
-
不,我直接连接到 MySQL 服务器..