gpt4 book ai didi

mysql - 来自 MYSQL 数据库的 MS Access 报告

转载 作者:行者123 更新时间:2023-11-29 15:55:59 32 4
gpt4 key购买 nike

我正在尝试从 mysql 数据库获取一些信息到 access 中的报告中。但我不知道如何获取那里的信息,因为我在 vba 中使用 DAO 连接并且无法使用链接表。

我尝试将信息从我已经拥有信息的表单中存储到一个字符串中,通过 DAO 连接直接连接到 mysql 数据库,但没有成功。

Private Sub Command67_Click()
DoCmd.Save
DoCmd.GoToRecord , , acNewRec
Me.Label39.Visible = True

Dim strWhere As String

strWhere = "[ID] = " & Me.[Id]

DoCmd.OpenReport "MyReport", acViewPreview, , strWhere
End Sub

我在该代码中使用预览来查看一些结果,但我想做的是直接打印到打印机,因为这是客户转收据,我需要那些快速打印。

我再次无法使用链接表。

最佳答案

在调查了您之前的问题(有些问题应该与该问题相关)后,我发现了问题所在。您没有链接 MySQL 表,这会让事情变得更容易。

但是您仍然可以使用查询!只需将您的连接字符串(可能是前面问题中的 Globales.ConnString)放入查询设计->属性中的查询ODBC 连接字符串中即可。这使得查询成为直接传递到 MySQL 服务器的直通查询,而不是使用 MDAC。

只需将报告RecordSource设置为查询的名称即可。

您还可以在 VBA 中构建查询,但不能使用临时 QueryDef(""),因为您无法设置 Reports-Recordset,因此请使用非临时查询。

示例(假设有一个名为 QueryForReport 的 QueryDef):

Sub EditQueryDefPassthrough()

With CurrentDb.QueryDefs("QueryForReport")
.Connect = "ODBC;Driver={MySQL ODBC 5.3 ANSI Driver};" _
& "Server=YourServerName;" _
& "Database=YourDatabaseName;" _
& "User=YourMysqlUserName;" _
& "Password=MysqlPwdForUser;" _
& "Option=3;" ' adapt this to your MySQL ODBC Driver Version and server settings

.SQL = "SELECT `Field` FROM `TABLE` LIMIT 1,1;" 'put SQL here (MySQL SQL Dialect, not MS-Access!). You can't use Access functions here (like Replace(), ..., but those of MySQL like Concat().
End With

End Sub

QueryDef 需要在 Report_Load 事件之前设置,但在 Report_Open 中应该足够了(例如,如果您想使用 OpenArgs 来构建 SQL 字符串)

关于mysql - 来自 MYSQL 数据库的 MS Access 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56453035/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com