Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2011, 11h50   #1
Membre du Club
 
Homme
Inscription : août 2007
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 112
Points : 62
Points : 62
Par défaut Passer tableau multi-dimension ByRef

Bonjour,

J'ai le code suivant:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim ListFile1() As Object
 
Private Sub Button1_Click()
...
    ReDim ListFile1(1, 12)
... 
    Call UpdateList(1, ListFile1, 12) 
...
End Sub
 
Private Sub UpdateList(i As Integer, ByRef ListFile() As Object, LenArr As Integer)
...
End Sub
Et évidemment, j'ai une erreur:
Citation:
Compile error:

Type mismatch: array or user-defined type expected
Quelqu'un pour me dire ce que je fais de travers svp?

Merci.
Chris@Xerox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 12h18   #2
Membre régulier
 
Homme Michaël
Développeur .NET
Inscription : avril 2008
Messages : 80
Détails du profil
Informations personnelles :
Nom : Homme Michaël
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : avril 2008
Messages : 80
Points : 84
Points : 84
un tableau passe d'office par référence, le ByRef est donc de trop

Note que ton code fonctionne chez moi...
mkl238 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 13h34   #3
Membre du Club
 
Homme
Inscription : août 2007
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 112
Points : 62
Points : 62
Salur mkl238,

Avec ou sans ByRef, j'ai le même message d'erreur.

Si le code fonctionne chez toi, cela veut sans doute dire qu'il est correcte. Mais pourquoi pas chez moi?

Je continue de chercher. Merci.
Chris@Xerox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 13h53   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Salut,

Peux-tu détailler un peu ton code ?

Quels sont ces "objects" que tu copies dans ton tableau ?

__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 14h01   #5
Membre du Club
 
Homme
Inscription : août 2007
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 112
Points : 62
Points : 62
Salut User,

Je remplis mon tableau avec des String et des Integer.

Code :
1
2
3
4
    For j = 0 To 12
        ListFile1(0, j) = dbCompare.TableDefs("File1").Fields(j).Name
        ListFile1(1, j) = 0
    Next
Mon code n'est pas beaucoup plus fournis que ça car je suis au début de mon programme.
Chris@Xerox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 14h12   #6
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Re,

Tu as essayé avec :

ou

Code :
Dim ListFile1() as variant
Y compris dans l'argument ListFile de la procédure UpdateList.

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 15h07   #7
Membre du Club
 
Homme
Inscription : août 2007
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 112
Points : 62
Points : 62
Oui, j'avais déjà essayé avec Variant mais j'ai eu la même erreur.

Par contre, je viens d'essayer
Code :
1
2
3
Private Sub UpdateList(i As Integer, ByRef ListFile(), LenArr As Integer)
...
End Sub
Et ça fonctionne.

Je ne comprend pas pourquoi je ne dois pas préciser le type de mon tableau dans mon sub mais ça passe. J'ai laissé
Code :
Dim ListFile1() As Object
et ça marche aussi.

Un tout grand merci User.
Chris@Xerox est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h33.


 
 
 
 
Partenaires

Hébergement Web