Microsoft KB Archive/103273

= ACC: How to Create Tasks in MS Project for Windows Using DDE =

Article ID: 103273

Article Last Modified on 1/18/2007

-

APPLIES TO


 * Microsoft Access 1.0 Standard Edition
 * Microsoft Access 1.1 Standard Edition
 * Microsoft Access 2.0 Standard Edition
 * Microsoft Access 95 Standard Edition
 * Microsoft Access 97 Standard Edition

-



This article was previously published under Q103273



SUMMARY
Advanced: Requires expert coding, interoperability, and multiuser skills.

Before data can be sent to Microsoft Project for Windows versions 3.0, 3.0a, 4.0 as well as Microsoft Project for Windows 95, a task must exist in the active project. This article contains sample code to start Microsoft Project, create 10 tasks, and fill the task fields with data.

This article assumes that you are familiar with Visual Basic for Applications and with creating Microsoft Access applications using the programming tools provided with Microsoft Access. For more information about Visual Basic for Applications, please refer to your version of the "Building Applications with Microsoft Access" manual.

NOTE: Visual Basic for Applications is called Access Basic in Microsoft Access versions 1.x and 2.0. For more information about Access Basic, please refer to the "Introduction to Programming" manual in Microsoft Access version 1.x or the "Building Applications" manual in Microsoft Access version 2.0



MORE INFORMATION
The following example is intended as a demonstration of the technique required to create a task in Project. The following function is not intended to be replicated exactly.

  Create a new module in a Microsoft Access database. Add the following statement to the Declarations section of the module: '--     'Declarations Section '--     Option Explicit   Add the following function to the module:

NOTE: In the following sample code, an underscore (_)is used as a line-continuation character. Remove the underscore from the end of the line when re-creating this code in Access Basic. '-   'Start of Function '-

Function DDE_CreateTasks (ProjectPath as String)

Const DDE_ERROR = 282              ' Define DDE return error. Dim Temp, Mynum, Chan1, Chan2      ' Define variables.

On Error GoTo StartUp              ' If Project is not open, start ' it.

Chan1 = DDEInitiate("winproj", "system") ' Initiate a channel to Project.

On Error GoTo QuitNow

Chan2 = DDEInitiate("winproj", DDERequest(Chan1, "ActiveProject")) ' Initiate a channel to the active Project.

For Mynum = 1 To 10 DDEExecute Chan2, "EditGoto .ID=[" & Mynum & "]" ' Go to the task. DDEExecute Chan2, "SetField .Field=[Name] .Value=MyNewTask" &_ Mynum & " .Create=[Yes]" ' Create a new task. DDEPoke Chan2, "T((" & Mynum & "),(Name,Duration))", "Task_           Number " & Mynum & Chr(9) & Mynum & "d" ' Send information to Project. Next

DDETerminateAll                    'Terminate the DDE channel.

Exit Function

QuitNow:

DDETerminateAll                 ' Terminate the DDE channel. Exit Function

StartUp:

If Err = DDE_ERROR Then Temp = Shell(ProjectPath, 6) ' Start Project. Resume                       ' Re-execute DDEInitiate ' function. End If

End Function  To test this function, type the following line in the Debug window (or Immediate window in versions 1.x and 2.0), and press ENTER

?DDE_CreateTasks ("")

where "" is the path to Project.

Note that Microsoft Project installs two files, Macro.wri and Ddeinfo.wri, in the program folder that contain more information about macro commands and dynamic data exchange (DDE) functionality. These files can be opened in Microsoft Windows Write.

The following Microsoft Access versions work with the following Microsoft Project versions:    Microsoft Access | Microsoft Project 1.0, 1.1    |     3.0, 3.0a 2.0      |  3.0, 3.0a, 4.0 7.0      |        95           97        |        95

