我不是专业的开发人员,但经过长时间的研究,它适用于我的项目。
我想直接从 MS Access 打开我现有的报告,然后从非默认安装文件夹路径(每台电脑不同)打开这些。第三个要求是打开多个报告(不是一起打开)。
设计:
Form8.vb [Design]
vb.Net 代码:
Imports System.ComponentModel
Imports Microsoft.Office.Interop.Access
Public Class Form8
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim oAccess As New Microsoft.Office.Interop.Access.Application()
Dim CurDir As String = System.AppDomain.CurrentDomain.BaseDirectory
Dim FPath As String = CurDir & "\YourDatabase.accdb"
oAccess.Visible = True
oAccess.OpenCurrentDatabase(FPath)
If ComboBox1.Text = "Your text" Then
oAccess.DoCmd.OpenReport(ReportName:="Your Report Name", View:=AcView.acViewPreview)
ElseIf ComboBox1.Text = "Your text2" Then
oAccess.DoCmd.OpenReport(ReportName:="Your Report Name", View:=AcView.acViewPreview)
ElseIf ComboBox1.Text = "Your text3" Then
oAccess.DoCmd.OpenReport(ReportName:="Your Report Name", View:=AcView.acViewPreview)
End If
End Sub
End Class
将 YourDatabase 替换为 YourDatabaseName,将 Your text,Your text1,Your text2,Your text3 替换为 YourText,将 Your Report Name 替换为您的报告名称,根据需要。
最后,为了让这个解决方案发挥作用,您需要:
1) 您的 (Conn.open) 连接如下所示:
Dim dbsource As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = |DataDirectory|\Your DB.accdb"
2) 在解决方案资源管理器中,您的数据库将包含在您的项目或安装项目中,将与您的项目一起安装。像这样:
Solution Explorer [image]
SetUp Project link
3) 在服务器资源管理器中,数据连接(源)数据库文件名,必须使用完整路径名,例如:
C:\Users\User\Desktop\YourDatabase.accdb,属性中的连接字符串如下:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source = "C:\Users\User\Desktop\YourDatabase.accdb"。
希望对你有帮助!!!