Hello,
I'm fairly new to VB programming and I've been going round the bend
with this problem, so any nudges or shoves in the right direction would
be greatly appreciated.
I have a template form in Word. The information that I need to populate
this form is from 2 tables in an Access 2002 database (patient details
and GP details). Once the user has entered the patient and GP etc
details, they need to produce a case summary (including both GP and
patient details) in Word.
I have a SQL query that joins the fields I want from the 2 tables
(herein lies my problem) but I cannot get Access to use this query as
the basis to populate my Word form.
Here's the code for the button to prompt creation of the Form:
Dim appWord As Word.Applicatio n
Dim doc As Word.Document
Dim rst As ADODB.Recordset
Dim strSQL As String
Dim strReportsTo As String
On Error Resume Next
Set appWord = GetObject(, "Word.applicati on")
If Err = 429 Then
Set appWord = New Word.Applicatio n
Err = 0
End If
With appWord
Set doc = .Documents(DOC_ NAME)
If Err = 0 Then
If MsgBox("Do you want to save the current document " _
& "before updating the data?", vbYesNo) = vbYes Then
..Dialogs(wdDia logFileSaveAs). Show
End If
doc.Close False
End If
On Error GoTo ErrorHandler
Set doc = .Documents.Open (DOC_PATH & DOC_NAME, , True)
Set rst = New ADODB.Recordset
If Not IsNull(Me![ID]) Then
strSQL = "SELECT [forename] & "" "" & [surname] AS Name FROM " _
& "MMR_individual _data WHERE [id]=" & Nz(Me![ID])
rst.Open strSQL, CurrentProject. Connection, _
adOpenStatic, adLockReadOnly
If Not rst.EOF Then
strReportsTo = Nz(rst.Fields(0 ).Value)
rst.Close
End If
End If
With doc
..FormFields("f ldFlare_Ref").R esult = Nz(rst![Forename])
..FormFields("f ldName").Result = Nz(Me!Forename & " " & Me!Surname)
..FormFields("f ldDOB").Result = Nz(Me![Date of Birth])
..FormFields("f ldonset_Date"). Result = Nz(Me![Onset Date])
End With
..Visible = True
..Activate
End With
Set rst = Nothing
Set doc = Nothing
Set appWord = Nothing
Exit Sub
ErrorHandler:
MsgBox Err & Err.Description
End Sub
At the moment it only displays the patient details, and not the GP
details - it's so frustrating! Any ideas? Thank you! Roz ;-)
I'm fairly new to VB programming and I've been going round the bend
with this problem, so any nudges or shoves in the right direction would
be greatly appreciated.
I have a template form in Word. The information that I need to populate
this form is from 2 tables in an Access 2002 database (patient details
and GP details). Once the user has entered the patient and GP etc
details, they need to produce a case summary (including both GP and
patient details) in Word.
I have a SQL query that joins the fields I want from the 2 tables
(herein lies my problem) but I cannot get Access to use this query as
the basis to populate my Word form.
Here's the code for the button to prompt creation of the Form:
Dim appWord As Word.Applicatio n
Dim doc As Word.Document
Dim rst As ADODB.Recordset
Dim strSQL As String
Dim strReportsTo As String
On Error Resume Next
Set appWord = GetObject(, "Word.applicati on")
If Err = 429 Then
Set appWord = New Word.Applicatio n
Err = 0
End If
With appWord
Set doc = .Documents(DOC_ NAME)
If Err = 0 Then
If MsgBox("Do you want to save the current document " _
& "before updating the data?", vbYesNo) = vbYes Then
..Dialogs(wdDia logFileSaveAs). Show
End If
doc.Close False
End If
On Error GoTo ErrorHandler
Set doc = .Documents.Open (DOC_PATH & DOC_NAME, , True)
Set rst = New ADODB.Recordset
If Not IsNull(Me![ID]) Then
strSQL = "SELECT [forename] & "" "" & [surname] AS Name FROM " _
& "MMR_individual _data WHERE [id]=" & Nz(Me![ID])
rst.Open strSQL, CurrentProject. Connection, _
adOpenStatic, adLockReadOnly
If Not rst.EOF Then
strReportsTo = Nz(rst.Fields(0 ).Value)
rst.Close
End If
End If
With doc
..FormFields("f ldFlare_Ref").R esult = Nz(rst![Forename])
..FormFields("f ldName").Result = Nz(Me!Forename & " " & Me!Surname)
..FormFields("f ldDOB").Result = Nz(Me![Date of Birth])
..FormFields("f ldonset_Date"). Result = Nz(Me![Onset Date])
End With
..Visible = True
..Activate
End With
Set rst = Nothing
Set doc = Nothing
Set appWord = Nothing
Exit Sub
ErrorHandler:
MsgBox Err & Err.Description
End Sub
At the moment it only displays the patient details, and not the GP
details - it's so frustrating! Any ideas? Thank you! Roz ;-)
Comment