SUMMARY
The Microsoft Access 2000 Help Topic Example "Dynamic Data Exchange (DDE)
Example," which can be displayed by clicking "Example" on the following
topics,
- DDEExecute Statement
- DDEInitiate Function
- DDEPoke Statement
- DDERequest Function
- DDETerminate Statement
- DDETerminateAll Statement
contains the following code:
Sub ExcelDDE()
Dim intI As Integer, intChan1 As Integer
Dim strTopics As String, strResp As String, strSheetName As String
On Error Resume Next ' Set up error handling.
intChan1 = DDEInitiate("Excel", "System") ' Establish link.
If Err Then ' If error occurs, Excel
Err = 0 ' may not be running.
' Reset error
Shell "C:\Excel\Excel.exe", 1 ' and start spreadsheet.
If Err Then Exit Sub ' If another error, exit.
' Establish Spreadsheet link.
intChan1 = DDEInitiate("Excel", "System")
End If
' Create new worksheet.
DDEExecute intChan1, "[New(1)]"
' Get topic list, worksheet name.
strTopics = DDERequest(intChan1, "Selection")
strSheetName = Left(strTopics, InStr(1, strTopics, "!") - 1)
' Terminate DDE link.
DDETerminate intChan1
' Establish link with new worksheet.
intChan1 = DDEInitiate("Excel", strSheetName)
For intI = 1 To 10
' Put some values into
DDEPoke intChan1, "R1C" & intI, intI
' first row.
Next intI
' Make chart.
DDEExecute intChan1, "[Select(""R1C1:R1C10"")][New(2,2)]"
' Terminate all links.
DDETerminateAll
End Sub
The first line of the code, which reads as follows, is incorrect:
Dim intI As Integer, intChan1 As Integer
Change this line to read as follows:
Dim intI As Long, intChan1 As Long.
This change is necessary when working with 32-bit applications.