2008-12-11 10 views
2

J'ai une diapositive Powerpoint qui contient des zones de texte. Je voudrais lier ces zones de texte avec une vue filtrée d'une table de données dans Access. Par exemple, si j'avais une application TaskList dans Access qui affichait des tâches avec des priorités et des affectations différentes; est-il possible d'ouvrir ce fichier, de sélectionner cette vue et de la filtrer en fonction d'un événement de bouton onclick vba (ou autre) déclenché à partir de ma présentation Powerpoint?Lier Powerpoint et l'accès via VBA?

Répondre

5

Il est certainement possible d'obtenir des données d'accès de Powerpoint.

Vous devez vous assurer que les références correctes sont définies sur Microsoft DAO Object Library dans votre projet VBA. Puis, pour remplir votre zone de texte dans votre présentation PowerPoint, vous pouvez appeler quelque chose comme la fonction suivante, par exemple, pour renvoyer une chaîne contenant une liste de tâches correspondant à la priorité de tâche donnée.

Function GetTaskListFromAccess(taskPriority as Integer) as String 
    Dim db As DAO.Database 
    Dim rs As DAO.Recordset 
    Dim listOfTasks as String 

    Set db = DBEngine.OpenDatabase(“C:\my_database.accdb”) 

    Set rs = db.OpenRecordset("SELECT * FROM TaskTable WHERE TaskPriority=" & _ 
          taskPriority, dbOpenSnapshot) 
    If not rs is nothing then 
    If rs.RecordCount > 0 then 
     With rs 
     While Not .EOF 
      if listOfTask = "" then 
      listOfTasks = !TaskName 
      Else 
      listOfTasks = listOfTasks & vbCrLf & !TaskName 
      End If 
      .MoveNext 
     Loop 
     .Close 
     End With 
    End If 
    Set rs = nothing 
    End If 
    Set db = nothing 

    GetTaskListFromAccess = listOfTasks 
End Function 
+3

Grammaire très mineur: à chaque fois que vous êtes tenté dans le code d'accès d'utiliser "", essayez à la place vbNullString. C'est particulièrement important dans une boucle, puisque la mémoire pour la constante Access est déjà définie, mais "" doit être réaffecté à chaque fois. –

+0

Merci pour le commentaire, je garderai cela à l'esprit. –

Questions connexes