probleme fonction vba, le renvoi ne marche pas

probleme fonction vba, le renvoi ne marche pas - VB/VBA/VBS - Programmation

Marsh Posté le 25-12-2008 à 17:19:48    

Bonjour et joyeux Noel  :)  
 
j'ai un souci en vba, la fonction ci-dessous est sensé renvoyé un élément de collection mais la partie de code :
 
creationAction = naction
 
ne marche pas.
cette fonction intervient pour une entrée de base de donnée (avec 2 champs ; nom et quantite), j'ai fais f8 pour voir et donc naction.nom et naction.quantite prennent bien les bonnes valeurs (pour la 1ere ligne de ma table) et après ça passe au renvoi et là ça bloque. il me met "variable objet ou variable de bloc with non définie"
quelqu'un pourrait m'aider ?
 
merci.
 

Code :
  1. ' à partir d'une entree de bdd
  2. Private Function creationAction(monEnr As DAO.Recordset) As Action
  3. Dim naction As Action
  4. Dim monChamp As DAO.Field
  5. Set naction = New Action
  6. Dim i As Integer
  7. i = 0
  8. For Each monChamp In monEnr.Fields
  9.     If (i = 0) Then
  10.         naction.Nom = monChamp.Value
  11. ElseIf (i = 1) Then
  12.         naction.Quantite = monChamp.Value
  13. End If
  14.     i = i + 1
  15. Next
  16. creationAction = naction 'probleme
  17.        
  18. End Function


 
merci

Reply

Marsh Posté le 25-12-2008 à 17:19:48   

Reply

Marsh Posté le 26-12-2008 à 09:23:11    

Peut-être que le problème se situe dans les lignes :

Dim naction As Action
Set naction = New Action

La seconde ligne m'intrigue parce qu'elle n'est pas cohérente avec la première. Je me demande s'il ne faudrait pas supprimer la ligne du New.  
 
C'est comme si on avait les deux lignes suivantes qui n'auraient aucun sens

Dim s As String
Set s = New String

Reply

Marsh Posté le 26-12-2008 à 14:46:47    

Sinon, ne faut-il pas faire :
 

Code :
  1. Set creationAction = naction
  2. 'c-a-d rajouter le Set'


 
:??:

Reply

Marsh Posté le 26-12-2008 à 16:12:12    

oui merci les gars, c'était bien rajouté un set devant qui posait problème :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed