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 15/12/2010, 09h57   #1
Nouveau Membre du Club
 
Homme
Apprenti en dévelloppement
Inscription : août 2010
Messages : 81
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Apprenti en dévelloppement

Informations forums :
Inscription : août 2010
Messages : 81
Points : 30
Points : 30
Par défaut appeler une fonction

bonjour, j'ai un petit problème au niveau de l'appel de ma fonction. voici mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Function one()

'variable
Dim db As DAO.Database
Dim rst As DAO.Recordset

'ouverture de la base de donnée : recordset
Set db = CurrentDb
Set rst = db.OpenRecordset("Requête1", dbOpenSnapshot)

'création et ouverture du fichier txt
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.CreateTextFile (ici je veu appeler le résultat de ma fonction two)

'écriture dans le fichier txt
With MonFich
.writeline "<?xml version=""" & "1.0" & """ encoding=""" & "windows-1252" & """>"
.writeline ""
etc...
Code :
1
2
3
4
5
6
7
8
9
 
Function two(pI As String) As String
'variable
Dim db As DAO.Database
Dim rec As DAO.Recordset
 
'ouverture de la base de donnée : recordset
Set db = CurrentDb
Set rec = db.OpenRecordset("Select [nom],[prenom] From [tbl_nomprenom]Where [ID]='" & num1 & "'", dbOpenSnapshot)
les valeurs de nom et prenom sont mon chemin d'accès, pouvez-vous m'aider ?
luchoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 10h45   #2
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Bonjour,

La fonction ne renvoie rien.
Le paramètre "pI"de la fonction n'est pas utilisé.
La fonction utilise une variable "num1" non déclarée.
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 10h48   #3
Nouveau Membre du Club
 
Homme
Apprenti en dévelloppement
Inscription : août 2010
Messages : 81
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Apprenti en dévelloppement

Informations forums :
Inscription : août 2010
Messages : 81
Points : 30
Points : 30
Par défaut re

ok merci de ta réponse, mais quel est mon erreur ou mon oubli?
luchoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 11h16   #4
Membre Expert
 
Homme Pierre ANTOINE
Inscription : février 2008
Messages : 650
Détails du profil
Informations personnelles :
Nom : Homme Pierre ANTOINE
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : février 2008
Messages : 650
Points : 1 302
Points : 1 302
Bonjour

Une fonction renvoie un résultat; une procédure, elle, est la suite de plusieurs instructions.

Dans ce que vous nous donner, la fonction One, ne semble rien renvoyer.
C'est à dire qu'on ne trouve pas à un moment donné

One = "Mon résultat"
Pour moi, c'est juste des instructions pour écrire dans un fichier.

Pareil pour la fonction Two, qui est semble juste ouvrir un recordset.


A revoir donc.

Pierre
pier.antoine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 11h21   #5
Nouveau Membre du Club
 
Homme
Apprenti en dévelloppement
Inscription : août 2010
Messages : 81
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Apprenti en dévelloppement

Informations forums :
Inscription : août 2010
Messages : 81
Points : 30
Points : 30
Par défaut re

Merci pour votre réponse mais voila j'ai changer ma fonction "two", elle devrait renvoyer un résultat, et je voudrais l'appeler à l'endroit en gras de la focntion "one", comment fait-on?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Function two()
 
Dim db As DAO.Database
Dim rec As DAO.Recordset
 
Set db = CurrentDb
Set rec = db.OpenRecordset("Select [nom],[prenom]From [tbl_nomprenom] Where [ID]='" & num2 & "'", dbOpenSnapshot)
 
 
If rec.EOF = False Then
 
rec! [nom]
rec! [prenom]
Else
MsgBox ("Erreur")
End If
orst.Close
db.Close
 
Set orst = Nothing
Set db = Nothing
 
End Function
luchoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 11h35   #6
Membre confirmé
 
Avatar de spaiku
 
Chef de projet MOA
Inscription : septembre 2007
Messages : 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2007
Messages : 191
Points : 250
Points : 250
Bonjour,

je pense que tu devrais prendre le temps de lire un ou deux tutos sur les bases de la programmation. Mais comme je suis dans un bon jour...

Pour qu'une fonction puisse renvoyer une valeur, il faut que :
1) tu déclares le type de variable qu'elle va renvoyer. Exemple :
Code :
Function toto (Argument As Variant) As String
Cette fonction comprend un argument de type Variant, et renvoie une variable de type String.

2) A l'intérieur de la fonction, tu dois clairement exprimer la valeur retourner par la fonction (VBA ne le devinera pas). Exemple :
Code :
1
2
3
Function toto () As String
    toto = "valeur retournée"
End Function
Et c'est tout. Pour appeler ta fonction, il suffit de taper son nom. Exemple :
Code :
1
2
3
Function AfficherToto()
    MsgBox toto()
End Function
Mais encore une fois, prends le temps de lire les tutos et les FAQ. Tu te dis sûrement que ce n'est pas ce qui va faire avancer ton projet, mais crois-moi, c'est un gain de temps dont tu te rendras compte plus vite que tu ne le penses.
spaiku est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2010, 11h50   #7
Nouveau Membre du Club
 
Homme
Apprenti en dévelloppement
Inscription : août 2010
Messages : 81
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21
Localisation : France

Informations professionnelles :
Activité : Apprenti en dévelloppement

Informations forums :
Inscription : août 2010
Messages : 81
Points : 30
Points : 30
Merci bcp, je viens de débuter en vba, mais je vais suivre ton conseil et regarder les tutos, bonne journée!
luchoo 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 02h25.


 
 
 
 
Partenaires

Hébergement Web