我正在开发一个小程序,当单击Access子窗体中的一个按钮时,需要在Word中创建一个字母。 表单代表一个客户端,在子表单中有该客户端完成的命令列表。接下来每个命令行(包含日期和描述),有一个按钮,触发maccro并创建字母。到目前为止,我在单击一个按钮时成功创建了单词字母,但子表单中的每个命令都在word文档中创建了一个页面。
是否可以仅保留单击按钮旁边的命令而不是所有命令? 我一直在寻找那种命令:
"SELECT * FROM [Fusion]WHERE [id_client] = " & Forms!subform!id_client
但是当我为子表单执行此操作时,我有一个错误,表示该表单不存在...
感谢您的帮助。
- 的修改 -
以下是代码,[Fusion]是我的SQL请求,它获取所有客户端以及与之相关的订单。
Function Publipostage()
Dim mDoc As String
Dim strSQL As String
' Path of the letter
mDoc = "C:\...\LT000006.docx"
strSQL = "SELECT * FROM [Fusion]WHERE [id_client] = " & Forms!FormPatient!id_client
Dim oApp As New Word.Application
Dim oMainDoc As Word.Document
Dim sData As String
oApp.Visible = True
sData = "C:\...\Database1.accdb"
Set oMainDoc = oApp.Documents.Open(mDoc)
With oMainDoc.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource Name:=sData, SQLStatement:=strSQL
End With
With oMainDoc
.MailMerge.Destination = wdSendToNewDocument
.MailMerge.Execute
End With
oApp.Activate
oApp.Documents.Parent.Visible = True
oApp.Application.WindowState = 1
oApp.ActiveWindow.WindowState = 1
Set oApp = Nothing
Set oMainDoc = Nothing
Exit Function
Err_Handle:
Set oApp = Nothing
Set oMainDoc = Nothing
MsgBox "An error occurred..." & vbCrLf & vbCrLf & Err.Description
End Function
答案 0 :(得分:0)
您的问题有点不清楚,但如果按钮位于子窗体上,则可以使用
Me.id_client
如果它在主窗体上,请尝试
Forms("MAIN FORM NAME").Controls("SUB FORM NAME").Form.Controls("id_client")
修改
或Me.Parent.Controls("id_client")
引用子表单时,必须首先引用父表单。
如果您只想从列表中打印1个命令,那么您的SQL似乎需要更改为引用该命令。即。
"SELECT * FROM [Fusion] WHERE [id_command] = " & Me.id_command
这只是一个例子,因为我不知道你的表结构。