【发布时间】:2019-04-03 22:38:18
【问题描述】:
我正在尝试通过将 MS Access 数据库链接到 PowerPoint 来自动化报告编写过程。我不知道如何使代码将查询输出到文本框中。代码运行良好,直到出现“******”行。有谁知道如何使 label1.value 等于查询输出?谢谢!
Dim Connect As String, Source As String
Dim Connection As ADODB.Connection
Dim Recordset1 As ADODB.Recordset
'Database path info
Dim FD As FileDialog
Dim vrtSelectedItem As Variant
Dim fileName As String
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
MsgBox "The path is: " & vrtSelectedItem
'Open the connection
Set Connection = New ADODB.Connection
Connect = "Provider=Microsoft.ACE.OLEDB.12.0;"
Connect = Connect & "Data Source=" & vrtSelectedItem & ";"
Connection.Open ConnectionString:=Connect
'Set RecordSet
Set Recordset1 = New ADODB.Recordset
With Recordset1
Source = "SELECT [xxx] FROM [yyy] WHERE [zzz] = '12345'"
.Open Source:=Source, ActiveConnection:=Connection
********
***Label1.Value = Recordset1***
********
End With
Next vrtSelectedItem
End If
End With
End Sub
【问题讨论】:
-
您打算在该标签中显示什么?
Recordset1是一个ADODB.Recordset,因此由于您没有进行任何成员调用,因此您将获得对象的 默认属性,IIRC 将是它的Fields集合,它不能被强制转换成String(你得到一个type mismatch错误?)——假设你的意思是把[xxx]放到那个标签里,你需要得到那个字段的内容——Label1.Value = Recordset1.Fields("xxx").Value。 -
您也可以通过字段编号引用查询字段,例如:Label1.value=Recordset1(0) 之后不要忘记使用Recordset1.movenext。
标签: vba ms-access powerpoint